我们在用AI创作图片的时候,通过模型和提示词,让AI有了很大的随意发挥空间,这种随意发挥带来了很多随机性和不确定性,大部分情况下会给我们带来更多的惊喜。但是总会有一些时候,有一些小细节不尽人意

这个时候,我们就需要一个很普通,却很重要的功能——局部重绘

我们可能会经常遇到以下几个场景

  1. 图片的某个细节有缺陷
  2. 提示词污染导致部分细节不准确
  3. 整体都很好,但是想换个发色/衣服/裙子

什么是局部重绘

在使用AI绘画时,尽管可以通过调整模型和参数来获得好的作品,但准确性问题仍然存在。AI的扩散算法虽然带来了无限可能,但也可能导致一些意料之外的结果,如不自然的四肢或元素的错误放置。幸运的是,Stable Diffusion的局部重绘功能可以解决这些问题。

为了方便演示,我们用以下参数先批量生产一堆美女

  1. CheckPoint模型:XXMix_9realisticSDXL
  2. Lora模型:无
  3. 采样器:dpmpp 2m sde karras
  4. 采样步数:30
  5. 提示词:
Best quality, masterpiece, (photorealistic:1.5),8k, raw photo,xxmixgirl,wide shot, 1girl, offshoulder, bare shoulders,sexy, white dress,long hair,lie in bed,beautiful eyes,sunlight shining on hair,the window is covered in flowers,outside the window is nature,facing the camera,there are flowers on the hair

批量美女

局部重绘操作

局部重绘类似于修正,可以直接覆盖并重绘图像的特定区域。例如,如果我想改变角色的头发颜色,可以通过在正向提示词中加入特定提示词,并调整重绘幅度来实现。这个过程在Stable Diffusion中可以实现,甚至现在Midjourney也开始支持局部重绘了,今天我们从ComfyUI的角度来讲如何实现局部重绘

我们就拿其中一张画出来的美女图为例,整体都非常好,但是她的眼睛,看起来好像颜色不对,我们就用局部重绘来修正眼睛的缺陷
缺陷美女

通常来说,ComfyUI中的局部重绘可以细分为以下几个步骤

1.搭建工作流

局部重绘整体的工作流其实就是一个图生图的工作流,只不过我们需要对图像加载的部分添加遮罩。

通常我们搭建一个图生图的工作流时,我们会用“VAE编码”节点来把图像进行像素空间到潜空间的转化,然后再链接传给KSampler采样器的Latent。

当我们要使用遮罩时,则需要在“VAE编码”节点和KSampler节点中间,再加一个“设置Latent噪波遮罩”节点来传递遮罩信息

设置Latent噪波遮罩

以上就是重绘的基础部分了,仅仅是在基础图生图的基础上加上遮罩即可。为了方便使用,我对工作流加了亿点点细节,加了ControlNet,加了ClipSeg语义分割的开关,以及面部修复,这里我们先跳过,后面我会细讲。

文末可以获取完整工作流文件

工作流

2.选择重绘区域

在WebUI中,可以用局部重绘功能,用画笔涂抹想要重绘的部分,而在ComfyUI中,其操作也是类型,我们对图像加载节点右键就可以看到“在遮罩编辑器中打开”

遮罩编辑器

接下来,我们通过遮罩编辑器涂抹眼睛的部分,然后点击save to node,就可以保存你涂抹的区域

遮罩编辑器

3.修改重绘提示词

我们可以保留大部分的提示词,但是需要稍微修改一下,改成我们需要的提示词,比如我们想让她闭眼,则加上“closed eyes”,想要眼睛变成蓝色,则加上“blue eyes”

比如在上面的例子中,我分别尝试了用“closed eyes”,和“beautiful eyes”来分别尝试让人物闭眼,和直接修复眼睛,得到的结果如下图(左边是原图,中间是闭上眼睛,右边是修复眼睛)

眼睛修复

我个人认为直接闭眼的感觉更好

4.调整参数抽卡

对于局部重绘的图片,在模型选择上其实很简单,主要也就分为写实模型和动漫模式,依据你的原图选择模型即可。其他的如采样方法、采样步数、以及降噪参数等,就按照普通的图生图设置来就行。以下是我重绘的参数,仅作参考

  1. CheckPoint模型:麦橘V7
  2. Lora模型:无
  3. 采样器:dpmpp 2m sde karras
  4. 采样步数:30
  5. 降噪:0.8

前面只是修改了一下眼睛,效果不是很明显,我们换个例子,直接换衣服来看看具体效果。对于以下提示词,我只需要不断修改“white dress”为各种颜色的衣服,就可以看到不同的换装效果

Best quality, masterpiece, (photorealistic:1.5),8k, raw photo,xxmixgirl,
1girl, solo, long hair, breasts, looking at viewer, (white dress:1.2), simple background, black hair, cleavage, bare shoulders, brown eyes, jewelry, medium breasts, collarbone, cowboy shot, earrings, grey background, necklace, off shoulder, bag, lips, realistic, 

换装

进阶应用技巧

1.SAM检测获取蒙版

局部重绘除了使用画笔来绘制遮罩层以外,还有很多高级技巧来得到遮罩蒙版,比如ComfyUI中的通过SAM检测来自动获取蒙版,而不需要我们手动绘制,它的效果很类似于WebUI中的inpaint anything插件。

SAM检测的使用方式很简单,在加载图像节点右键就可以打开
SAM检测

然后我们只需要对想要选择的部分点几下即可,然后点击detect,就能自己检测选取,如果范围太大,就拉动下面的滑块来缩小选取范围(比如以下就是我选择上衣部分)
SAM检测)

很多时候,SAM自动检测会有一些选不到或多选的地方,这时候,我们还可以关掉SAM之后,在遮罩编辑器中继续涂抹,组合使用,精准选取

2.提示词自动检测

很多时候,有人在使用ComfyUI时会追求全自动,如果你连遮罩选取这一步都不想手动操作怎么办?当然也可以了!

使用“CLIP语义分割”节点就可以实现这样的功能,我们添加“CLIP语义分割”节点,它就能根据你输入的提示词自动创建遮罩,我们通过简单的节点链接就可以把遮罩传递到下一步

如下图,我分别用“skirt”、“hair”和“face”提示词,就能自动检测到“裙子”、“头发”和“脸部”
提示词自动检测

遮罩都能做到自动创建了,那其他节点的自动化就更容易了!

3.结合ControlNet

前面讲工作流的时候可以看到我在里面加了ControlNet应用堆,用于添加多个ControlNet,你可能会有疑问,局部重绘,要ControlNet干什么呢?

其实很简单,如果你只是重绘眼睛,让人物睁眼闭眼,ControlNet没有什么作用。但如果你是换装,如果不做一些固定,人物很容易跑偏,造成重绘部分于整体不和谐的情况。所以我在加入了lineart和openpose来进行一定的控制

同理的还有工作流中的脸部修复,如果仅仅是想修复人物面部,完全可以用脸部修复节点直接修复即可

ControlNet

结尾

以上就是在ComfyUI中进行局部重绘的方法了,相比于WebUI,它更加的灵活,我们可以把任何节点串起来,自由组合,只要足够有创意,就能做出各种各样的工作流。

局部重绘技术为AI艺术创作带来了新的可能,有了局部重绘,对很多应用场景都有实际意义:

  1. 修复常见的手崩,脸崩,多手,多脚等问题
  2. 对已有图像优化,如修改人物瞳孔颜色,发色等
  3. 对模特进行换装,常用于电商场景

工作流及样图资源分享

我用夸克网盘分享了「局部重绘分享」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。
链接:https://pan.quark.cn/s/cad5b986bea7
提取码:HgLV

Q.E.D.