( 中文4 完 ) My Second Note on Experiences, About "2boys" ( 中文4 完 )


Updated:

1中文 https://tensor.art/articles/894212229950384481

2中文 https://tensor.art/articles/894214741432519505

3中文 https://tensor.art/articles/894475285959803996

所以按着我的思路,只能制作人物设计较为简单的角色,对于更复杂的设计还没有摸索到更好的保证生成质量的方式。暂时只能通过加大batch size过拟合训练来改善一些。再次重申,只要素材图片数量足够多,就可以大幅改善,而不用考虑本文的方式,本文只适用缺少素材的情况。

 

基本上我对于“2boys lora”制作思路和具体方式就是这样了。如果制作出的第一个效果不佳,可以通过前文描述的那些缺陷来简单判断下哪里不足。一般都可以通过以下方式改善后再次制作:

1、最关键的,增加训练集中“2boys”的图片,比如单人各有20张,而“2boys”的数量远远超过,是几倍甚至超过100张时,哪怕放进同一个文件夹中,使用同样的repeat,是可以得到比较好的效果的。但数量对调,“2boys”素材寥寥无几时,本文的方式才开始奏效。这里补充一点,在我的测试中,不同角色,放入单独文件夹,和全部放在同一个文件夹,总是前者的效果更好,我暂时不能理解其中缘由。

请注意,文件夹的名称实际上是可以作为触发词的,经过对比测试,训练“1boy”时,可以将文件夹名称作为触发词,标签中就可以不用写。训练“2boys”时,放弃这种方式,文件夹要写一个无关触发词的名字,切记不要把文件夹名和标签中的触发词重合。

2、调整repeat,根据生图结果判断,让单人步数,或双人步数增加或减少。

3、找出特征中哪些可以被固定的标签,重新打标签后再次尝试。

4、训练时换一个随机种子,本来这个随机种子就是玄学的一部分,前面1、2、3条其实无论怎样调整,同一训练集在同一随机种子下loss值的大致走向基本是类似的,换一个也许更好也许更坏呗。

5、微调优化器参数,或者换一个优化器试试。

6、我的局限就到这了,剩下的靠你探索了。

 

最后补充一个特殊情况,就是正则化,在训练单人lora时,将大量“2boys”图片加入正则集,启用正则化训练。理论上这种方式训练的单人lora组合使用时,应该会改善角色特征融合的情况,然而不知道是我准备的图片的问题还是标签的问题还是什么参数的问题,效果并不好,所以这种思路被我放弃了。

 

再讲个小插曲,我朋友开玩笑的质疑我,费这么大劲做个ai模型,你咋不自己画呢,找人委托不也行。是啊,如果我会画画的话,而且如果非常非常富有,那还用得着找委托吗?不得不说ai图像的发展和lora的应用,让不具备画画技能的人们拥有了创作同人图的可能。

 

Ok,到这里基本上就讲完“2boys lora”的方面了。你肯定注意到了,我多次强调,只有在本来就是冷门cp甚至拉郎缺少双人素材时,这个思路才有效,素材多不用考虑,一百张两百张的双人图怎么都会得到更好的效果。但是,这个思路并非一无是处,有一个非常意外的惊喜,那就是可以制作出3人、4人的lora(更多人数还在测试不能保证),并在生成时做到任意双人组合,甚至三人组合,4人实际上已经超出检查点所支持的极限了,效果不好。有些喜欢的“2boys”要找大量素材其实还是好找的,但是三人甚至四人可就不容易了。那就讲一下这个“3boys”和“4boys”lora的流程。

 

1、单人素材越多越好,方便挑选,不足的话分别训练成单人lora,再生成高质量图,挑选出没有瑕疵的备用。甚至无需准备“2boys”。按前文所述,将单人图进行拼接,使得两两组合都得到相同数量但大于15张的图。

比如“AB = AC = BC >15”。

2、将“A”“B”“C”“AB”“AC”“BC”分别放置不同文件夹,按前文所述设置repeat,

目标单人步数在800-1200左右,batch size=1。

计算得出repeat值,A = B = C,AB = AC = BC,

其中所有包含同一人物的双人图的总步数为单人的20-40%左右(此时误差较大、仅供参考)。

比如“AB”“AC”各15张总计30,

“A”20张,epoch = 12,20 12 5 = 1200, 1200 * 0.4 = 480, 480 / 12 = 40, 40 / 30取整数1。

也就是说A = B = C 的repeat=5,AB = AC = BC的repeat=1。

请注意,这里40%的步数,是按照包含同一角色的双人图的总数量来计算的,都有“A”的“AB”“AC”加起来的数量,而不是“AB”或“AC”的数量。

3、是的,不需要训练三人图,将上述训练集打标签,开始训练。

4、训练好后的第一个可能不尽如人意,按照前文介绍的方式进行调整。

在这里多写一些,按照前文分析,多了一个变数“C”之后,“A”作为两个连体婴的一部分,可能就包含了“B”“C”的部分信息,主要是“A”本身可能会当做“2boys”的一部分,此时生成双人或三人图时,“A”可能被当做两个“2boys”,“B”可能被当做两个“2boys”,在权重叠加的情况下,双人图相当于叠加四个“2boys”,就更容易出现多余人物和混乱,三人图叠加三次更甚。

但是因为检查点本身能力和分辨率的约束,“2boys”的“双倍权重”并不意味着出来“4boys”,而是将所有因为“连体婴现象”学到“2boys”之中的特征进行展现,同时因为“A”这些人物触发词在单人中的权重更高一点,所以“2boys”生成的多余人物基本上就是使用的人物触发词中的角色,比如“A+B”时,可能会在远景生成两个类似A和B的身影,此时减少分辨率或调整提示词会将多余身影消除。

“3boys”那就相当于隐藏了“6boys”,因为检查点本身就缺少“3boys”这方面的支持,混乱就会更多,只能通过减少分辨率来约束生成额外内容,3boys时使用“A+B+C”,因为每个单人触发词都含有“2boys”的信息,不仅是会产生多余人物,人物特征也更会混乱,更像是从AABBCC中“任意”挑选三个投放在“三人连体”的轮廓上。

理论上通过大量3boys图片来让lora学会什么是“3boys”应该会改善许多,但从哪来那么多三人图,拼接一百张想想就头疼,但如果我的理解没错,理论上只要“3boys”图足够多,不需要其他图,只通过描述特征的标签就能生成任意单人或双人组合。这一段也解释了为什么双人图的步数,要按照含同一角色的双人图数量来计算,在我有限的测试中,如果按照“AB”的数量来计算,似乎比重太大了而让“A”带有了更多来自“AC”连体婴的内容,“B”也是这样,“C”也是这样,就产生了更多混乱。

5、同样的方式,准备好单人和相同数量的4人任意组合双人图来制作“4boys lora”,步数和repeat也按照同一角色的双人图总数来计算。但是请做好心理准备,“3boys”和“4boys”想要得到一个更好的结果可能需要进行多次调整。

 

再次提示,本文的lora训练方法基于illustrious2.0。文中介绍的这一点点应用,在整个ai图像与视频生成的世界中简直沧海一粟、不值一提,有太多的未知、太多新的东西要去接触去学习。本文的时效性应该非常有限。

 

经过这么多繁琐的词句终于接近尾声了,很抱歉文字有些绕口,我的这方式也不是什么很完善的方式,其中对于真正原理上的理解肯定不对,只是对于观察到的现象的一种直觉。网络上对于多角色lora的讨论实在太少了,男孩们的更是几乎没有,大家是一种各自暗中摸索的状态,希望我的这些经验无论是当做参考还是反面教材,都能对有需要的朋友有所帮助。欢迎大家来留言提问,也可以在civitai和pixiv私信我,ID都是“kitakaze5691”。

 

许多朋友都制作了自己的帅气、可爱的oc,制作出的单人图许多都让人印象深刻。当然也就有朋友试着将这些oc的lora加载到一起生成双人图,然而结果总是混乱的。小小的得意一下,本文不仅简单解释了其中缘由,也给出了一个能让oc们真正在一起的方案,希望以后能有缘看到这些可爱的oc们,在“保持自我”的情况下,亲密互动~

 

从接触ai生图到现在也不知不觉快一年了,这些时间也结识了不少陌生的朋友,你们的支持和鼓励让我仿佛回到少年时代,那个充满好奇与热情、不会停下探索的14岁。每次点开通知看到熟悉的ID都是那样的开心,很久都没有从抑郁中感受到这样令人舒适的情绪,谢谢你们。今后我也会继续分享新的图、新的lora、和新的心得体会,希望这些能给大家带来一点点快乐。

 

那就下次再见吧~

2
0