ComfyUI 基础扩图工作流以及教程
扩图(Outpainting)是指在原始图片的边缘区域继续生成内容,从而扩展图片的尺寸。这种技术可以让我们:
- 扩展图片的视野范围
- 补充画面缺失的部分
- 调整图片的宽高比例
扩图的原理是基于 Stable Diffusion 的 inpainting 技术,通过在图片的边缘区域添加空白区域,然后使用 inpainting 模型对空白区域进行填充,从而实现图片的扩展。
ComfyUI 扩图教程相关文件下载
ComfyUI工作流文件
下载后将工作流文件拖入 ComfyUI 即可使用
Stable Diffusion 模型文件
本工作流需要使用两个模型,你使用其它模型也可以:
模型名称 | 用途 | 仓库地址 | 下载地址 |
---|---|---|---|
v1-5-pruned-emaonly.safetensors | 生成初始图像 | 仓库地址 | 下载地址 |
sd-v1-5-inpainting.ckpt | 扩图 | 仓库地址 | 下载地址 |
下载后请将这两个模型文件放置在以下目录:
Path-to-your-ComfyUI/models/checkpoints
如果你想要了解更多:如何安装 Checkpoints 模型 如果你要查找使用其它模型:Stable Diffusion 模型资源
ComfyUI 基础扩图工作流使用方式
由于模型安装位置可能不同,请找到工作流中的 Load Checkpoint
,然后在模型下拉菜单中选择你下载的模型文件。
- 第一个节点选择
v1-5-pruned-emaonly.safetensors
- 第二个节点选择
sd-v1-5-inpainting.ckpt
因为第二个节点是专门用于扩图的模型,所以使用用于inpainting 的模型效果会更好,你可以自己测试不同的设置。
ComfyUI 基础扩图工作流简单讲解
这个工作流分为三个主要部分:
1. Text2Img 部分
首先生成一张初始图片:
- 使用
EmptyLatentImage
设置 512x512 的画布 - 通过
CLIPTextEncode
设置正面提示词和负面提示词 - 使用
KSampler
生成初始图像
2. 创建扩图用的 Latent Image
- 使用
ImagePadForOutpaint
节点在原图周围添加空白区域 - 节点的参数设置决定了要在哪个方向扩展图片
- 同时会生成对应的 mask 用于后续的扩图
3. 扩图生成
- 使用专门的 inpainting 模型进行扩图
- 保持和原图相同的提示词,确保风格统一
- 通过
KSampler
对扩展区域进行生成
使用说明
-
调整扩展区域:
- 在
ImagePadForOutpaint
节点中设置四个方向的扩展像素值 - 数值代表要在该方向扩展的像素数量
- 在
-
提示词设置:
- 正面提示词描述你想要的场景和风格
- 负面提示词帮助避免不想要的元素出现
-
模型选择:
- 第一阶段使用普通的 SD 模型
- 扩图阶段推荐使用 inpainting 专用模型
ComfyUI 基础扩图工作流注意事项
-
扩图时尽量保持提示词的连贯性,这样可以让扩展区域和原图更好地融合
-
如果扩展效果不理想,可以:
- 调整采样步数和 CFG Scale
- 尝试不同的采样器
- 微调提示词
-
扩图模型推荐使用:
- sd-v1-5-inpainting.ckpt
- 其他专门的 inpainting 模型
ComfyUI 基础扩图工作流结构
工作流主要包含以下节点:
- CheckpointLoaderSimple: 加载模型
- CLIPTextEncode: 处理提示词
- EmptyLatentImage: 创建画布
- KSampler: 图像生成
- ImagePadForOutpaint: 创建扩图区域
- VAEEncode/VAEDecode: 编码解码图像