LORA分层控制的教程其实网上已经有一些了,不过我感觉都偏理论,许多像在上数学课, 而且实际运用讨论很少,既然如此,我就自己研究,出一期应用型的心得好了。 既然说是应用型的心得,所以文章也会用大量的实例来说明和求证

我们为什么要用lora?

LORA可以让我们轻松画出特定的人物,物品,特殊的笔触和特殊的画风或风格,属于一种特殊训练的子集。 那么我们将一个人物LORA的特征分下类 (人物LORA为例,容易理解)

人物容貌:包括人物的发型,眼睛,脸型,嘴巴,表情

人物服饰:包括头饰,服装,鞋子,配饰等

人物姿势动作:人物的姿势或者动作

画面风格:整个LORA的画面风格

画面背景:整个LORA画面的背景

LORA过拟合:某些LORA训练过拟合产生的问题。


分层控制这个插件对应的层数有17层,为了更好的理解,先看看LORA的原理,

你真的会用LORA吗?超详细讲解LORA分层控制 - 图1

能看出LORA工作流程分为三大部分: IN(输入部分),MID(中间部分)和OUT(输出部分)外加一个开关BASE(第一层) 开关第1层+ IN输入部分(2-7层)+MID(8层)+OUT输出部分(9-17层) 而插件作者将17层归为7个小类,如下
INS 17层的2-4层,第一层是base 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0
IND 17层的5-7层,第一层是base 1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0
INALL INS+IND,整个IN部分, 2-7层 1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
MIDD IND+MID+OUTD部分,5-12层 1,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0
OUTD 17层的9-12层,第一层是base 1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0
OUTS 17层的13-17层,第一层是base 1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1
OUTALL OUTD+OUTS, 整个OUT部分 1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1

那每个部分是如何作用画面的呢?我用官方文档和我自己生成的双图为例, NONE是指原图,ALL是指LORA全开权重为1的图。

你真的会用LORA吗?超详细讲解LORA分层控制 - 图2

通过不断对比两组图,找出各种差异属于哪个部分,做一个大概的推断,得到以下数据
人物容貌 MIDD左右
人物服饰 IND,OUTD,MIDD
人物姿势 IND
LORA上色风格 OUTS
LORA背景 MIDD
过拟合 OUTALL

这里说下过拟合,过拟合是指LORA追求100%像,而降低了泛用性,拿人物来说,有些LORA只能出半身图,你用它出全身图就崩了。

LORA控制容貌层

LORA只影响容貌

好了,基本总结完了,下面进入实际操练环节,首先是LORA容貌部分,我们先看这张图,

你真的会用LORA吗?超详细讲解LORA分层控制 - 图3

原图

你真的会用LORA吗?超详细讲解LORA分层控制 - 图4

斯嘉丽LORA分层全开,权重1 为了不让tag影响我们实验结果,tag就用基础魔咒 prompt: 1girl, (8k, RAW photo, best quality, masterpiece:1.2), (realistic, photo-realistic:1.37), ultra-detailed
1个女孩, (8k, RAW照片,最佳质量,杰作:1.2),(逼真,照片逼真:1.37),超细节
Negative prompt: nsfw, paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, age spot, (outdoor:1.6), manboobs, backlight,(ugly:1.331), (duplicate:1.331), (morbid:1.21), (mutilated:1.21), (tranny:1.331), mutated hands, (poorly drawn hands:1.331), blurry, (bad anatomy:1.21), (bad proportions:1.331), extra limbs, (disfigured:1.331), (more than 2 nipples:1.331), (missing arms:1.331), (extra legs:1.331), (fused fingers:1.61051), (too many fingers:1.61051), (unclear eyes:1.331), bad hands, missing fingers, extra digit, (futa:1.1), bad body, NG_DeepNegative_V1_75T,pubic hair, glans 现在我们用斯嘉丽的LORA作为例子,如果我们想要寡姐只替换这张图的面部,而不改变其他,那我们根据之前总结的,应该只作用于MID部分附近,其他都关闭,试试效果。OUTD为9-12层,我们先扩大为8到12层 具体参数为1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,结果如下

你真的会用LORA吗?超详细讲解LORA分层控制 - 图5

开启8-12层 发现连姿势和背景也变了,不太对,缩小范围为9到11层,调整参数为:1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0

你真的会用LORA吗?超详细讲解LORA分层控制 - 图6

开启9-11层 寡姐脸对了,再试试继续调整,参数改成1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0

你真的会用LORA吗?超详细讲解LORA分层控制 - 图7

仅开启10层 放一起对比看看

你真的会用LORA吗?超详细讲解LORA分层控制 - 图8

还是黑色衣服寡姐比较像,最后那套方案和原图很像了,那就用之前的方案,命名为ONLYFACE

ONLYFACE:1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0

LORA影响容貌以外的元素

因为影响容貌的层已经试出来了,那就剩余层就应该是影响其他因素 参数为1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,试一试

你真的会用LORA吗?超详细讲解LORA分层控制 - 图9

关闭9-11层,其他全开 再对比下原图和LORA全开的图

你真的会用LORA吗?超详细讲解LORA分层控制 - 图10

发现还是比较符合预想,把这个命名为DELFACE

DELFACE:1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1

LORA人物服饰

根据最初总结的,去掉OUTS的最后5层,MIDS的2-4层,以及人物容貌控制的9-11层 余下的应该是1,0,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,试一试

你真的会用LORA吗?超详细讲解LORA分层控制 - 图11

开启4-7层和12层 其实服装挺像了,发型容貌也没有被寡姐影响,但是背景被影响到了,姿势也是,再调整试试,删掉 midd部分,只留下1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0

你真的会用LORA吗?超详细讲解LORA分层控制 - 图12

只开5,6和12层 背景也被保留了,而且也是室外而不是室内,再调整参数,继续精简,然后发现第5层一定要留,不留就变这样

你真的会用LORA吗?超详细讲解LORA分层控制 - 图13

不留5层,服饰完全无法更改

你真的会用LORA吗?超详细讲解LORA分层控制 - 图14

只留5层 感觉只要5层就可以了,为了验证下,我们再开一组试试, 用一组不需要触发词的LORA(爱丽丝),自带衣服风格的,易比较 只开5层:

你真的会用LORA吗?超详细讲解LORA分层控制 - 图15

只开5层 崩得很严重,LORA全开应该是这样

你真的会用LORA吗?超详细讲解LORA分层控制 - 图16

LORA全开 没办法,只能继续调试
头都秃了,发现MID层极为影响衣服的生成,但是同样也影响容貌,很难分离,只能又加回来几层继续调试,试了半天觉得比较好的衣服参数为以下, CLOTHES: 0,0,0,1,1,0,0.2,0.8,0.8,1,1,0.2,0,0,0,0,0

你真的会用LORA吗?超详细讲解LORA分层控制 - 图17

CLOTHES参数 有更好的参数记得告诉我

LORA上色风格

不说过程了,又是调试好久,这个还行 COLOR-STYLE: 1,0,0,0,0,0,0,0,0,0,0,0.8,1,1,1,1,1

你真的会用LORA吗?超详细讲解LORA分层控制 - 图18

原图

你真的会用LORA吗?超详细讲解LORA分层控制 - 图19

LORA全开

你真的会用LORA吗?超详细讲解LORA分层控制 - 图20

上色风格 实在要吐,越来越玄学

LORA画面背景

用回原来的图,锁种子,又是调整了好久,就怕过拟合,差不多的参数,取名BACKGROUND BACKGROUND: 1:1,1,1,1,1,1,1,1,0.2,0,0,0.8,1,1,1,0,0

你真的会用LORA吗?超详细讲解LORA分层控制 - 图21

原图

你真的会用LORA吗?超详细讲解LORA分层控制 - 图22

LORA全开

你真的会用LORA吗?超详细讲解LORA分层控制 - 图23

保留背景(有室内的影子)

LORA人物动作

锁种子后非常不好调,和许多参数重叠在一起,很难单独调出来 网上的调法是:1,1,1,1,1,1,0.2,1,0.2,0,0,0.8,1,1,1,0,0,试过效果一般,为了完成还是取名

ACT: 1,1,1,1,1,1,0.2,1,0.2,0,0,0.8,1,1,1,0,0

你真的会用LORA吗?超详细讲解LORA分层控制 - 图24

建议用controlnet的canny或者openpose辅助完成,单靠LORA分层无法解决

LORA过拟合

其实很多教程和我自己实验都证明了,解决过拟合比较好的方式就是OUTALL, 这里举例证明下,

你真的会用LORA吗?超详细讲解LORA分层控制 - 图25

原图

你真的会用LORA吗?超详细讲解LORA分层控制 - 图26

风格LORA,崩了

你真的会用LORA吗?超详细讲解LORA分层控制 - 图27

过拟合修正 OUTALL:1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1 除了这个方法外,还可以用降低LORA的比重来解决LORA过拟合问题。
17分层的研究就告一段落了,这里把我调试的参数公布整理下 ONLYFACE:1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0 DEFACE:1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1 CLOTHES: 0,0,0,1,1,0,0.2,0.8,0.8,1,1,0.2,0,0,0,0,0 COLOR-STYLE: 1,0,0,0,0,0,0,0,0,0,0,0.8,1,1,1,1,1 BACKGROUND: 1:1,1,1,1,1,1,1,1,0.2,0,0,0.8,1,1,1,0,0 ACT: 1,1,1,1,1,1,0.2,1,0.2,0,0,0.8,1,1,1,0,0 OUTALL:1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1

分层插件LoRA Block Weight

把上列数据拷近插件LoRA Block Weight

GitHub - hako-mikan/sd-webui-lora-block-weight

你真的会用LORA吗?超详细讲解LORA分层控制 - 图28

点保存,下次就可以直接调用使用了 例如 ,就能调用ACT的分层参数,记得区分大小写,也记得启动LoRA Block Weight

你真的会用LORA吗?超详细讲解LORA分层控制 - 图29

应该是全网最详了,头疼,各位晚安