[AI绘画]分步渲染及循环迭代

在上篇的权重基础中我们已经提到过“融合”这一概念。最近,通过对webui的代码解读,我们对之前使用的“竖线融合”有了新的认知,同时我们也了解到了只在webui上生效的分布渲染方法。
循环绘制
[A | B]
两个或者多个关键词之间加 | 可以表示循环绘制:
例如[cat | dog]
这个句式的基本逻辑是先画一步cat再画一步dog,按照这样的顺序循环画下去。
这个逻辑可以一直延伸下去:
[A | B | C | D |E | F .......]
即画一笔A,再画一笔B,再画一笔C, ······
而对于带步数权重的循环绘制[A:w1 | B:w2],在11月1日的元素同典中表示只有naifu生效,而webui中只是被当做数字读取,而另一种[(A:w1) | (B:w2)]虽然能读取权重,但是只是对权重的调整,不能起到调整绘画步骤的效果
即:在naifu中可以通过cat:2|dog:3,大致上实现先画2步cat再画3步dog这样的循环方式。
而这webui中,(cat:2)|(dog:3)会被读作 第一步(cat:2),第二步(dog:3)这样的权重效果。
在简单使用[cat | dog]的时候可以起到混合图形的效果。可以写成cat:0.2|dog 这样来修改混合比例,这个比例最大100,可以是负值,负数的话可能会产生不可控的相反的效果 cat:1|happy:-0.2|cute:-0:3(备注:这一小段写于10月20日前,目前可能已经发生了变化

虽然很怪,但是还是能看出猫和狗的变化。。。好吧还是不要随便尝试炼成术
prompt matrix中的竖线
根据wiki的描述,这一方法需要开启prompt matrix才能生效,但是实际过程中好像没有收到限制。

反而如果开启后,会先跑一张竖线前所有prompts的图,再跑一张包含竖线后全部prompts的图。如:1girl, black idol dress|red hanfu, wet clothes.
在开启prompt matrix后,第一张图只会执行1girl,black idol dress。第二张图会执行1girl, black idol dress, red hanfu, wet clothes.

实际看这种方法与直接融合的方法还是有少许区别

tips:有一个很有趣的现象,汉服的领子不会打湿
画风融合
一张图中,同时存在两种画风,一次成型基本是不能做到的,ai会把画风融合起来,另外如果用inpaint和img2img进行二次处理也是比较难做到画风修正

同时一幅画里有两种画风的不同物体也是比较难做到的,ai会尽力让两个画风出现,但是能不能出现在要求的物体上就不好说了

分步渲染
分步渲染是使用webui独有的语法在同一个绘图中分别绘制不同的prompt。该方法目前建立在10月20日之后更新的webui基础上。
该语法为:
[A:B:step]
(这里面有两个冒号,分别表示A与B内容的分段,和赋值步数长度)
这个语法具体表示为“在执行到step前,先绘制A的内容,之后再绘制B的内容”
step为大于1的整数时表示步数,为小于1的正小数时表示总步数的百分比。
比如a girl with [white idol dress:red hanfu:0.2]会在前20%步数被视为a girl with white idol dress,在后80%步数被视为 a girl with red hanfu。
我们可以将其视为,ai在画了一部分white idol dress后,再在white idol dress的基础上画red hanfu。
由此延伸出这个方法的两种额外写法:
[ :B:step] 将A设置为空,即只在step后绘制B的内容
[A: :step] 将B设置为空,即只绘制A的内容直到step
所以这个方法非常适合“在物体上雕花”。比如我先画一件湿衣服,再画出深色的内衣(误)如果这个过程中湿衣服和内衣的顺序反了,那就只会在内衣上加点湿衣服元素。所以这个语句的使用还要考虑到里面两个物体的绘画先后顺序。
另外,根据目前的使用经验来看,在[ ]方括号内部添加其他括号或者权重调整时,请反复检查括号的使用。
值得注意的是,分布渲染在绘制时存在一定的延后性,例如该图设定人物渲染50步,背景渲染后50步。但是可以看见人物的渲染在60步时才基本完全结束。这里猜测ai对人物的判定大概注意在面部,而头发,装饰等细节都可能被判断为环境而继续进行渲染。(左侧为使用[人物::50], 右侧为[人物::0.5])

(extremely detailed CG unity 8k wallpaper),(((masterpiece))), (((best quality))), ((ultra-detailed)), (best illustration),(best shadow), ((an extremely delicate and beautiful)),dynamic angle,floating,
solo,[(impasto:1.3),(a detailed cute loli with red eyes and long wavy curly white_color_hair with single ponytail with gold Headdress and star earrings and wear detailed gorgeous white dress with gold patterns and lace), (beautiful detailed eyes:1.2),(cute face:1.2),expressionless, (medium breast:1.2),blush,(upper body, thigh),(colorful splashes:1.3): :0.5],
[:((flat color),(bright colorful background),(((high saturation))),(surrounded by colorful splashes),((surrounded by colorful dot)),surrounded by colorful flowers,(shining),Malt Syrup):0.5]
负面为一般负面tags
参数
Steps: 100, Sampler: Euler, CFG scale: 6, Seed: 2200146686, Size: 1024x512, Model hash: e6e8e1fc, Clip skip: 2, ENSD: 31337
那么,有了分步渲染,我们是不是就能做到画风融合了呢?
答:目前的结果依旧不乐观。
分步渲染的时候,如果长时间对一个目标进行渲染了,比如话我先对人物进行渲染,这个过程中ai可能会丢弃掉人物周围的噪声点,这就导致了轮到背景开始渲染时,已经没有足够的噪声供给了,就会出现很简单的背景。


提前对背景开始渲染,可以让背景更丰富一点。

提高了CFG scale后,ai变得死板,对噪声清除变快,使得背景更加单调。

基本看不到提升,分步渲染的时候对渲染对象外的噪声清除太快了。。。
背景预留式的分步逻辑
那换一个思路,我能不能一开始就给背景留一点渲染空间呢。这就像是人绘画的时候先打个草稿一样,把大致的色彩都先抹好,然后再来“加点细节”。
答案是可以的,这样确实会提升背景的丰富度。当然一开始的噪声改变了,人物也会改变。

在头50步对人物进行渲染,我们使用 [A: :step]:
solo,[(impasto:1.3),(a detailed cute loli with red eyes and long wavy curly white_color_hair with single ponytail with gold Headdress and star earrings and wear detailed gorgeous white dress with gold patterns and lace), (beautiful detailed eyes:1.2),(cute face:1.2),expressionless, (medium breast:1.2),blush,(upper body, thigh),(colorful splashes:1.3): :0.5],
(请关注该段末尾的符号使用。不要学习这里的人物描写长句,这个长句有巨大的问题。with的链接性及其不可靠,造成了大量的元素污染,长句建议也只用and连接)
同时在头10步渲染背景,留下噪点:
[((flat color),(bright colorful background),(((high saturation))),(surrounded by colorful splashes),((surrounded by colorful dot)),surrounded by colorful flowers,(shining),Malt Syrup): :0.1],
后50步单独渲染背景,我们使用 [ :B:step]:
[:((flat color),(bright colorful background),(((high saturation))),(surrounded by colorful splashes),((surrounded by colorful dot)),surrounded by colorful flowers,(shining),Malt Syrup) :0.5]
完整的时间线逻辑如下

这还是CFG=11的情况,那么把CFG调回到6呢

似乎能够在一定程度上丰富了细节

这背景是好看了,元素污染及其严重,这是未进行元素绑定的问题。
关于元素绑定,我们有强短句和长句两种方法来绑定;
强短句是利用大写的AND来链接词汇,长句就是根据语言逻辑来写一个完整的描述。
这部分内容在彩虹糖果女孩tags分析中有进行表述。

对强短句内容进行一点修正。AND的优先级很高,在长括号里面会影响括号的权重调整(削弱权重效果)。优先用短括号对词组包裹。

回到画风融合的问题。。实际上我们大概能得到一丁点相似的地方,比如背景描述中的平涂小花。但是依旧很难实现在整个平涂背景上画出一个厚涂的角色。。。。


更多资料:
【腾讯文档】AI绘画——深度教程
https://docs.qq.com/doc/DQ3ZJSGFmeVpWc2ta