Z-Image Turbo Inpainting 三种方案完全指南:原生节点/KJNodes/SAM3
「我只想改掉照片里的路人,不想重新生成整张图!」这是 Z-Image Turbo 用户最常遇到的场景。官方虽然承诺了 Z-Image-Edit 变体与专门的 Inpainting ControlNet,但截止目前尚未发布。好消息是:仅凭 Z-Image-Turbo 本身,配合 ComfyUI 就能获得相当不错的局部重绘效果。社区知名教程(NerdyRodent / Prompting Pixels)已经总结出三条成熟路线——纯原生节点、KJNodes 增强、SAM3 智能分割。本文将逐一拆解三种方案的节点连线、适用场景与选型建议。
一、Inpainting 基础:遮罩、潜空间与 Turbo 的特殊性
局部重绘的原理
Inpainting(局部重绘)的核心是:告诉模型「只改这块区域,其他保持不动」。在 ComfyUI 中,这个「区域」就是遮罩(Mask),而「只改这块」通过三个机制实现:
- VAE Encode (for Inpainting):将原图编码进潜空间时,在遮罩区域填入噪声,其余区域保留原始潜空间信息
- InpaintModelConditioning:把遮罩信息注入采样器,让模型知道哪些区域要重新生成
- Differential Diffusion(可选):用渐进式的遮罩权重替代硬边界,让边缘过渡更自然
Z-Image Turbo 的特殊性
- 8 步蒸馏模型:采样器用
FlowMatchEulerDiscreteScheduler,8 步即可,无需 CFG(CFG 1.0) - 三件套模型:Z-Image-Turbo 检查点(fp16 或 GGUF)+ Qwen3-4B 文本编码器 + flux_ae VAE
- 原生分辨率:1024×1024 为最佳,重绘区域建议保持原分辨率
二、方案一:纯原生节点(零依赖)
这是最基础、依赖最少的路子——只用 ComfyUI 内置节点,不需要安装任何自定义节点包。
节点连线
Load Image → 右键 → Open in Mask Editor(手动画遮罩)→ Save
├── → VAE Encode (for Inpainting) → InpaintModelConditioning → KSampler → VAEDecode → Preview
└── → (mask 输出) ────────────────────────↗
操作步骤
- 加载图片:
Load Image节点加载目标图 - 绘制遮罩:右键 Load Image →
Open in Mask Editor,用画笔涂抹要重绘的区域(人物、物体、文字等),点击 Save - 编码:
VAE Encode (for Inpainting)接收原图 + 遮罩,输出带噪声的潜空间 - 条件注入:
InpaintModelConditioning接收潜空间 + 正向/负向提示词 - 采样:
KSampler,8 步,CFG 1.0,采样器 FlowMatchEulerDiscrete - 解码输出:
VAEDecode→PreviewImage
优点与局限
| 优点 | 局限 |
|---|---|
| 零依赖,任何 ComfyUI 开箱即用 | 遮罩边缘可能生硬,有「补丁感」 |
| 步骤最少,易学易调试 | 手绘遮罩费时,复杂轮廓难画准 |
| 适合小区域修改(瑕疵、小物体) | 大面积重绘时与周围光影融合一般 |
三、方案二:KJNodes 增强(GrowMaskWithBlur)
方案一的遮罩边缘生硬问题,用 KJNodes 自定义节点包的 GrowMaskWithBlur 就能显著改善。它的作用是:把遮罩向外扩展几个像素并施加模糊,让重绘区域与周围环境平滑过渡。
节点连线
Load Image → 右键 → Open in Mask Editor → Save
├── → GrowMaskWithBlur (KJNodes) → VAE Encode (for Inpainting) → InpaintModelConditioning → KSampler → VAEDecode → Preview
└── → (mask) ───────────────────────────↗
GrowMaskWithBlur 参数
| 参数 | 推荐值 | 说明 |
|---|---|---|
| grow | 8 - 16 px | 遮罩向外扩展量,越大覆盖越广 |
| blur | 8 - 16 px | 边缘模糊半径,越大过渡越柔和 |
| iterations | 1 - 2 | 迭代次数,一般 1 次足够 |
进阶:Differential Diffusion
想进一步消除「补丁感」,可以接入 Differential Diffusion 节点(KJNodes 或 Fooocus Inpaint 封装提供),它用遮罩的灰度权重替代二值遮罩,让模型在边缘区域「半信半疑」地重绘,融合效果更自然。
适用场景
- 中等面积修改:换衣服、去水印、改背景元素
- 对边缘质量有要求的出图
- 与
Inpaint Crop & Stitch(裁剪重绘区域、完成后再拼回)搭配,可大幅降低大图重绘的显存占用
四、方案三:SAM3 智能分割(文字提示 / 点选)
手绘遮罩太麻烦?SAM3(Segment Anything Model 3)——Meta 的最新一代分割模型——支持用一句话描述就把物体精准分割出来。ComfyUI 生态有两个选择:ComfyUI-SAM3(wouterverweirder 维护的自定义节点)或 ComfyUI 原生 SAM 3.1 节点(新版已内置)。
安装
- ComfyUI Manager 搜索安装
ComfyUI-SAM3 - 下载
sam3.pt权重,放入ComfyUI/models/sam3/ - 重启 ComfyUI
方式 A:文字提示分割(SAM3Grounding)
Load Image → SAM3 Segmentation (prompt: "person", "car"...) → mask
→ GrowMaskWithBlur → VAE Encode (for Inpainting) → InpaintModelConditioning → KSampler → VAEDecode
节点参数:
| 参数 | 说明 |
|---|---|
| prompt | 要分割物体的文字描述,≤32 token;多主体用逗号分隔 + :N 指定数量,如 eye:2, window panels:4 |
| threshold | 置信度阈值,默认 0.5,误检多就调高 |
| min_width / min_height | 最小物体尺寸(像素),过滤小噪点 |
方式 B:点选分割(SAM3PointCollector)
如果文字描述不够精确(比如「第三个人」),用 SAM3 Point Collector 节点直接在图上点选目标区域,模型会基于点提示生成精准遮罩。适合:多个相似物体中选特定一个、轮廓复杂的物体。
适用场景
- 精准抠出人物/物体做局部重绘(换背景、换衣服、去路人)
- 视频逐帧分割(SAM3 支持视频跟踪,可做视频 inpainting)
- 提示词表达不清时的点选补救
五、三方案对比与选型建议
| 维度 | 方案一:原生节点 | 方案二:KJNodes | 方案三:SAM3 |
|---|---|---|---|
| 依赖 | 无 | KJNodes 包 | ComfyUI-SAM3 + sam3.pt |
| 遮罩方式 | 手绘 | 手绘 + 自动扩展模糊 | 文字提示 / 点选 |
| 边缘质量 | 一般 | 好 | 好 |
| 自动化程度 | 低 | 中 | 高 |
| 上手难度 | ⭐ 最简单 | ⭐⭐ | ⭐⭐⭐ |
| 最佳场景 | 快速小修补 | 中等面积、追求融合 | 精准物体分割、批量处理 |
选型口诀:
- 只想快速改个瑕疵 → 方案一
- 改衣服/去水印/换背景元素 → 方案二
- 精准抠人抠物、复杂轮廓 → 方案三
- 全都要 → 方案三出遮罩 + 方案二的 GrowMaskWithBlur + Differential Diffusion,效果最大化
六、进阶玩法
1. Inpaint Crop & Stitch(大图省显存)
ComfyUI-Inpaint-CropAndStitchCustom 会把重绘区域裁剪出来单独采样,完成后无缝拼回原图。处理 2K/4K 大图时显存占用从「整图采样」降到「局部采样」,RTX 4060 也能轻松跑。
2. ControlNet Union 2.1(官方级重绘)
2025 年 12 月,社区发布了 Z-Image-Turbo Fun Controlnet Union 2.1 model patch(HuggingFace),配合 ComfyUI 新节点可做更高级的 inpainting——遮罩区域遵循额外控制条件(线稿、深度、姿态),适合「重绘时保留结构」的场景。NerdyRodent 已发布配套免费工作流。
3. Outpainting(扩图)
ConditioningZeroOut 节点清空边缘区域的 conditioning,配合适当遮罩即可实现向外扩图——把 1024×1024 变成 1536×1024 的全景构图。
4. 通用工作流模板(25 节点完整方案)
社区高分工作流(Prompting Pixels,78 次下载)的三模型清单:
z-image-turbo-fp8-e4m3fn.safetensors(UNETLoader)qwen_3_4b.safetensors(CLIPLoader)ae.safetensors(VAELoader,flux_ae)
核心节点:LoadImage → SAM3(Grounding/PointCollector/Segmentation)→ ImageToMask → InpaintCropImproved → GrowMaskWithBlur → VAE Encode (for Inpainting) → InpaintModelConditioning → KSampler → VAEDecode → InpaintStitchImproved → Image Comparer。
结语
Z-Image-Turbo 虽然没有官方 Inpainting 模型,但三条社区路线已经非常成熟:原生节点适合快速修补,KJNodes 解决边缘融合,SAM3 让遮罩绘制进入「动嘴不动手」时代。等 Z-Image-Omni-Base 与 Z-Image-Edit 正式发布后,这些方案可以无缝迁移到官方编辑能力上——但在此之前,掌握这三套工作流,你的 Z-Image Turbo 就已经能胜任 90% 的局部重绘需求了。