一、Inpaint 是什么?
局部重绘:只修改图中 蒙版(MASK)标记的区域,其余像素尽量保持。
|
|
整图 img2img |
Inpaint |
|---|---|---|
|
修改范围 |
全图 |
蒙版内 |
|
典型用途 |
换整体风格 |
换背景、改脸、去水印 |
|
需要 MASK |
否 |
是 |
蒙版规则(ComfyUI 常见约定,以具体节点说明为准):
-
白色:要重绘的区域;
-
黑色:保留不动的区域。
二、Inpaint 工作流结构(通用)
常见两种搭建方式:
方式 A:VAE Encode (for Inpaint) 专用链
部分工作流使用带 mask 输入的 Encode 节点,或 Set Latent Noise Mask 等节点,在 latent 上限制噪声仅作用于蒙版区。
方式 B:标准 inpaint 节点组合(易理解)
典型节点链:
Load Image ──→ IMAGE ──┬──→ VAE Encode ──→ latent ──→ KSampler
Load Image ──→ MASK ──┘ ↑
(inpaint 专用 encode 或 noise mask)
ComfyUI 内置及插件中常见节点名(搜索时使用):
-
Load Image— 可输出 IMAGE + MASK(若图片带 Alpha) -
Load Image (as Mask)/ 单独加载蒙版 -
VAE Encode (for Inpainting)— SDXL inpaint 等 -
Set Latent Noise Mask— 将 mask 应用到 latent -
InpaintModelConditioning— SDXL/Flux 等新 inpaint conditioning
新手建议:先从社区 SDXL Inpaint 模板 或 Manager 模板加载,对照学习连线,再改参数。
三、准备蒙版 MASK
3.1 在 ComfyUI 内绘制(若插件支持)
部分 Custom Nodes 提供 Mask Editor 直接在界面涂抹。
3.2 在 Photoshop / 其他工具绘制
-
原图导入 PS;
-
新建图层,白色 涂抹要改的区域;
-
其余为 黑色;
-
保存为 PNG(或原图带 Alpha 通道);
-
放入
input/,用Load Image加载。
3.3 从 Load Image 分离
-
带 Alpha 通道 的 PNG:
Load Image可能同时输出 IMAGE 与 MASK; -
仅要蒙版时,用 Convert Image to Mask 等节点。
3.4 蒙版质量要点
-
边缘可 轻微羽化,减少硬边接缝;
-
要改的区域 略大于 实际物体,便于融合;
-
换背景时,人物边缘蒙版要准,否则易有 halo。
四、搭建 SD1.5 / SDXL 基础 Inpaint(步骤概要)
具体节点名因模型与插件而异,以下为逻辑步骤。
步骤 1:Load Checkpoint
选择支持 inpaint 的模型,或 通用 Checkpoint + inpaint 工作流(SDXL 常用 base + inpaint conditioning)。
步骤 2:Load Image + Mask
-
原图 → IMAGE;
-
蒙版 → MASK(确保尺寸与原图一致,不一致时用 Scale 对齐)。
步骤 3:Encode 与 Mask 应用
-
IMAGE + VAE → latent;
-
通过 Set Latent Noise Mask 或 InpaintModelConditioning 将 MASK 并入采样条件。
步骤 4:Prompt
-
正向:描述 蒙版区域内 要出现的内容,如
blue sky, clouds, sunny(换背景); -
负向:通用质量负向。
步骤 5:KSampler
|
参数 |
Inpaint 建议 |
|---|---|
|
denoise |
0.65–0.85(蒙版内需足够重绘) |
|
cfg |
6–8 |
|
steps |
25–35 |
蒙版内 denoise 往往 高于 整图 img2img,否则改不动。
步骤 6:VAE Decode → Save
与 img2img 相同。
五、典型应用场景
5.1 换背景
-
蒙版:人物外全白,人物内黑(或人物精确抠图反相,视工作流);
-
Prompt:
outdoor beach, sunset, bokeh; -
denoise:0.75–0.85。
5.2 改服装 / 局部物体
-
蒙版:仅衣服或物体区域;
-
Prompt:描述新服装或新物体;
-
denoise:0.7 左右。
5.3 去水印 / 去路人
-
蒙版:覆盖水印或路人;
-
Prompt:描述周围应补全的内容,如
grass, pavement, continuous texture; -
可略降 denoise 若背景简单。
5.4 修脸
-
蒙版:仅面部;
-
Prompt:质量词 + 面部描述;
-
denoise:0.45–0.65,避免换脸过度;
-
人物一致需求高时结合 InstantID(第 7 章)。
六、边缘融合与 seam 问题
|
现象 |
可能原因 |
处理 |
|---|---|---|
|
蒙版边缘一圈亮/暗 |
羽化不足或 denoise 过高 |
蒙版羽化;略降 denoise |
|
内外色差 |
Prompt 与外部不协调 |
加强外部描述或二次整体 img2img 低 denoise |
|
蒙版内模糊 |
steps 不足或模型弱 |
提高 steps;换 inpaint 专用模型 |
|
蒙版外被影响 |
mask 未正确应用 |
检查 Set Latent Noise Mask 连线 |
技巧:inpaint 完成后,整图再 img2img denoise 0.15–0.25 统一色调。
七、Inpaint 与 img2img 组合流程
1. 整图 img2img(换大风格,denoise 0.55)
2. PS 或 Mask Editor 做蒙版
3. Inpaint(改局部,denoise 0.75)
4. (可选)轻量 img2img 统一(denoise 0.2)
八、常见问题
|
问题 |
处理 |
|---|---|
|
找不到 inpaint 节点 |
Manager 搜 inpaint;加载 SDXL inpaint 模板 |
|
MASK 全白全图重绘 |
检查 mask 是否反相 |
|
尺寸 mismatch |
Image 与 Mask 缩放至相同宽高 |
|
蒙版内无变化 |
提高 denoise;确认 mask 已接入 KSampler 链 |