前言

昨天问了一圈没吧友熟悉,还是自己查了查资料和github源码,找了点东西分享一下,个人感觉很多想搓精细图的吧友不太熟悉关于权重这方面的东西,所以拿出来说明下。

这么多天了,大家现在都知道,越精确的prompt会想要越精确的结果,而如果ai觉得某个地方不适合放某个prompt,那么他就会拿掉去不生成这个prompt。

经典的案例就是当我们roll一张图的时候,经常会出现某个发型被忽略了,发色变化了,本来想凹巨乳结果变成平胸了,
实际上,现在的automatic1111的webUI对于负面prompt的使用就是调整了权重,让负面prompt相对于正常的更难出现,
于是,既然这个“更” 是和普通词条比较的,那么自然prompt越少,出现想要的结果就越容易。

但是,如果我们的图片或者需求需要超大量资源进行堆叠混合进行精准控制呢?ai可会扔掉一大堆堆堆东西。
这时候就需要调整我们的权重比率了,简单的说就是让AI去更加注意我们特别想出现的东西,从而提高概率

而用法上我们可以用 圆括号()和花括号{}去抬高权重,用方括号降低权重[],
是不是很熟悉?对,括号就是干这个用的

在这里提一下算法,圆括号提高1.1倍权重,花括号提高1.05倍权重,方括号降低1.05倍权重。
而圆括号有特殊用法,可以使用(prompt:weightf)的方式调整精确数值。

所以计算上面
(prompt)==(prompt:1.1);((prompt))==(prompt:1.21)
{prompt}==(prompt:1.05)
[prompt]==(prompt:0.952)

首先我们来一张图作为样板。

7-1.md.jpg

prompt

(((extremely detailed CG unity 8k wallpaper))),(((masterpiece))),(((best quality))),(beautiful detailed eyes),(((extreme detailed illustration))),cinematic lighting,art of light novel,highres,original,extremely detailed walpaper,shadow,(extreme detailed night sky,:1.5),
(crystal_plant,flower:1.3),(absurdres:1.4),(firebug,butterfly:1.2),(pink_crystal_tree:1.6),check commentary,commentary request,scenery,
(((solo))),1girl,delicate face,(full body:1.1),(lifting_dress:1.4),
green hair,cyan eyes,(two-side-up hair:1.5),light_smile,floating hair,one hand in hair,(hat with crystal:1.2),
(white dress,frilled dress:1.1),white pantyhose,(sleeveless:1.1),(blue hair bow:1.1),frills,blue_leg_ring,

Negative prompt:
(((ugly))),(((duplicate))),((morbid)),((mutilated)),(((tranny))),(((trans))),(((trannsexual))),(((mutation))),(((deformed))),(((long neck))),((bad anatomy)),(((bad proportions))),(((extra arms))),(((extra legs))), (((disfigured))),(((more than 2 nipples))),malformed,mutated,(hermaphrodite),
((extra limbs)),((missing arms)),((missing legs)),((poorly drawn hands)),((poorty drawn face)),(mutation,poorly drawn :1.2),
(long body :1.3),multiple breasts,cloned face,gross proportions, mutated hands,bad hands,bad feet,long neck,missing limb,(malformed limbs),malformed hands,
(fused fingers),(too many fingers),extra fingers,missing fingers,extra digit,fewer digits,(mutated hands and fingers :1.5),
lowres,text,error,cropped,worst quality,low quality,normal quality,jpeg artifacts,signature,watermark,username,blurry,text font ui,futa,yaoi,

Steps: 30, Sampler: Euler a, CFG scale: 11, Seed: 2350591040, Size: 768x768, Model hash: e6e8e1fc, Eta: 0.65, Clip skip: 2

可以看到,在你没有办法获得专有词,可能是真的没有这种东西,或者词汇偏僻到你不熟悉的情况下,我只能用了极端多的prompt来实现我想要的构图:巨量的精致程度,粉色的水晶树,水晶花,蝴蝶,其它构成。

其它例图只涉及对
(crystal_plant,flower:1.3),(firebug,butterfly:1.2),(pink_crystal_tree:1.6)
的修改,其它的默认省略。

这里提一下,(extreme detailed night sky,:1.5),这条的权重并没有生效,原因是冒号前打了个逗号,于是 <空>的东西获得了1.5倍权重。

7-2.md.jpg

图2
(crystal_plant,flower:1.5),(firebug,butterfly:1.3),(pink_crystal_tree:1.6)
可以看到,我们把flower的权重提高了,因此脚下的水晶更多的变成了花
如果我们再加更多花并且增加蝴蝶数量呢?

7-3.md.jpg

图3:
(crystal_plant,flower:1.7),(firebug,butterfly:1.6),(pink_crystal_tree:1.6)
可以看到,从蝴蝶结装饰品到旁边的粉色树变成了蝴蝶,脚下的花也更多,甚至因为要素被归于其他物体上,影响了构图。

7-4.md.jpg

图4:
(crystal_plant,flower:1.1),(firebug,butterfly:1.2),(pink_crystal_tree:1.6)
当花的数量急剧减少,蝴蝶的数量也减少的时候,身上的蝴蝶不再被视为蝴蝶而是形成蝴蝶结。

7-5.md.jpg

图5
(crystal_plant,flower:1.5),(firebug,butterfly:1.3),(pink_crystal_tree:1.1)
极大量的减少了粉色水晶树
重点:如果当我们影响一个涉及到颜色的物品的话,那么这幅图的构图就会被从根本上改变,哪怕不涉及其他要素的数据调整也已经看不见图1的构图影子了。
所以在调参尤其是涉及到颜色权重的时候,一定要慎重处理。
很可能哪怕修改一点点,也会让整体seed的固定无效化。

7-6.md.jpg
7-6-1.md.jpg
7-6-2.md.jpg

这次我们取一个合理的值:(crystal_plant,flower:1.3),(pink_crystal_tree:1.6)
而三张图的butterfly相对图6分别是0.9, 1.0, 1.1
可以看到,当低于1时,和我们填进去neg-prop的情况是一样的,直接删除掉了butterfly这部分。
而1.1相比1.0,则有相对更多的蝴蝶数量,一部分蓝发被切掉成为了蝴蝶。
因此注意如果又有帽子又有蝴蝶这种丰富色彩的情况下,长发或者侧发很容易被切割掉,AI要划分出一部分颜色去给其它物体。

然后,如果我们取一个极端不合理的值呢?
就会变成这样。

7-10.md.jpg

进入了古神领域,对吧,所以控制权重并不是越高越好,而是相对于画面内容的比率。这图的butterfly权重是3.0。


但是如果,我们找到了一个超出常理,却又符合部分常理的值呢?
(crystal_plant,flower:1.3),(firebug,butterfly:2.1),(pink_crystal_tree:1.6)

7-8.md.jpg

超出常理,却符合常理。
这并不是种子变化或者我在搓别的图,而是在AI眼里,种子产生基色,而基色决定了构图
这是以上图片的缩略图,缩小后可以看到整体构图和色块分布是相对符合的。

7-9.md.jpg


结论:

1.权重的用法涉及到构图和添加更多元素,如果有想要调整画面元素构成比的人,一定要先在prompt配置好权重方便后续调整
2.不要出现拼写错误,比如:(extreme detailed night sky,:1.5)
3.如果括号包含了多内容,AI只关心末尾部分prompt权重,并不能把他们全都包含起来一起处理(10.13为止版本),(crystal_plant,flower:1.3)=crystal_plant,(flower:1.3)
4.颜色决定了构图,所以涉及颜色的权重最好固定死 或者不要有大幅度的改动。
5.取值可以稍微的不合理,但是最好合理。
6.高的权重prompt并不会替代低权重prompt,只决定了你让AI更加去注意哪点


补个ref:
https ://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features,
https ://energy-based-model.github.io/Compositional-Visual-Generation-with-Composable-Diffusion-Models/
Last modification:November 13, 2022
如果觉得我的文章对你有用就点个赞吧ε≡٩(๑>₃<)۶ 无需登录