紧接上一篇说完我们的就说到inpainting模块了,和之前的流程略有不同,那么重绘的逻辑呢自然是在我们已有的图片上,已有的图片和我们放大也是一个逻辑一样有两种方法,一种就是浅空间里,一种就是浅空间外
通常在ComfyUI中我们的优势就是能对浅空间进行修改,而SD就相对死板,没有办法对浅空间进行更多细致的操作;浅空间的好处就是不需要编码,不需要对图像进行多次的转换(转入转出的来回转换)
第二个好处就是因为同处浅空间,多次生成后的图片和之前的原图混合度会更好,这是浅空间最大的一个优势;
我们会发现我们是没有办法把解码的图像加载过来的(想要加载过来我们在一些插件里是需要使用一个循环流的,涉及第三方插件,这里就不过多赘述);加载以后我们同样需要进行一个浅空间转换,一样是进行一个编码采样;
紧接上篇,唯一不同的就是这个地方我们需要进行一个重绘(比如我们想替换背景)就需要在遮罩中绘制一下;这里我们来简单的把背景画一下,退出后就可以直接看到我们遮罩的画的范围;
上面可以看到我们的遮罩并不精细,这里我要用到的就不是编码了,我们拖出来新的节点,选择VAE内补编码器;它其实是对于一个遮罩部分的一个编码,它会识别遮罩;与我们原本VAE区别就是多了一个遮罩信息点;我们继续删除之前VAE编码器,将VAE连接过来,右边的Latent直接给到采样器(这里就相当于inpainting二次采样);
提示词我们可以直接套用负面提词,正向提词如果想改变可以单独出一个CLIP;点击生成后我们会看到进行到这一步出来的结果是比较糟糕的;最大的问题是出在我们的文本(大部分朋友都会出现的问题就是出现两个头);
紧接上一篇,因此对遮罩内要修改的东西,我们就应该只填写背景的内容,删除小男孩的内容,而不是整张画的描述;再次生成我们就可以发现背景成功被我们替换成了所设置的天空;这就是我们在潜在空间之外现有图像的一个转换,相当于图像Pixel信息再转换给了潜在空间,然后重新出图;
这里我们重新绘制一个遮罩,然后节点拖出来选择设置Latent噪波遮罩;这个意思就是潜在空间的遮罩会被遮罩的地方重新生成罩波,也就是重新进行二次采样;与之前的区别就是这次是在laten空间里进行一个转换;接下来就相对简单,我们只要依次点对点连接(结合我们的提示词,把上一个采样器的latent直接输出过来,再把加了遮罩的latent直接输入第二个采样器)
当然我们的流程依旧是有些许瑕疵的,比如细节方面的处理,这就设计了较多的问题:
做过放大流程让我们知道如果是全身照细节是难以绘制到位的
我们对于姿势给到的降噪幅度过高时,在腿和鞋的处理就会怪异,在我们第一次生成图片时就需要精细的调整;
包括第二次放大以及第三次重绘在一定基础上至少是1024的分辨率;我们裁减的大小以及重绘是在什么条件之上都是我们需要考虑的流程;
Inpenting模块中在我们想要换手会发现即便在SD中也有概率每次生的出来的结果不一,这就设计到了输出二点准确性问题;在这方面我们的处理方案也很多,比如SD中借用Controlnet预加载模型来进行手部矫正以及细节修复;更多的方案就需要大家自行探索了!
感谢大家的关注,持续分享ComfyUI的内容教学!