ComfyUI 局部重绘工作流
本篇指南将带你了解 ComfyUI 中的局部重绘工作流,并带你完成一个局部重绘的示例,以及遮罩编辑器的使用等
本篇将引导了解 AI 绘图中,局部重绘的概念,并在 ComfyUI 中完成局部重绘工作流生成,我们将接触以下内容:
- 使用局部重绘工作流完成画面的修改
- 了解并使用 ComfyUI 中遮罩编辑器
- 了解相关节点 VAE Encoder (for Inpainting)
关于局部重绘
在 AI 图像生成过程中,我们常会遇到生成的画面整体较为满意,但是画面中存在一些不希望出现或者错误的元素,但是重新生成可能会生成另外一张完全不同的图片,所以这时候利用局部重绘来修复这部分的元素就非常有必要了。
这就像让 画家(AI 绘图模型) 画了一幅画,但是总是会有稍微有 局部区域需要调整,我们需要向画家说明需要调整的区域(遮罩),然后让画家会根据我们的要求进行 重新绘制(重绘)。
局部重绘的场景包括:
- 瑕疵修复: 消除照片中多余物体、错误的AI生成的画面的肢体等
- 细节优化: 精准调整局部元素(如修改服装纹理、调整面部表情)
- 等其它场景
ComfyUI 局部重绘工作流示例讲解
模型及相关素材准备
1. 模型安装
下载下面的模型文件,并保存到ComfyUI/models/checkpoints
目录下
2. 局部重绘素材
请下载下面的图片,我们将在这个示例中使用这个图片作为输入使用
3. 局部重绘工作流
下面这张图的 metadata 包含的对应的json工作流,请将其下载后 拖入 ComfyUI 界面或者使用菜单 工作流(Workflow) —> 打开工作流(Open,快捷键 Ctrl + O
) 来加载这个局部重绘工作流
ComfyUI 局部重绘工作流示例讲解
请参照图片序号对照下面的提示完下操作:
- 请确保已经加载了你所下载使用的模型
- 请在在
Load Image
节点中加载局部重绘的素材 - 点击
Queue
按钮,或者使用快捷键Ctrl + Enter(回车)
来执行图片生成
此外我们在这里可以对比一下,下图是使用v1-5-pruned-emaonly-fp16.safetensors 模型来进行 inpainting 的结果。
你会发现 512-inpainting-ema.safetensors 模型生成的结果局部重绘的效果更好过渡更自然。 这因为这个模型是专为 inpainting 设计的模型,它可以帮助我们更好地控制生成区域,从而获得更好的局部重绘效果。
记得我们一直用的比喻吗?不同的模型就像能力不同的画家一样,但每个画家都有自己能力的上限,选择合适的模型可以让你的生成效果更好。
你可以进行下面的尝试来让画面达到你想要的效果:
- 修改正向 、负向提示词,使用更具体的描述
- 尝试多次运行,让
KSampler
使用不同的种子,从而带来不同的生成效果 - 在了解本篇遮罩编辑器使用的部分后,对于生成的结果再次进行重绘以获得满意的结果。
接下来我们将简单了解如何使用 遮罩编辑器(Mask Editor) ,因为之前提供的输入图片中是已经包含了alpha
透明通道(也就是我们希望在绘图过程中进行编辑的区域),所以并不需要你手动绘制,但在日常使用中我们会更经常使用 遮罩编辑器(Mask Editor) 来绘制 蒙版(Mask)
使用遮罩编辑器(Mask Editor) 绘制蒙版
首先在上一步工作流中的Save Image
节点上右键,你可以在右键菜单中看到复制(Clipspace)
选项,点击后会复制当前图片到剪贴板
然后在 加载图像(Load Image) 节点上右键,你可以在右键菜单中看到Paste(Clipspace)
选项,点击后会从剪贴板中粘贴图片
然后在 加载图像(Load Image) 节点上右键,你可以在右键菜单中看到在遮罩编辑器中打开(Open in MaskEditor)
选项,点击后会打开遮罩编辑器
- 你可以右侧编辑相关参数,比如调整画笔大小、透明度等等
- 绘制错误区域可以使用橡皮檫来擦除
- 绘制完成后点击
Save
按钮保存蒙版
这样绘制完成的内容就会作为 遮罩(Mask) 输入到 VAE Encoder (for Inpainting) 节点中一起进行编码
然后试着调整提示词,再次进行生成,直到你可以完成满意的生成结果。
局部重绘制相关节点
通过文生图、图生图 和本篇的工作流对比,我想你应该可以看到这几个工作流主要的差异都在于 VAE 部分这部分的条件输入, 在这个工作流中我们使用到的是 VAE 内部编码器 节点,这个节点是专门用于局部重绘的节点,它可以帮助我们更好地控制生成区域,从而获得更好的生成效果。
输入类型
参数名称 | 作用 |
---|---|
pixels | 需要编码到潜空间的输入图像。 |
vae | 用于将图片从像素空间编码到潜在空间的 VAE 模型。 |
mask | 图片遮罩,用来具体指明哪个区域需要进行修改。 |
grow_mask_by | 在原有的遮罩基础上,向外扩展的像素值,保证在遮罩区域外围有一定的过度区域,避免重绘区域与原图存在生硬的过渡。 |
输出类型
参数名称 | 作用 |
---|---|
latent | 经过 VAE 编码后的潜空间图像。 |