开始 ComfyUI 的 AI 绘图之旅-Stable Diffusion图生图之局部重绘(Inpaint)和扩图(Outpaint)(三)

文章标题

  • 一、局部重绘
      1. 模型安装
      1. 局部重绘素材
      1. 局部重绘工作流
    • 4.ComfyUI 局部重绘工作流示例讲解
    • 5.使用遮罩编辑器(Mask Editor) 绘制蒙版
    • 6.局部重绘制相关节点
  • 二、关于扩图
      1. 模型安装
      1. 输入图片
      1. 扩图工作流
      • 3.1 扩图工作流使用讲解
      • 3.2 Pad Image for outpainting 节点
      • 3.3 输入参数
      • 3.4 输出参数
      • 3.5 节点输出内容
      • 3.6 效果对比

本篇指南将带你了解 ComfyUI 中的局部重绘工作流,并带你完成一个局部重绘的示例,以及遮罩编辑器的使用等

本篇将引导了解 AI 绘图中,局部重绘的概念,并在 ComfyUI 中完成局部重绘工作流生成,我们将接触以下内容:

  • 使用局部重绘工作流完成画面的修改
  • 了解并使用 ComfyUI 中遮罩编辑器
  • 了解相关节点 VAE Encoder (for Inpainting)

一、局部重绘

在 AI 图像生成过程中,我们常会遇到生成的画面整体较为满意,但是画面中存在一些不希望出现或者错误的元素,但是重新生成可能会生成另外一张完全不同的图片,所以这时候利用局部重绘来修复这部分的元素就非常有必要了。这就像让 画家(AI 绘图模型) 画了一幅画,但是总是会有稍微有 局部区域需要调整 ,我们需要向画家说明需要调整的区域(遮罩) ,然后让画家会根据我们的要求进行 重新绘制(重绘)。局部重绘的场景包括:

  • 瑕疵修复: 消除照片中多余物体、错误的AI生成的画面的肢体等
  • 细节优化: 精准调整局部元素(如修改服装纹理、调整面部表情)
  • 等其它场景

1. 模型安装

下载下面的模型文件,并保存到ComfyUI/models/checkpoints目录下

安装aria2快速下载模型,几乎能将我家1000M的宽带跑满,每秒80~90M,接下来的介绍模型都会给出安装命令。

bash 复制代码
apt install aria2
bash 复制代码
aria2c https://huggingface.co/stabilityai/stable-diffusion-2-inpainting/resolve/main/512-inpainting-ema.safetensors -o SourceCode/ComfyUI/models/checkpoints/512-inpainting-ema.safetensors --auto-file-renaming=false --allow-overwrite=false

小技巧:你要是打不开https://huggingface.co,可以将其换成为https://hf-mirror.com/试一试

2. 局部重绘素材

请下载下面的图片,我们将在这个示例中使用这个图片作为输入使用

这张照片已经包含了 alpha 透明通道,所以并不需要你手动绘制蒙版,在本篇教程也会涉及如何使用遮罩编辑器来绘制蒙版的部分,我们会引导你一步步来完成整个局部重绘的过程

3. 局部重绘工作流

下面这张图的 metadata 包含的对应的json工作流,请将其下载后 拖入 ComfyUI 界面或者使用菜单 工作流(Workflow) ---> 打开工作流(Open,快捷键 Ctrl + O) 来加载这个局部重绘工作流

4.ComfyUI 局部重绘工作流示例讲解

请参照图片序号对照下面的提示完下操作:

  1. 请确保已经加载了你所下载使用的模型
  2. 请在在 Load Image 节点中加载局部重绘的素材
  3. 点击 Queue 按钮,或者使用快捷键 Ctrl + Enter(回车) 来执行图片生成

此外我们在这里可以对比一下,下图是使用v1-5-pruned-emaonly-fp16.safetensors 模型来进行 inpainting 的结果。

你会发现 512-inpainting-ema.safetensors 模型生成的结果局部重绘的效果更好过渡更自然。 这因为这个模型是专为 inpainting 设计的模型,它可以帮助我们更好地控制生成区域,从而获得更好的局部重绘效果。

v1-5-pruned-emaonly-fp16(Stable Diffusion) 512-inpainting-ema

记得我们一直用的比喻吗?不同的模型就像能力不同的画家一样,但每个画家都有自己能力的上限,选择合适的模型可以让你的生成效果更好。你可以进行下面的尝试来让画面达到你想要的效果:

  1. 修改正向 、负向提示词,使用更具体的描述
  2. 尝试多次运行,让 KSampler 使用不同的种子,从而带来不同的生成效果
  3. 在了解本篇遮罩编辑器使用的部分后,对于生成的结果再次进行重绘以获得满意的结果。

接下来我们将简单了解如何使用 遮罩编辑器(Mask Editor) ,因为之前提供的输入图片中是已经包含了alpha透明通道(也就是我们希望在绘图过程中进行编辑的区域),所以并不需要你手动绘制,但在日常使用中我们会更经常使用 遮罩编辑器(Mask Editor) 来绘制 蒙版(Mask)

5.使用遮罩编辑器(Mask Editor) 绘制蒙版

首先在上一步工作流中的Save Image 节点上右键,你可以在右键菜单中看到复制(Clipspace) 选项,点击后会复制当前图片到剪贴板

然后在 加载图像(Load Image) 节点上右键,你可以在右键菜单中看到Paste(Clipspace) 选项,点击后会从剪贴板中粘贴图片

然后在 加载图像(Load Image) 节点上右键,你可以在右键菜单中看到在遮罩编辑器中打开(Open in MaskEditor) 选项,点击后会打开遮罩编辑器

  1. 你可以右侧编辑相关参数,比如调整画笔大小、透明度等等
  2. 绘制错误区域可以使用橡皮檫来擦除
  3. 绘制完成后点击 Save 按钮保存蒙版

这样绘制完成的内容就会作为 遮罩(Mask) 输入到 VAE Encoder (for Inpainting) 节点中一起进行编码然后试着调整提示词,再次进行生成,直到你可以完成满意的生成结果。

6.局部重绘制相关节点

通过文生图图生图 和本篇的工作流对比,我想你应该可以看到这几个工作流主要的差异都在于 VAE 部分这部分的条件输入, 在这个工作流中我们使用到的是 VAE 内部编码器 节点,这个节点是专门用于局部重绘的节点,它可以帮助我们更好地控制生成区域,从而获得更好的生成效果。

输入类型

参数名称 作用
pixels 需要编码到潜空间的输入图像。
vae 用于将图片从像素空间编码到潜在空间的 VAE 模型。
mask 图片遮罩,用来具体指明哪个区域需要进行修改。
grow_mask_by 在原有的遮罩基础上,向外扩展的像素值,保证在遮罩区域外围有一定的过度区域,避免重绘区域与原图存在生硬的过渡。

输出类型

参数名称 作用
latent 经过 VAE 编码后的潜空间图像。

二、关于扩图

本篇指南将带你了解 ComfyUI 中的扩图工作流,带你完成一个扩图的示例

本篇将引导了解 AI 绘图中扩图的概念,并在 ComfyUI 中完成扩图工作流生成。我们将接触以下内容:

  • 使用扩图工作流完成画面的扩展
  • 了解并使用 ComfyUI 中的扩图相关节点
  • 掌握扩图的基本操作流程

在 AI 图像生成过程中,我们经常会遇到这样的需求:已有的图片构图很好,但是画面范围太小,需要扩展画布来获得更大的场景,这时候就需要用到扩图功能。

这就像让 画家(AI 绘图模型) 在已有的画作基础上,向外延伸绘制更大的场景。我们需要告诉画家 需要扩展的方向和范围,画家会根据已有的画面内容,合理地延伸和扩展场景。

基本上它要求的内容与局部重绘相似,只不过我们用来构建遮罩(Mask)的节点不同

扩图的应用场景包括:

  • 场景扩展: 扩大原有画面的场景范围,展现更完整的环境
  • 构图调整: 通过扩展画布来优化整体构图
  • 内容补充: 为原有画面添加更多相关的场景元素

1. 模型安装

2. 输入图片

请准备一张你想要进行扩展的图片。在本例中,我们将使用下面这张图片作为示例:

3. 扩图工作流

请下载下面的图片,并将其 拖入 ComfyUI 界面或使用菜单 工作流(Workflow) --> 打开工作流(Open,快捷键 Ctrl + O) 来加载这个扩图工作流

3.1 扩图工作流使用讲解

扩图工作流的关键步骤如下:

  1. 请在 加载模型(Load Checkpoint) 节点中加载你本地安装的模型文件
  2. 请在 加载图片(Load Image) 节点中点击 Upload 按钮上传
  3. 点击 Queue 按钮,或者使用快捷键 Ctrl + Enter(回车) 来执行图片生成

在这个工作流中主要是通过 Pad Image for outpainting 节点来控制图片的扩展方向和范围,其实这也是一个 局部重绘(Inpaint) 工作流,只不过我们用来构建遮罩(Mask)的节点不同。

3.2 Pad Image for outpainting 节点

这个节点接受一个输入图片,并输出一张扩展过的图像和对应的遮罩(Mask),其中遮罩由于对应的节点参数构建。

3.3 输入参数

参数名称 作用
image 输入图片
left 左侧填充量
top 顶部填充量
right 右侧填充量
bottom 底部填充量
feathering 控制原始图像与添加的填充内容之间的过渡平滑度,越大越平滑

3.4 输出参数

参数名称 作用
image 输出image代表已填充的图像
mask 输出mask指示原始图像和添加的填充区域

3.5 节点输出内容

经过 Pad Image for outpainting 节点处理后,输出的图片和蒙版预览如下:

你可以看到对应的输出结果

  • Image 输出的是扩展后的图像
  • Mask 输出的是标记了扩展区域的蒙版

3.6 效果对比

origin result
相关推荐
阿杜杜不是阿木木2 小时前
开始 ComfyUI 的 AI 绘图之旅-Stable Diffusion图生图(二)
人工智能·ai·ai作画·aigc·图生图
九章云极AladdinEdu2 小时前
存算一体芯片生态评估:从三星PIM到知存科技WTM2101
人工智能·pytorch·科技·架构·开源·gpu算力
张驰课堂2 小时前
老树发新芽:六西格玛培训为石油机械制造注入持久活力
大数据·人工智能·制造
和光同尘@2 小时前
66. 加一 (编程基础0到1)(Leetcode)
数据结构·人工智能·算法·leetcode·职场和发展
飞哥数智坊3 小时前
放弃 Cursor 后,我又试了 CodeBuddy,感觉国产又行了
人工智能·codebuddy
新智元3 小时前
世界首富换人!81 岁硅谷狂人 4000 亿身价碾压马斯克,33 岁华裔才女逆袭
人工智能·openai
lingling0093 小时前
分子生物学ELN系统:如何通过衍因科技实现实验室效率革命
人工智能
机器之心3 小时前
交互扩展时代来临:创智复旦字节重磅发布AgentGym-RL,昇腾加持,开创智能体训练新范式
人工智能·openai
max5006003 小时前
实时多模态电力交易决策系统:设计与实现
图像处理·人工智能·深度学习·算法·音视频