首页  >  教程  >  文章
2024-01-02 11:00

Stable Diffusion LoRA 使用进阶教学丨如何进行分层权重控制

新年第一篇。

我们在训练lora的时候,除了人物形象之外,还会将服装、动作、场景甚至是画风一起训练。这就会导致,如果你需要训练一个人物lora,但是比如训练集中有人物服装的时候,最终模型出的图中,那件服装出现概率也会很大。

而lora分层控制就可以避免原训练集对画面的干扰,提高图像质量。

这个功能需要使用到我们的LoRA Block Weight插件。

图片

打开插件,可以看到一些配置好的权重预设。

图片

下面对应的是lora分层的预设参数,一共是17层。

第一个数字是base层,数值为1.代表着权重开启,lora的权重才会生效。2-7层是输入层IN(共6层),8层是中间层MID(共1层),9-17层是输出层OUT(共9层)。

图片

在权重设置中,我们可以看到很多已有的预设,调用其中的任何一个都可以对lora的效果产生不同的影响。

这里我用金克斯的lora来测试一下。

图片

使用提示词:1girl,jinx_\(league_of_legends\),blue_hair,<lora:金克斯_v1.0:0.8>。我们可以看到lora的生成效果,还原了金克斯这个形象的人物特征。</lora:金克斯_v1.0:0.8>

图片

接下来我增加红头发,机械铠甲,赛博朋克城市的提示词:red hair,mechanical armor,cyberpunk city。生成看一下,发现效果变化不大,因为在这个lora中,人物的发色和服装固定的太好了,不容易改变。

图片

打开LoRA Block Weight,在<lora:金克斯_v1.0:0.8:lbw=inall>中加入这样一段词语:INALL。INALL的参数是1.1.1.1.1.1.1.0.0.0.0.0.0.0.0.0.0.可以看到它控制的是前面6层,发色发型与提示词有关不受lora的影响,服装有一些lora的影响。</lora:金克斯_v1.0:0.8:lbw=inall>

图片

接下来,我们调整为使用<lora:金克斯_v1.0:0.8:lbw=midd>,MIDD的参数是1.0.0.0.1.1.1.1.1.1.1.1.0.0.0.0.0.可以看到人物和服装特征是基本符合lora的,对背景的控制不强,变成了赛博朋克的城市。</lora:金克斯_v1.0:0.8:lbw=midd>

图片

最后,我们调整为使用<lora:金克斯_v1.0:0.8:lbw=outs>,OUTS的参数是1.0.0.0.0.0.0.0.0.0.0.0.1.1.1.1.1.在这个控制当中,结果会更接近原lora的画风,但是人物特征会偏离。</lora:金克斯_v1.0:0.8:lbw=outs>

图片

可以看到,当我们呢开启不同通道时,对lora的效果就会产生不同的影响。

那么这些层到底代表什么含义呢?我们可以以这个图作为参考。根据这张图的含义,如果我们想要保留这张lora的哪种效果,我们就只需要启用相对应的层数就可以了。

图片

可以看到9.10.11层是针对人物的面部和角色特征。那么接下来,我们也可以自己新建规则,比如CB:1.0.0.0.0.0.0.0.1.1.1.0.0.0.0.0.0.将第一个改为1.作用是开启该权重,另外在将第9.10.11层改为1.控制角色特征,其余部分设为0.表示不受lora影响。

图片

将命名规则也加载进去。

图片

加载lora时,启用我们新建的规则,<lora:金克斯_v1.0:0.8:lbw=cb>。在其他提示词不变的情况下,可以看到红色头发,机械铠甲等提示词都没有影响到人物特征。</lora:金克斯_v1.0:0.8:lbw=cb>

图片

那这个功能到底有什么作用呢?我们再做一个测试,使用的一个二次元模型,绘制一个正常权重的金克斯。

图片

接下来,我们加入一个Q版手绘风格的lora。

图片

当两个lora的权重都为1的时候,可以看到金克斯的服装受到了手绘lora的影响,变成了中国风的感觉。

图片

图片

如果我们只想要画风变化,而服装特征不受影响应该怎么办呢?

我们可以将金克斯的lora开启9.10.11层的权重——<lora:金克斯_v1.0:0.8:lbw=cb>;另外,将手绘风格lora的权重开启6.8.12.13.14.15.16.17层,控制画面的风格和背景——<lora:q版手绘_v1.0:1:lbw=1.0.0.0.0.5.1.0.1.0.0.0.1.1.1.1.1.1>。</lora:q版手绘_v1.0:1:lbw=1.0.0.0.0.5.1.0.1.0.0.0.1.1.1.1.1.1></lora:金克斯_v1.0:0.8:lbw=cb>

生成之后,我们就可以看到人物形象的特征就不受手绘lora的影响了。

图片

这里再给大家分享一些常用的分层控制预设:

身体

BODY:1.1.1.1.1.1.1.1.0.0.0.1.1.1.1.1.1

BODY0.5:1.1.1.1.1.1.0.2.1.0.2.0.0.0.8.1.1.1.1.1

脸部(脸型、发型、眼型、瞳色等)

FACE:1.0.0.0.0.0.0.0.1.1.1.0.0.0.0.0.0

FACE0.5:1.0.0.0.0.0.0.0.0.8.1.1.0.2.0.0.0.0.0

FACE0.2:1.0.0.0.0.0.0.0.0.2.0.6.0.8.0.2.0.0.0.0.0

修手专用

HAND:1.0.1.1.0.2.0.0.0.0.0.0.0.0.0.0.0.0

服装(搭配tag使用)

CLOTHING:1.1.1.1.1.0.0.2.0.0.8.1.1.0.2.0.0.0.0.0

动作(搭配tag使用)

POSE:1.0.0.0.0.0.0.2.1.1.1.0.0.0.0.0.0.0

上色风格(搭配tag使用)

PALETTE:1.0.0.0.0.0.0.0.0.0.0.0.8.1.1.1.1.1

角色(去风格化)

KEEPCHAR:1.1.1.1.1.0.0.0.1.1.1.1.1.1.1.0.0

背景(去风格化)

KEEPBG:1.1.1.1.1.1.0.2.1.0.2.0.0.0.8.1.1.1.0.0

减弱过拟合(等同于OUTALL)

REDUCEFIT:1.0.0.0.0.0.0.0.1.1.1.1.1.1.1.1.1

以上,就是关于LoRA分层权重控制的使用方法。

9

相关文章