写在前面

这里是好久没更专栏的suye,上次在做塔罗牌时发现了一个比较有意思的插件,可以控制画面中超过1人以上图像,这次就这个插件出一期教程。这个插件可以在以下两个网址进行安装:


(资料图片仅供参考)

Latent couple:https://github.com/opparco/stable-diffusion-webui-two-shot 

Composable LoRA:https://github.com/opparco/stable-diffusion-webui-composable-lora

测试参数

(((masterpiece))),(((bestquality))),((ultra-detailed)),(illustration),((anextremelydelicateandbeautiful)),dynamicangle,(floating),(beautifuldetailedeyes),(detailedlight),atdan, ( colorful:1.4),(2girls:1.3), Church, clean white walls, marble floors, marble sculptures, chandeliers, windows, lighting, sitting on bed, holding_hands,AND (((masterpiece))),(((bestquality))),((ultra-detailed)),(illustration),((anextremelydelicateandbeautiful)),dynamicangle,(floating),(beautifuldetailedeyes),(detailedlight),atdan, ( colorful:1.3),Church, clean white walls, marble floors, marble sculptures, chandeliers, windows, lighting, (2girls:1.4),original_outfits,blue hair, halo, long hair, blue eyes, official alternate costume, dress, gloves, horns, looking at viewer, black gloves, solo, black footwear, white dress, wings, demon horns, smile,sitting, sitting on bed, holding_hands, (hand in own hair:1.3),AND (((masterpiece))),(((bestquality))),((ultra-detailed)),(illustration),((anextremelydelicateandbeautiful)),dynamicangle,(floating),(beautifuldetailedeyes),(detailedlight),atdan, ( colorful:1.3),Church, clean white walls, marble floors, marble sculptures, chandeliers, windows, lighting, (2girls:1.4),Fiammetta, solo,boots, shirt, red eyes, skirt, black skirt, necktie, black footwear, red necktie, jacket, open jacket, white shirt, open clothes, black jacket, black gloves, looking at viewer, gloves, collared shirt, red hair, short hair, breasts, border, knee boots, tail, bangs, medium breasts, bird tail, closed mouth, sitting on bed,holding_hands,

Negative prompt: (painting by bad-artist-anime:0.9), (painting by bad-artist:0.9), watermark, text, error, blurry, jpeg artifacts, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, artist name, (worst quality, low quality:1.4), bad anatomy,((nsfw)),loli face,((logo)), (worst quality:1.8), (low quality:2.0),lowres, bad anatomy,(bad hands:1.8), text, error,(missing fingers:1.5), extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry,missing fingers,bad hands,missing arms,large breasts, lowres,bad anatomy,bad hands,text,error,ugly,duplicate,morbid,boken limb,incorrect limb,fusion finger,lose finger,multiple finger,multiple digit,fusion hand,lose leg,fused leg,multiple leg,bad feet,fewer digits,cropped,worst quality,low quality,normal quality,jpeg artifacts,signature,watermark,username,blurry,text font ui,malformed hands,long neck,missing limb,(mutated hand and finger: 1.5),(long body: 1.3),(mutation poorly drawn: 1.2),disfigured,malformed mutated,multiple breasts,futa,yaoi,too much arms,

Steps: 30, Sampler: DPM++ 2M Karras, CFG scale: 7, Size: 1024x768, Model hash: b3e1b725e3, Model: expmixLine_v20, Denoising strength: 0.6, Clip skip: 2, ENSD: 31337, Hires upscale: 2, Hires steps: 30, Hires upscaler: Latent (nearest-exact)

Latent couple:

先来看一下效果图:

前者未使用插件进行控制,后者使用了插件控制,两者使用相同包括种子在内的相同参数。可以明显看出,在不使用插件进行控制的情况下,画面中的人物除头发和袜子颜色外,服饰元素基本相同,并未作出区分,并且在画面的正中央引入了一个第三者,构成了一幅和谐的三角画面。反观后者,通过插件进行区分后,两个人物都有了各自的人物和服饰特征,虽然在一些小细节上还存在着混淆的问题,但是大体上已经比前者优秀很多了。

接下来讲一下插件的使用方法,在Stable Diffusion扩展—从网址安装中输入下载网址,点击安装,安装完成后重启用户界面,你就能在文生图界面看到这个:

这说明已经安装成功,可以进行下一步操作。

我们首先讲潜变量成对,也就是Latent couple,这个插件的原理是将画面分割成小块区域,在区域内分别迭代各自的tag,再将它们融合成一个画面,以此形成多人的效果。

图中参数的含义分别为:

分割:决定区域的大小,格式为A:B,不同区域间用逗号隔开,其中A代表该区域占整个画面高的A分之一,B表示该区域占整个画面宽的B分之一,如1:2意为该区域高为一分之一,宽为二分之一,也就是画面的左右对半大小。

位置:决定了区域的位置,格式为A:B,不同区域间用逗号隔开,其中A代表横坐标,B代表纵坐标,以0开始,以左上角为原点,以相应的分割的大小为单位长度,如第一个0:0对应分割1:1,就是指大小为一整块画面的区域位于左上角开始第1块位置,也就是整个画面。第二个0:0对应分割1:2,指大小为半块画面的区域从左上角开始第一块区域,也就是画面左半部分。以此类推,第三个0:1,就是整个画面的右半部分了。

权重:决定区域tag的权重。格式为一个0—1的数字。决定了对应区域的tag所占该区域的权重。

迭代止步:控制该插件在迭代过程中的步数,一般推荐和采样步数相同。

另外还有需要和该插件配合使用的tag写法:格式为tag组合1ANDtag组合2ANDtag组合3,分别控制对应的区域,不同区域间用AND链接。

几个需要注意的点:

1,各参数的区域数量必须相同,譬如在分割中写了三块区域,那么在其他几个参数中也只能写三个区域,tag中也只能写三个tag组。

2,区域可以重叠,但是重叠部分后各区域的权重和最好为1,譬如在上图例子中,左半边区域的权重和为0.2(第一块)+0.8(第二块)=1,右半边同理。

3,需要注意分割后区域的大小,避免在位置中输入错误的参数,譬如设定分割为1:2,如果在位置中声明这块区域的位置为1:0的话,由于这块区域的高已经为整个画面,那么位置中的1就会让这块区域在高的方向上向下一个分割单位,相当于直接从画面中消失了,也就是不起作用。

分割后的效果可以点击下方的预览查看,可以看到各区域占画面的位置,以及代表权重的颜色深浅。

另外还需要注意的是,画面分割指的是tag分割,并不是指结构分割,即在不同区域使用不同的tag,但是画面的结构不会发生变化。如下图:

上面两张图采用了上下分割的模式,但并没有如同预料中出现上面一个人,下面一个人的情况,而是依旧保持了左右构图的结构,但是可以看到,左图二者的头发与上半身服饰均使用了tag组合2,而交换上下区域后,右图二者的头发和上半身服饰均使用了tag组合3,说明这个插件依然在发挥作用。

综上所述,这个插件与其说是一个画多人图的插件,不如说是一个分区域控制tag的插件,画出多人图的结构,动作,依旧要靠tag去控制,如2girls,holding_hands, 而在画面不同部分使用不同的tag以区别不同角色,则就要靠这个插件实现了。

一开始使用这个插件时,可以选择默认参数,tag格式为:

场景质量tagAND场景tag+人物1tagAND场景tag+人物2tag

为什么场景质量tag要写三遍呢?前面说了,每一个区域都是有权重的,如果仅在区域一写上tag,其占整体权重就0.2,基本可以忽略不计,因此要在后两个区域中再次重复场景tag,才能使其权值和为一,从而达到控制场景的效果。

熟练使用后,就不必在意一些条条框框了,根据自己的需要修改参数即可,把画面分成100份写一百组tag理论上也不是不行,不知道有没有区域数量限制,但是使用这个插件会导致出图速度显著下降,应当权衡利弊。理论上这个插件可以精准控制到在画面的什么地方出现什么元素,具体实践就交给大家了。

Composable LoRA:

于是有了Latent couple后,就有小伙伴迫不及待,兴冲冲地拿着几个Lora想要看妹纸贴贴,把Lora分别加到不同区域角色tag后一跑,出来个这么个玩意:

这……这不对吧……你俩谁啊?我老婆呢?我要的贴贴呢?

出现这种情况的原因是因为在炼Lora时,大家都是拿着单人角色炼的,那AI自然只认识单人不认识多人了,看到放了两个Lora,哎一寻思能行,就把两个Lora的特征融在一起,就会出现上面这种状况。

这个时候就要用到Composable LoRA,这个插件能将Lora分开作用,具体原理别问,问就是我也不知道,总之使用它很简单,勾选上启用就行了。

勾选上启用后,我们再用相同参数来一遍:

欸,好像分开了,又好像没分开,为什么勾选了还会出现这种情况呢,这还是得怪到Lora头上,一些Lora会存在过拟合的问题,也就是当权重很高时,出图效果会逼近用于训练的那几张图,换言之,会极大地改变原图结构。这种效果也会作用到画面的其他部分上,具体影响程度视Lora的拟合度而定。

怎么解决呢?答案其实也很简单,降低Lora的权重,补上辅助tag即可。譬如一个Lora在单人时推荐权重为0.8,不需要辅助tag,那么用于多人图时,将权重降到0.6或0.5,并补上符合这个角色的辅助tag(辅助tag可通过tag反推得到)。

做完上述操作后,让我们再跑一张试试:

这个时候的效果就相当不错了,两个Lora分别发挥作用,没有过分的污染,整体画面也比较和谐。

换模型跑几张也是一样的:

后话

这次带来的是有关Latent couple和Composable LoRA用法的专栏,这两个插件可以实现画面的区域tag控制,使得不同的区域可以使用不同的tag和Lora,对于控制画面有极大的帮助,是个相当不错的插件。

另外我要吐槽一句,网上关于这两个插件的教程质量参差不齐,甚至大部分都是复制粘贴别人的劳动成果,光是b站我看到封面相同的就三个,评论区还指出教的有问题,实际Composable LoRA的作用根本没讲,因此我才出了这期专栏。

我每一期专栏都是经过实际测试后得出的结论,并不是没有依据的信口开河,下载过我测试图分享的小伙伴应该知道,我的测试图分享动辄一个g多,里面有用于测试的四五百张图,还经常被吐槽,说一个g下半天最后发现是测试图……

但话虽这么说,我也不能保证我一定是对的,一来我不是插件作者,不知道插件运行的逻辑和原理,也只能通过出图效果判断插件作用,二来我用来测试的例子也比较少,从某种意义上说也无法作为论据得出结论。所以这也是仅供参考,具体插件效果还需小伙伴们自己动手实践。或者有更了解这个插件的小伙伴也可以在评论区分享。

这里是正在学习AI的suye,定期分享AI相关,查看主页可以发现更多有意思的内容,如果感兴趣的话可以点个赞或者关注一下哦!!