AI绘画:Stable Diffusion Web UI(六)图生图的基础使用②局部重绘Inpaint
本次记录图生图界面局部重绘/Inpaint和局部重绘手涂蒙版/Inpaint sketch的主要功能。
非技术大佬,如有错误,纯属正常。
前面几篇有需要的新手小伙伴可以去合集中看看:
(一)Windows本地搭建
(二)插件及模型安装
(三)基础使用教程
(四)模型推荐
(五)图生图的基础使用1
前面说了img2img和 sketch特点是全图重绘,不管你添加了哪个部位的提示词,他都会把全图画一遍,尤其是重绘强度较高的时候,不但没有到达我们想要的效果,还把我们不想改的地方也画的乱七八糟。
Inpaint和Inpaint sketch就是为了解决这个问题存在的,他们的特点就是只重绘我们标记的地方,也就是局部重绘。
此次试验的模型来自civitai,@rqdwdw的Counterfeit-V2.5,因为我没有下载修复模型,所以下面的修复都是使用原模型
1、先看界面
1.1、局部重绘/Inpaint

①缩放模式,(五)里说过了
不同的地方在于,缩放模式和尺寸针对的是全图,其他参数则是针对的蒙版,为了减少影响,在inpaint模式,我们尽量选择和原图相同的尺寸。
②蒙版参数
蒙版
首先了解蒙版,在PS里,蒙版是一种特殊的遮罩,它是附着在原图之上。对蒙版的操作会影响原图的可见性,但是并不会实际的改变原图。它有三个颜色,黑、白和不同程度的灰(可能是叫灰?),黑色会遮挡住原图,使原图这一部分消失,也可以说使原图不可见、变透明;白色附加到原图上,没有任何变化,原图可见;灰色会使原图犹抱琵琶半遮面,变部分透明。
在PS中,这是一张原图↓

它实际上有两层,只不过底下的背景层被她覆盖了看不到↓

现在在原图上建立一个蒙版,分别画了黑、白和黑白渐变(为了白色便于观察,我用黑框圈起来)↓

加上蒙版后就是下面的效果↓
黑色部分变透明,露出了绿色;白色部分没有变化;灰色部分变成部分透明。

↑原图看起来已经被改的面目全非,但是实际上并没有任何实际改变,只要取消掉蒙版,它就会恢复成原来的美女,绿色也会重新被美女遮挡住。
再举个不是很恰当的例子:
现在有一张画,我们称它为原画。原画里有一串葡萄我想换成桃子,但是我又不能直接在原画上面改。这是第一层。
于是我找来一张透明的纸覆盖在原画上,在葡萄的地方涂黑,这样原画上的葡萄就不见了。这是第二层。
然后我又找来一张透明的纸盖在刚才的透明纸上,在黑色的地方画了个桃子,但是桃子毕竟不是葡萄的形状,我还要再画一点别的东西把剩余黑色也挡住,还要考虑和原画的融合。这是第三层。
三层叠加起来,就是原画上的葡萄变成了桃子。
在Inpaint中,大概也是这么个流程:↓

我们需要重点知道的内容:
蒙版的黑色画笔并不是一种真的颜色,它是一片代表透明(不可见)属性的区域;
原图+蒙版+预处理+重绘加起来就是我们最后看到的出图内容;
导入原图后,旁边有个黑色画笔,用来画蒙版。↓

为了便于观察,以下重绘强度均设为0,无提示词。
先看
蒙版蒙住的内容/Masked content:
我们知道被涂抹的内容已经不可见,上面的ps的示例中是绿色的背景出现在了不可见的地方。SD中并没有背景图层,它是给出了填充、原图、潜变量噪声和潜变量数值零四项内容供我们选择一个拿去填补蒙版区域:↓

这是一个预处理的步骤,
填充:使用蒙版边缘图像的颜色填充,不过颜色已经被高度模糊;
原图:原来是什么样就是什么样;
潜变量:一个是使用噪点,零值可能就是噪点的值为零?

↑可以看到,填充、潜变量和原来的画面一点关系都没有,适合用来生成新东西;原图模式保留了原画面,更适合用来小改、修饰。
到这我们就能知道,画笔只是一个用来标记区域的工具,后面SD会根据我们此处的选择和提示词进行重绘,重绘的效果怎么样,这四个选项是关键的一步。
蒙版模糊/Mask blur:

蒙版模糊可能是添加的高斯模糊。高斯模糊,它会使图像渐变式的透明,从而达到自然衔接的效果。
下图是高斯模糊的效果:↓

可能白色背景不大明显,看下透明背景:↓

蒙版模糊就是将我们涂抹区域,从边缘向中间透明过渡。
数值较小的时候,边缘柔和,可以更好的和原图融合;
值越大,可见的重绘范围越小,如果大于我们涂抹的范围,则重绘完全消失(透明)。
如下图:↓

增加重绘强度重绘看一下,截图不大标准,可以参照左右下角的物体比较↓

注1:64像素并不是极限,最后会不会消失,和我们涂抹的大小有关。如下图,也是64,但是变化很小。↓

注2:有多个涂抹区域时,每个涂抹区域是单独处理的,并不是作为一个整体去模糊。↓

重绘区域变小,其余部分是没了么?并不是,蒙版反而还变大了。如下图,
上:模糊后,涂抹的实际范围;下:它们对应的选区,相当于我们能看到的重绘区域:↓

随着模糊数值增大,可见选区变小了,实际上的结果却是蒙版变大了,更像是扩散了。
虽然并没有啥用,毕竟边缘的透明度太高,根本不会有重绘内容,AI的重绘还是集中在选区那么大范围。
(说实话,蒙版模糊除了拿来减少手涂的误差,我实在还想不到可以拿来干嘛)
但是这个变大效果在重绘区域中选择使用仅重绘蒙版选项的时候会造成重大影响,后面再说。
注:前面说过的填充、原图、潜变量四个预处理选项,它们是跟着蒙版一起走的,同样也会被这一步模糊处理。
蒙版模式:

这个简单,分别是重绘涂抹区域和重绘涂抹以外的区域。在inpaint模式中使用并不多,比如:
屋子里有一个苹果。我们想重绘苹果,只要涂抹苹果就可以了;
如果想重绘背景那需要涂抹的地方太多,只需要涂抹苹果,然后此处重绘非蒙版就可以了。
重绘区域/Inpaint area:

全图:
并不是img2img那种全图重绘,它不会改变非蒙版区域的内容,只是指蒙版在全图架构下进行重绘。优点就是内容与原图融合的更好,缺点是不够细节;
我们知道SD的绘图,尺寸越大细节越多,图像越精细。使用全图选项的时候,我们涂抹的地方有多大,它就会在多大的地方重绘,很明显那点地方是限制了它的发挥的;
因此全图最好使用原图模式,只拿来做改变颜色之类的小修小改。
仅蒙版:会把蒙版区域的尺寸拉高到原图的尺寸进行重绘,然后再放回去。优点就是细节更好,缺点也是细节太多,与原图融合的不够好;
为了解决这个问题,下面的仅蒙版模式的边缘预留像素,就是扩大我们的蒙版区域,将一部分原图的内容放到蒙版里。当然这部分内容也不会被重绘,只是一个参考项。
例如,原图是512*768,蒙版区域的尺寸是50*50。
当使用全图模式时,就是以50*50的尺寸重绘;
使用仅蒙版时,50*50会变成512*768,重绘完成后又会变成50*50;
假设仅蒙版模式的边缘预留像素+20,那么蒙版就会从50*50向外扩张20,变成70*70,再从70*70变成512*768,最后再变成70*70,再去掉多余的20,变成50*50放回去。
以下是图示:↓

仅限涂抹一处或多处很近的情况,像是最上和最下都有涂抹,那就和全图差不多↓

注1:前面说过的蒙版模糊会对仅蒙版模式造成重大影响:
从预览可以看出,蒙版模糊后实际上变大了的影响就是,相比正常的仅蒙版(右图),数值较大的蒙版模糊相当于加了许多像素的边缘预留,结果也就比全图模式好一点:↓

注2:因为仅蒙版模式细节提升,我们可以看到明显的蒙版模糊效果,使用仅蒙版需要注意模糊数值:↓

③在(五)里说过了,其他的(三)里说过了
再单独说下重绘强度,在img2img中,我们虽然需要较大的重绘强度,但是并不是一开始就选择较大,而是一步步加上去,不然会严重破坏原图。
在inpaint中,一开始就要设置较大的强度,特别是使用蒙版模式中的填充、潜变量的时候。↓

1.2、手绘蒙版/Inpaint sketch
相比Inpaint,Inpaint sketch多了个蒙版透明度的选项↓

在inpaint模式中,画笔只有黑色,如果有的选,甚至我们可以让它是红色蓝色等等任何我们喜欢的颜色,因为它代表的一片区域,和颜色没关系;
在inpaint sketch中,画笔可以选颜色了,而且确确实实的是什么颜色就是什么颜色,会影响到原图。
再来分解一下:↓

蒙版透明度:

前面说的蒙版模糊也有透明的效果,这里又有个透明度,有什么区别呢?
蒙版模糊的透明度,是从涂抹边缘开始的一种渐变效果,数值越大,越靠近涂抹中心;
蒙版透明度,是整个蒙版都带透明度。↓

随着蒙版透明度数值增加,画笔颜色和预处理图像的透明度都变高。
透明度越高,AI发挥的空间越小;
最先受到影响的是预处理图像,基本上当透明度大于60,预处理就会失去作用,也就是蒙版蒙住的内容选项失去作用,AI不会重绘。如果同时使用了数值较大的蒙版模糊,这个数值会大大提前;
画笔颜色的影响会持续到透明度90以上,但是因为没有重绘,只是看到一个颜色附加。同样的,如果同时启用模糊,颜色的影响也会提前消失。
蒙版蒙住的内容选择潜变量那两个选项时,画笔颜色基本不会产生影响,相当于没有。
除此之外还有几个情况:
蒙版透明度0,不影响预处理图像,只代表画笔颜色不产生效果。但是有几个例外情况:
当蒙版蒙住的内容选择填充且使用蒙版模糊时。我们知道蒙版模糊会让涂抹会向外扩散导致实际范围变大,此时画笔的颜色已经向外扩散,即使蒙版透明度为0,扩散出去的颜色还是会造成影响;↓

当蒙版蒙住的内容选择原图,画笔颜色会作为原图内容保留,透明度0不会使颜色消失;↓

蒙版透明度接近100,代表蒙版已经透明,此时颜色和预处理的图像都不会产生效果,出图即是原图,不会发生改变。
蒙版模式与蒙版蒙住的内容:

依据前面的内容:
当蒙版模式选择重绘蒙版内容时,图像蒙住的内容需要选择填充和原图;潜变量的两个选项会导致画笔颜色失去效果,因此潜变量适合重绘非蒙版内容。
其他的选项参考inpaint就可以。
1.3、上传蒙版/Inpaint upload
上传蒙版的参数和局部重绘inpaint是一样的,参照上面的就可以。
上传的蒙版需要借助其他工具如PS的处理,相比直接手涂肯定是更精确;
上传蒙版的蒙版在制作时可以设置部分透明的效果(不同程度的灰),还有边缘的羽化等等。此时需要注意具有相同效果的蒙版模糊的使用;
需要注意的一点是,在上传蒙版中,白色代表重绘,黑色代表不处理。也不用细分,如果弄错了,在蒙版模式中选择重绘非蒙版就可以。
2、总结
上面的内容虽然多,但是基本没啥用。
毕竟大多数时候,我们只需要正确的选择,而不是过多的选择。
以下是简单的总结:
局部重绘/Inpaint
蒙版蒙住的内容:一般用原图,无中生有用填充、潜变量
蒙版模糊:默认或小于默认,手残党适当上调;
蒙版模式:一般默认重绘蒙版;
重绘区域:简单的修改用全图;需要更多细节用仅蒙版,细节过多就增加边缘预留像素;
重绘强度:默认或大于默认;
手绘蒙版/Inpaint sketch
蒙版蒙住的内容:一般使用原图,需要更多的变化选填充,重绘非蒙版内容选潜变量;
蒙版模糊:建议2,手残党适当上调,小于默认;
蒙版透明度:按照需要颜色的程度调节,最好不要超过40
上传蒙版/Inpaint upload
如果蒙版有羽化或者模糊,蒙版模糊的数值0或2
白色代表重绘
3、简单的示例
3.1首先补充一个上次忘了说的扩展脚本:Outpainting mk2

这是一个扩展原图的脚本,可以增大尺寸的同时最大可能的保证原图样式。
上面的参数按照推荐设置即可,需要注意尺寸的修改。原图是512*768,我要把它扩展成768*768,需要扩展256,两边分一下就是128,其他参数默认,向外绘制选左右,先尝试一下


100步的出图:

并不是很好,预览时看到过不错的,降低步数试一下。
效果不能说一般,只能说不大让人满意↓

尝试了一下降低衰减指数,结果出来两堵墙....还是用1

最后又加了点提示词,就这样吧

3.2、局部重绘/inpaint

上图,是我复制了别人的提示词生成的。现在我觉得旁边的纸和笔不好,又不知道放啥好,就可以把它们涂抹掉,什么提示词也不填,让AI自己发挥。
注意,inpaint模式,重绘只针对蒙版,所以不需要原图提示词,比如下图,我直接从文生图发送过来,保留了提示词,看看它会生成什么

是的,它按照原图的提示词生成了一个小人....
去掉原图提示词重新操作,
为了让它更容易发挥,蒙版蒙住的内容选潜变量噪声,重绘强度选1;
重绘区域选仅蒙版,为了减少干扰,蒙版模糊2,边缘预留选择4↓
咱也不知道它是咋想的....↓

效果极差!现在输入提示词,
就让它画个猫猫头吧↓ a cat,standing,playying ball

还凑合,但是阳光被破坏了,将潜变量切换成原图↓

还有问题,因为我们涂抹的区域太小,猫猫头施展不开,所以把playying ball去掉重绘↓

第一张还可以,除了没有尾巴,将第一张发送到inpaint,再给它加个尾巴↓

修改提示词为 (cat tail:1.4) ,另外这个涂抹区域实在是太小了,使用仅蒙版抬高尺寸肯定会出幺蛾子,所以使劲加大边缘预留像素,我加到了128,无中生有,依然选潜变量

就第一张吧,顺便让我们看看第二张发生了什么


3.3、上传蒙版/inpaint upload
去PS也不知弄啥蒙版,于是我想了个取巧办法,直接用controlnet生成了一个深度图做蒙版,真是机智

目标是保留人物改变背景,所以选择重绘非蒙版内容,先按正常参数测试一下,让AI自己发挥

出图:

对比很强烈...
添加提示词 masterpiece, best quality, RAW photo,park bench,outdoors,sky,landscape, 蒙版蒙住的内容改为填充,重绘1

就这样吧,能看就行...
3.4、手绘蒙版/inpaint sketch
这个实在不知道哪来干啥,随便试一下吧




求点赞^_^