最近一直有人问我怎么做模型,我分享一下我的做法:(模型的做法有很多,只讲我的,这里不讲专业太多术语免得有人来挑刺,对普通人也比较易懂)
1.挑选底膜,选一个你目标期望比较接近的底模,避免后面需要大幅的调整。
2.选数据集,根据你想要的效果挑选数据集(可能是你喜欢的画风,或修正某个的bug,比如头发打结,动作过拟,糊脸,某些词不起作用等),选择污染比较低数据集(尽量不要出现你不想学进去的东西),对数据集进行精准打标(没有打标的东西会被学进整个模型,举例来说就算是白背景不打标学完也会让模型的背景减少细节)
3.训练没有具体的万能参数,看你想学进去多少东西,学的内容越多,需要越大的dim、学习率,或者训练步数,比如建筑的细节,而简笔画则是相反。建议采用控制变量法或二分法来测试效果,和自己上次炼丹的结果作比较。改动那些参数会有更好的结果,时间长了自然也会掌握一些通用规律,但也不是万用规律。我自己是这么摸索过来的。
4.把练好的丹进行分层重制(主要目的是保留你训练集里想学进去的那部分内容,我把这个叫做“正向堆叠”,比如刚刚说的修复头发打结问题;去掉不想学进去的内容,我把这个叫做“污染”,比如刚刚说的使背景简化的负面效果),如果“正向堆叠”和“污染”在同一个分层就会比较头疼。虽然这是挺大概率事件,这时候就要调参重练,或者换图集。如何做到增加“正向堆叠”且减少“污染”需要大量的测试。我个人炼丹时间和测试时间大约是1:20的样子。“正向堆叠”存在“上限”,有些模型参数是互相矛盾的,有点类似经济不可能三角,这时候需要寻求一个综合性能上的平衡。
5.经过数轮的“正向堆叠”以后(我的模型大约是10~20轮左右),模型基本就会出现你想要的满意效果。 补充说明:目前事前控制“污染”比较好的方法是仔细挑选数据集以及精准打标,以及差异炼丹;事后控制污染的方法是模型分层。 另外,有些人不懂我的模型参数评级是怎么来的,其实就是以我自己的模型系列为参照系做的一个参照评分表。只对我自己的模型进行相对评分,用习惯我的模型的人大概也能知道个大概。
https://www.liblib.art/modelinfo/4a340e48e0d34d698d0d54d57715b631