目录

ComfyUI 局部重绘(Inpaint)与扩图(Outpaint)教程

局部重绘(Inpaint) 只重新生成图片中被遮罩(mask)标记的区域,其他部分保持不变。常用于:

  • 移除路人、杂物
  • 修正手部、脸部的瑕疵
  • 更换衣服、背景、物品

扩图(Outpaint) 则是向外扩展图片,补出原有画面之外的内容。

绘制遮罩

  1. 添加 Load Image 并加载图片。
  2. 在节点上右键,选择 Open in MaskEditor(遮罩编辑器)。
  3. 用画笔涂出要重绘的区域,可以调整画笔大小。
  4. 点击 Save 保存。

Load Image 节点会输出 IMAGE 和 MASK 两个结果。

方法一:VAE Encode (for Inpainting)

[Load Image] ─IMAGE─▶ [VAE Encode (for Inpainting)] ─LATENT─▶ [KSampler denoise=1.0]
             ─MASK──▶          ▲ vae
ComfyUI 局部重绘工作流程
局部重绘:将 Load Image 的 MASK 输出连接到 VAE Encode (for Inpainting),预览图中的深色方块就是遮罩区域
  • grow_mask_by:遮罩向外扩展的像素数(例如 6~16),让接缝更自然。
  • 遮罩区域会被完全清空后重新绘制,因此 KSampler 的 denoise 要设为 1.0。
  • 最适合搭配 inpaint 专用模型(模型名称通常带有 inpainting)。

提示词描述遮罩区域中要出现的内容,例如遮住路人后,提示词写 empty street, wet pavement。

方法二:Set Latent Noise Mask

[Load Image] ─▶ [VAE Encode] ─LATENT─▶ [Set Latent Noise Mask] ─▶ [KSampler denoise=0.5]
             ─MASK─────────────────────────────▲
  • 保留遮罩区域原有内容作为参考,只在其上进行“修改”。
  • 可以使用普通模型。
  • denoise 设为 0.4~0.7:数值越低,效果越接近原图。
VAE Encode (for Inpainting)Set Latent Noise Mask
遮罩区域原有内容清空保留作为参考
denoise1.0小于 1.0
适用场景移除物品、彻底替换内容修正瑕疵、调整细节、改变颜色
模型使用 inpaint 专用模型效果最好普通模型即可

改善接缝

重绘区域与周围不协调时:

  • 扩大遮罩(grow_mask_by),或使用 Grow Mask 节点扩展遮罩。
  • 使用模糊遮罩(例如在遮罩编辑器中使用柔边画笔),让边缘过渡更自然。
  • 使用 Image Composite Masked 将结果贴回原图,确保遮罩外的像素完全不变(VAE 编码和解码会让整张图片产生轻微变化)。

小区域的细节:裁切后重绘

要修正大图中的小脸、小手时,直接重绘通常效果不好,因为该区域的像素太少。进阶做法是:将遮罩周围的区域裁切出来并放大,重绘后再缩小并贴回原图。社区自定义节点(例如 Inpaint Crop and Stitch)可以自动完成这些步骤,安装方法见自定义节点与 Manager。

扩图(Outpaint)

[Load Image] ─▶ [Pad Image for Outpainting] ─IMAGE─▶ [VAE Encode (for Inpainting)] ─▶ [KSampler]
                       (left/top/right/bottom、feathering)  ─MASK──▲
  1. Pad Image for Outpainting 在图片周围添加空白区域,并自动生成遮罩。设置要向哪个方向扩展多少像素,以及 feathering(边缘羽化)。
  2. 接入 VAE Encode (for Inpainting),将 KSampler 的 denoise 设为 1.0。
  3. 提示词描述整张图(包括扩展出来的部分)。

每次不要扩展太多(例如 256~512 像素),需要更大范围时可以分多次扩展。

使用新一代模型的编辑功能

Flux Kontext、Qwen-Image-Edit 等“图像编辑模型”可以直接通过文字指令修改图片(例如“把天空换成夕阳”),不一定需要手动画遮罩。官方模板中提供了这些模型的工作流程,见Flux 等新一代模型。

更新于 2026年10月12日