Skip to content

局部重绘与扩图:Inpainting & Outpainting 实战

AI 不仅能画图,还能修图。局部重绘 (Inpainting) 允许你只重新生成图片的一部分,而保持其他部分不变。

1. 准备遮罩 (Mask)

在 ComfyUI 中,你需要先告诉 AI 哪部分需要重绘。

  1. 右键点击 Load Image 节点。
  2. 选择 Open in MaskEditor
  3. 在弹出的窗口中,用画笔涂抹你想要修改的区域(比如脸部)。
  4. 点击 Save to node。 此时,Load Image 节点的 MASK 输出端口就有了数据。

2. 局部重绘工作流

核心节点:VAE Encode (for Inpainting)

普通的 VAE Encode 只有 pixels 输入。而重绘专用版多了两个输入:

  • mask: 连接 Load Image 的 MASK。
  • grow_mask_by: 遮罩羽化/扩展像素。建议设为 6,避免重绘边缘生硬。

连线变化

  1. Load Image (带遮罩) -> VAE Encode (for Inpainting).
  2. VAE Encode 的 LATENT -> KSampler.
  3. KSampler Denoise:
    • 设为 0.6 - 0.8
    • 必须给 AI 足够的自由度去重绘,太低了改不动。

3. 扩图 (Outpainting)

扩图本质上也是 Inpainting,只不过是把画布变大,让 AI 填补空白。

步骤

  1. 使用 Pad Image for Outpainting 节点。
    • 输入: 原始图片。
    • 参数: left, top, right, bottom (设置向各方向扩展的像素数,如 512)。
    • feathering: 羽化边缘。
  2. 这个节点会输出一张带遮罩的图片(中间是原图,四周是黑色且标记为 Mask)。
  3. 将其连入 VAE Encode (for Inpainting)
  4. KSampler Denoise 设为 1.0 (因为填充区域是全黑的,需要完全重画)。

4. 模型选择

虽然普通模型也能重绘,但强烈建议使用 Inpainting 专用模型 (如 sd-v1-5-inpainting.ckpt)。它们对遮罩边缘的理解力强得多,不会出现明显的拼接痕迹。