Lora画风训练,从入门到入橘子(
Hello,大家好。这里是娱乐Eisthol
很多人一直在催我出画风的教程啊
正巧现在对于画风训练这一块儿没有那么敏感了,那我就稍微讲一下吧。
观前提示,大家悄悄的学,学会了不要去跳脸画师就行(
一,基础篇(quick lora)
其实想要去复刻某种风格的画风,是非常简单的一件事
我们只需要去打全标,然后使用默认参数去训练就行了,实际上大部分画风lora都是这么训练过来的。
举个例子就是lion的学习率一般为3e-5,adam8bit的学习率一般为1e-4
文本学习率一般为图像学习率的十分之一
Dim一般设置为128,alpha一般设置64
现在进入解释环节
首先是为什么要打全标,
一直有一种说法,就是有人在教训练画风的时候不达标直接扔进去
实际上这种做法是相当错误的,
虽然用这样方法训练出来的lora确实在某种程度上能够学会这种画风的笔触
但是图像中的元素全都会失去语义指导,这也就导致了两个问题
第一个问题就是训练出来的模型会不听话,甚至过拟合
第二个问题就是随着prompt的增多,会有越来越多的底模中的素材代替lora学会的图像
从而使效果降低
所以还是建议大家打全标,效果会好的多。
然后这个学习率问题,你问我为什么建议这个学习率,我只能说这是亲身实验(
为了做这个教程,娱乐亲身实验过好多的学习率,
那两天是真的怎么练怎么炸啊,险些搞到道心破碎
所以大家一定要用手中的三连狠狠的安慰一下up
最后确定了还是默认参数的学习率最合适(不然你猜猜为什么这是默认参数)
然后就是dim,这个dim维度主要影响两个东西,一个是lora模型的大小,另一个就是lora能学到的东西,而且当dim大于128之后对学习效果的提升就不明显了
我们训练画风肯定是希望什么都能学会的
所以这里的dim一般设置成128
二,进阶篇
其实用我们上面说的方法去训练画风,或者说复刻某种画风,效果就非常不错了
但如果我们想更精进一步,就需要在打标上面下手了
也就是说,我们需要对tagger打好的标签进行一定的修改,来提升效果
这里有两个方向
第一个,就是人工对打错的标签进行修改或者删除,从而使lora的泛化性能更好
但是目前tagger打的标签足够准确,这么干也比较费时费力,所以只推荐那些对于自己模型质量精益求精的同志们去使用
第二个,就是把某些出现概率很高的tag删除,来引导画面效果
举个例子

我在训练这个lora的时候,删除了所有描述”蓝色”物体的标签,从而使得画面风格变得偏向于冷色调。
又比如这个

就是使用Yuu(Yuumei)老师的某几张图片,删除了所有描述星星的tag,只保留一个
star\(symbol)\作为触发词得到的效果,
(当然因为数据集比较少,效果达不到Yuu老师的一根毛)
又或者我们可以在训练某种画风的时候,删除see-through或者shiny skin之类的tag,来达到某些不可告人的目的((((((((
解释为什么要这么做的话:
Tag被删除后,这个tag所描述的特征就会只学习图像特征,而没有语义指导,我们删除的都是某些描述整个画面或者人物的tag,这也就代表被删除tag所描述的特征会应用到整个图像上,从而引导画面效果。
三,额外参数
除了基础的学习率,dim,repeat,epoch之外
Lora训练还有不少额外的参数
这里娱乐的建议是,除了金字塔噪声(multires_noise)之外,其他参数基本上都是没什么大用,不好控制不说,随便开启反而会使训练效果降低。
至于金字塔噪声,他的原理是创建多分辨率的噪声并堆叠在一起,同时缩减低分辨率的噪声,从而增强训练出lora的对比度以及光影效果
有细微的副作用(比如可能会出现动作略微过拟的情况)
但是相当建议大家开启,对训练效果有很大的提升
甚至有的时候这个参数开启与否训练出来的lora是两个效果
嗯,建议金字塔噪声的两个参数设置为6和0.3