ComfyUI Inpainting实战:从零到精通的局部重绘指南
如果你刚开始接触ComfyUI,面对那些密密麻麻的节点连线感到无从下手,特别是想实现“局部修改图片”这个看似简单的功能时,却发现教程要么太零散,要么直接丢给你一个复杂的工作流文件让你自己琢磨——这种感觉我太懂了。几年前我第一次用ComfyUI做inpainting时,光是搞清楚“遮罩怎么画”、“模型放哪里”就折腾了大半天,生成的图片要么边缘生硬得像贴图,要么内容完全跑偏。
其实,ComfyUI的inpainting(局部重绘)功能远比想象中强大,但前提是你得掌握几个关键技巧。今天我不讲那些复杂的节点理论,就从一个实际需求出发:你想把一张照片里多余的垃圾桶去掉,或者给人物换件衣服,甚至是在空白区域添加新元素。我会带你一步步搭建工作流,避开那些新手常踩的坑,让你在10分钟内就能做出自然无痕的修改。
1. 核心准备:模型选择与工作流基础搭建
很多人一上来就急着连节点,结果发现生成的图片效果怪异,其实问题往往出在第一步:用错了模型。普通的文生图模型(比如SD 1.5、SDXL)虽然也能做inpainting,但专门为inpainting优化的模型在边缘过渡和内容一致性上表现要好得多。
1.1 选择合适的Inpainting专用模型
目前主流的inpainting专用模型有几个选择,我根据实际使用体验做个简单对比:
| 模型名称 | 适用基础模型 | 特点 | 推荐场景 |
|---|---|---|---|
| 512-inpainting-ema.safetensors | Stable Diffusion 1.5 | 专门针对512×512分辨率优化,边缘过渡自然 | 常规物体移除、小范围修复 |
| sd-v1-5-inpainting.ckpt | Stable Diffusion 1.5 | 官方inpainting版本,兼容性好 | 通用inpainting任务 |
| Fooocus Inpaint模型 | SDXL | 通过小补丁转换普通SDXL为inpainting模型 | SDXL工作流,需要高质量大图修复 |
| LaMa/MAT系列 | 独立模型 | 专门用于物体移除,速度快 | 快速去除大块不需要的物体 |
这里有个关键细节:512-inpainting-ema.safetensors这个模型在很多教程里被频繁提及,但它并不是官方发布的,而是社区基于SD 1.5微调出来的。我最初在Hugging Face上怎么搜都找不到,后来才发现它主要在一些镜像站和模型分享社区流传。
提示:如果你在常规模型网站找不到这个文件,可以尝试在搜索引擎用“stable-diffusion-inpainting”或“inpainting model for SD 1.5”这类关键词,通常能找到相关的GitHub仓库或论坛分享链接。下载后记得验证文件哈希值,确保文件完整。
1.2 模型放置与加载的正确姿势
下载好模型文件后,新手最容易犯的错误就是放错位置。ComfyUI的模型目录结构有特定要求:
ComfyUI/
├── models/
│ ├── checkpoints/ # 放置主模型(.ckpt或.safetensors)
│ ├── vae/ # VAE模型
│ ├── lora/ # LoRA模型
│ ├── controlnet/ # ControlNet模型
│ └── inpaint/ # 专门放置inpainting预处理模型(如LaMa)
关键点:512-inpainting-ema.safetensors这类inpainting主模型应该放在checkpoints文件夹,而不是inpaint文件夹。后者主要存放LaMa、MAT这类预处理模型。
在ComfyUI界面中加载模型时,使用Load Checkpoint节点。点击节点上的下拉菜单,如果你正确放置了模型,应该能看到它出现在列表中。如果没出现,尝试点击旁边的“刷新”按钮或重启ComfyUI。
1.3 基础工作流节点连接逻辑
理解了模型选择后,我们来看最基础的inpainting工作流需要哪些节点。别被那些复杂的连线吓到,其实核心就几个:
- Load Image - 加载你要修改的原始图片
- Load Checkpoint - 加载inpainting专用模型
- CLIP Text Encode - 输入正面和负面提示词
- VAE Encode (for Inpainting) - 关键节点!专门处理带遮罩的编码
- KSampler - 采样器,控制生成过程
- VAE Decode - 将潜空间图像解码回像素图像
- Preview Image - 预览结果
这些节点的连接顺序有固定逻辑,我画个简化的数据流图帮你理解:
原始图片 → Load Image → VAE Encode (for Inpainting)
↓
遮罩信息
↓
模型+提示词 → KSampler → VAE Decode → 最终图片
实际在ComfyUI中,你需要用连线把这些节点的输出和输入端口连接起来。刚开始可能会连错,记住一个原则:数据从输出端口(右边)流向输入端口(左边)。
2. 遮罩制作:三种方法应对不同场景
遮罩(Mask)决定了你要修改图片的哪个区域,这是inpainting成败的关键。很多人以为遮罩就是简单涂个色块,其实这里面有不少讲究。
2.1 使用ComfyUI内置的Mask Editor
这是最直接的方法,适合对修改区域有明确控制需求的场景。操作步骤其实比很多人想的要简单:
- 在
Load Image节点上右键点击你加载的图片 - 选择“Open in MaskEditor”
- 在弹出的编辑器中,用画笔工具涂抹要修改的区域
- 调整画笔大小和硬度(边缘羽化程度)
- 点击“Save to node”保存遮罩
这里有个实用技巧:不要只涂你要修改的物体本身,适当向外扩展几个像素

&spm=1001.2101.3001.5002&articleId=153232901&d=1&t=3&u=466feab54997443dbaa4fdb4376412ea)
362

被折叠的 条评论
为什么被折叠?



