知识点详解——Image 相关示例:图片修复、超分与风格迁移

本文为系列第 15 篇,详解 ComfyUI 中与 Image 相关的三大实用方向:图片修复(Inpainting)、超分辨率放大(Upscaling)与风格迁移(Style Transfer / Img2Img)。


目录


一、引言:为什么 Image 工作流如此重要?

1.1 从"生成"到"精修"的进阶之路

经过前面系列文章的学习,你已经掌握了 ComfyUI 的基础操作、文生图和图生图的核心流程。但真正让 AI 绘图从"玩具"变成"生产力工具"的,是对图像的精细控制能力

在实际创作中,很少有"一次生成就完美"的情况:

  • 画面整体满意,但人物手指畸变了 → 需要局部修复(Inpainting)
  • 生成的图分辨率太低,细节模糊 → 需要超分辨率放大(Upscaling)
  • 想要把写实照片变成动漫风格 → 需要风格迁移(Style Transfer)

这三种 Image 相关的技术,是 ComfyUI 进阶路上必须掌握的三大核心能力。它们既相互独立,又可以组合使用,构成完整的高质量图像生产管线。

一句话总结:文生图帮你"从无到有",Image 工作流帮你"从有到优"。

1.2 本篇文章你将掌握的内容

技术方向 核心能力 应用场景
✅ Inpainting(局部重绘) 精准修改图像特定区域 瑕疵修复、物体去除、局部调整
✅ Upscaling(超分放大) 提升图像分辨率与细节 老照片修复、AI 图高清化、打印输出
✅ Style Transfer(风格迁移) 转换图像的艺术风格 照片转插画、风格仿作、创意设计
✅ 融合工作流 三种技术组合使用 完整的高质量图像生产管线

二、图片修复(Inpainting)深入详解

2.1 Inpainting 的核心原理与应用场景

Inpainting(局部重绘) 是 AI 图像处理中最实用的功能之一。它的核心逻辑是:只修改图像中你指定的区域,其他部分保持不变。

打个比方:你请画家画了一幅画,大部分都很满意,但有个细节需要调整——你不需要让画家重画整幅画,只需要告诉他"把这里改一下"。你用手指指出的那个"区域"就是 Mask(遮罩),画家根据你的要求只修改这块区域——这就是 Inpainting。

典型应用场景:

场景 说明 示例
瑕疵修复 去除照片中的多余物体、水印、污点 照片背景中的路人、广告牌
肢体修正 修复 AI 生成错误的手指、手臂等 SD 常见的多指/断指问题
局部换装 更改人物服装颜色或款式 电商模特换装
面部调整 微调表情、眼睛颜色、嘴型 人像精修
物体替换 将画面中的某个物体替换为其他内容 把桌上的杯子换成花盆

2.2 核心节点解析:VAE Encode for Inpainting

Inpainting 工作流与常规文生图/图生图最大的区别在于 VAE 编码阶段。ComfyUI 提供了专门的 VAE Encode (for Inpainting) 节点,它的作用是将输入图像和遮罩一起编码到潜空间,让模型知道"哪里需要重绘,哪里要保持原样"。

VAE Encode for Inpainting 参数详解:

参数名 类型 作用说明
pixels IMAGE 需要编码到潜空间的输入图像(RGB)
vae VAE 用于将像素空间编码到潜空间的 VAE 模型
mask MASK 指定需要修改区域的遮罩(白色=重绘区域,黑色=保留区域)
grow_mask_by INT 遮罩向外扩展的像素值,默认 6,值越大融合越自然
关键技巧grow_mask_by 参数非常关键。设得太小(如 0-3),重绘区域与原图之间会有生硬的边缘痕迹;设得太大(如 20+),会影响过多区域。建议从 6 开始调整,观察效果。

与 Inpainting 相关的其他核心节点:

节点名称 功能
Load Image 加载待修复的图像
VAE Decode 将潜空间图像解码回像素空间
KSampler 控制 denoise 强度(Inpainting 建议 0.7-1.0)
Mask Editor(内置) 在 ComfyUI 中直接绘制遮罩
Preview Image 预览生成结果

2.3 遮罩编辑器(Mask Editor)使用指南

遮罩是 Inpainting 的核心输入。ComfyUI 提供了便捷的 遮罩编辑器(Mask Editor),让你无需借助外部工具即可精准绘制遮罩。

打开遮罩编辑器的步骤:

  1. 在 Load Image 节点上右键点击
  2. 在右键菜单中选择 Open in MaskEditor(在遮罩编辑器中打开)
  3. 在弹出的编辑窗口中使用画笔工具绘制遮罩

遮罩编辑器界面功能:

功能 操作 说明
🖌️ 画笔 左键拖拽绘制 白色区域 = 需要重绘的区域
🧹 橡皮擦 右键拖拽擦除 擦除误绘的遮罩区域
📏 画笔大小 右侧滑块调节 精细区域用小画笔(5-20px),大区域用大画笔(50-200px)
🔍 缩放 滚轮缩放 便于精细绘制边缘区域
💾 保存 点击 Save 按钮 保存遮罩并返回到工作流
高效遮罩技巧
  • ✅ 利用 Copy Clipspace 和 Paste Clipspace 快速在节点间传递图像
  • ✅ 遮罩边缘可以稍微超出目标区域,用 grow_mask_by 控制融合
  • ✅ 复杂遮罩可以在外部工具(如 Photoshop)中创建带 alpha 通道的 PNG 直接导入

2.4 Inpainting 模型 vs 常规模型的选择

Inpainting 任务中,模型的选择直接影响最终效果。主要有两种方案:

方案 优点 缺点 推荐场景
专用 Inpainting 模型 融合效果自然,对遮罩区域控制精准 需要额外下载模型,占用更多空间 修复大区域、重要细节
常规模型 + 高 denoise 无需额外模型,使用方便 边缘融合可能不自然 小范围修复、快速尝试

推荐 Inpainting 模型:

  • SD 1.5 Inpainting:官方微调模型,适合 SD1.5 生态
  • Dreamshaper 8 Inpainting:社区热门,效果优秀
  • Realistic Vision Inpainting:适合写实风格修复

2.5 实操案例一:人像照片瑕疵修复

目标:修复一张 AI 生成的人像照片中的手指畸形问题。

准备工作:

  • 一张包含手指缺陷的 AI 人像图
  • 已安装 SD1.5 Inpainting 或 Dreamshaper 8 Inpainting 模型

步骤详解:

步骤 操作 节点/位置 参数设置
1️⃣ 加载 Inpainting 专用模型 Load Checkpoint 选择 Dreamshaper 8 Inpainting
2️⃣ 导入待修复图片 Load Image 上传人像照片
3️⃣ 打开遮罩编辑器 右键 Load Image → Open in MaskEditor
4️⃣ 绘制手指区域的遮罩 Mask Editor 画笔 画笔大小 20-30px,精确覆盖畸形区域
5️⃣ 保存遮罩 Save 按钮
6️⃣ 连接 VAE Encode for Inpainting 将 image 和 mask 接入该节点 grow_mask_by = 8
7️⃣ 设置正向提示词 CLIP Text Encode (Positive) beautiful hands, delicate fingers, natural pose, detailed
8️⃣ 设置反向提示词 CLIP Text Encode (Negative) deformed fingers, extra fingers, bad anatomy, blurry
9️⃣ 配置采样器 KSampler denoise = 0.85, steps = 30, CFG = 7
🔟 执行生成 Queue Prompt 观察结果,不满意则调整 denoise 或重新绘制遮罩

参数调优建议:

参数 建议范围 效果说明
denoise 0.7 - 0.9 越高越偏离原图,修复大缺陷用高值
grow_mask_by 4 - 12 越大融合越自然,但会影响更多原图区域
steps 25 - 40 修复建议步数稍多,效果更稳定
CFG Scale 7 - 10 提示词严格度,修复任务可适当提高
💡 小提示:修复手指等精细部位时,如果一次效果不理想,可以尝试:1) 缩小遮罩范围 2) 降低 denoise 到 0.7 3) 在正向提示词中更具体地描述期望的手部形态。

三、超分辨率放大(Upscaling)全面指南

3.1 像素放大 vs 潜空间放大:本质区别

在 ComfyUI 中,图像放大有两种完全不同的路线:像素空间放大潜空间放大。理解它们的区别是选择正确放大方案的前提。

对比维度 像素空间放大(Pixel Upscale) 潜空间放大(Latent Upscale)
操作位置 在像素(图像)层面操作 在潜空间(Latent)层面操作
原理 使用传统插值或 AI 模型直接放大图像 将图像编码到潜空间 → 放大 → 再解码
节点示例 Upscale ImageSUPIRUltimate SD Upscale Upscale LatentLatentUpscale
速度 较快(尤其是传统插值) 较慢(需要编解码过程)
细节保留 取决于 upscale 模型质量 可与 KSampler 结合补充细节
适用场景 需要快速放大、简单提升分辨率 需要高质量放大并添加细节

两者的本质区别图:

像素放大路线:
输入图像 → Upscale Image 节点 → 放大后的图像
(简单直接,不经过潜空间)

潜空间放大路线:
输入图像 → VAE Encode → Upscale Latent → KSampler → VAE Decode → 放大图像
(编解码过程中,KSampler 可以"补充"放大后的细节)

3.2 常用 Upscale 节点与模型对比

ComfyUI 中有多种放大方案,以下是最常用的几种:

方案 核心节点 放大倍数 速度 质量 推荐场景
传统插值 Upscale Image(Nearest/Lanczos) 1-4x ⚡⚡⚡⚡ ⭐⭐ 快速预览、轻量需求
ESRGAN 类 ESRGAN Upscaler 2-4x ⚡⚡⚡ ⭐⭐⭐⭐ 通用高质量放大
SUPIR SUPIR Model Loader + SUPIR Sampler 1-4x ⚡⚡ ⭐⭐⭐⭐⭐ 极致画质、老照片修复
Ultimate SD Upscale UltimateSDUpscale + KSampler 任意 ⭐⭐⭐⭐ 细节增强型放大
Latent Upscale Upscale Latent + KSampler 1-2x ⚡⚡ ⭐⭐⭐ 与工作流集成度高

像素放大(Upscale Image)参数说明:

参数 选项 效果
nearest_exact 最近邻插值 最快,但边缘锯齿明显,不适合放大
bilinear 双线性插值 折中方案,边缘平滑但可能模糊
lanczos 拉格朗日插值 传统算法中质量最佳,细节保留好
area 面积加权 适合缩小图像
bislerp 双三次样条 高质量放大,速度适中

3.3 实操案例二:低分辨率老照片超分增强

目标:将一张 512×512 的低分辨率老照片放大至 2048×2048,同时修复模糊和噪点。

方案选择:使用 ESRGAN + 后期轻量锐化的组合方案,兼顾速度与质量。

准备工作:

  • 一张 512×512 或更低分辨率的老照片(JPEG/PNG)
  • 已安装 ESRGAN 模型(如 RealESRGAN_x4plus)放置在 ComfyUI/models/upscale_models/

步骤详解:

步骤 操作 节点 参数设置
1️⃣ 加载图像 Load Image 上传老照片
2️⃣ 第一次放大(传统插值) Upscale Image 方法:lanczos,宽高从 512 放大到 1024
3️⃣ AI 超分放大 ESRGAN Upscaler 选择 RealESRGAN_x4plus 模型,放大到 2048
4️⃣ 降噪处理(可选) Image Denoise 强度 0.2-0.3(根据噪点程度调整)
5️⃣ 对比度/色彩调整 Image Adjust 适当增加对比度 + 饱和度
6️⃣ 保存结果 Save Image 保存为 PNG 格式

如果你追求极致画质(SUPIR 方案):

SUPIR(Scaling Up Image Restoration)是目前 ComfyUI 中最强的图像修复与超分方案之一。工作流节点序列:

Load Image → SUPIR Model Loader → SUPIR First Stage (Denoiser) 
→ SUPIR Encode → SUPIR Conditioner → SUPIR Sampler 
→ SUPIR Decode → Color Match → Image Resize → Save Image
SUPIR 关键参数 说明 推荐值
denoise_strength 降噪强度,越大越平滑 0.3 - 0.6
sharpness 锐化程度 0.5 - 1.0
cfg_scale 提示词遵循度 4 - 7
color_match 色彩匹配方法 wavelet / mean
⚠️ 注意:SUPIR 方案对显存要求较高(建议 8GB+),显存不足时可以先使用 ESRGAN 方案。如果你使用 Comfy Cloud,可以直接使用 SUPIR 工作流模板。

四、风格迁移(Style Transfer / Img2Img)

4.1 图生图(Img2Img)的核心参数:Denoise

风格迁移的最简单实现方式是 图生图(Img2Img) 工作流。它的核心在于 KSampler 中的 denoise 参数。

Denoise 参数的作用:

denoise = 0     → 输出与输入完全一致(无变化)
denoise = 0.3   → 轻微变化,保留大部分原图结构
denoise = 0.5   → 中等变化,风格开始转变
denoise = 0.7   → 显著变化,风格主导
denoise = 0.85  → 强烈变化,保留构图但风格完全转变
denoise = 1.0   → 完全重绘,等同于文生图(丢失原图信息)

不同 denoise 值的效果对比:

denoise 原图保留度 风格强度 适用场景
0.2 - 0.4 很高 微调色调、轻微润色
0.4 - 0.6 中等 中等 线稿上色、老照片着色
0.6 - 0.8 较低 写实→插画、风格迁移
0.8 - 1.0 很低 极强 大幅修改、创意重绘

4.2 风格迁移的三种常见路线

除了基础的 Img2Img,ComfyUI 中还有更多风格迁移方案:

方案 原理 优点 缺点 推荐指数
方案A:Img2Img 基础迁移 调整 denoise + 风格提示词 最简单,无需额外节点 控制力有限 ⭐⭐⭐
方案B:Img2Img + ControlNet 用 ControlNet 约束构图 保留原图结构,风格更自由 需要 ControlNet 模型 ⭐⭐⭐⭐⭐
方案C:IP-Adapter 风格迁移 用参考图直接提取风格 风格迁移最精准 需要 IP-Adapter 节点 ⭐⭐⭐⭐

方案 B 核心流程(推荐):

Load Image → ControlNet Loader + ControlNetApply → VAE Encode 
→ KSampler (denoise=0.7-0.85) → VAE Decode → Save Image

ControlNet 的作用是"锁定"原图的构图和轮廓,让模型在改变风格时不偏离原图的结构。推荐使用 Canny 或 Lineart 类型的 ControlNet 模型。

4.3 实操案例三:照片转手绘插画风格

目标:将一张普通照片转换为手绘水彩插画风格。

准备工作:

  • 一张风景或人像照片
  • 已安装 SDXL 或 SD1.5 模型
  • 建议安装 ControlNet(Canny 模型)

步骤详解(Img2Img + ControlNet 方案):

步骤 操作 节点 参数/提示词
1️⃣ 加载模型 Load Checkpoint 选择擅长插画风格的模型(如 Dreamshaper)
2️⃣ 加载照片 Load Image 上传原始照片
3️⃣ 提取边缘 ControlNet Loader + Canny low_threshold=100, high_threshold=200
4️⃣ 应用 ControlNet ControlNetApply strength=0.7(控制强度)
5️⃣ 正向提示词 CLIP Text Encode (P) watercolor painting, illustration style, soft colors, artistic, beautiful
6️⃣ 反向提示词 CLIP Text Encode (N) photo, realistic, 3d, ugly, blurry, low quality
7️⃣ 采样器 KSampler denoise=0.75, steps=30, CFG=7, sampler=DPM++ 2M Karras
8️⃣ 解码与保存 VAE Decode → Save Image

效果调优建议:

问题 解决方案
风格变化不够明显 提高 denoise 到 0.8-0.85
原图结构变形 提高 ControlNet strength 到 0.8+,或降低 denoise
颜色过于饱和 在负向提示词中加入 oversaturated,或后续通过 Image Adjust 调整
细节丢失严重 使用 SDXL 模型(保留更多细节),或降低 denoise
进阶技巧:如果你想要更精准的风格迁移,可以尝试 IP-Adapter 方案。它的工作原理是使用一张"风格参考图"(如你喜欢的画师作品),让模型直接学习参考图的风格特征,效果往往比提示词描述更精准。

五、三种技术的融合工作流

在实际项目中,Inpainting、Upscaling 和 Style Transfer 很少单独使用。下面介绍两种常见的融合方案。

5.1 超分 + Inpainting 联合修复

这是老照片修复的经典管线:先用超分提升分辨率,再用 Inpainting 修复局部破损。

老照片 → Upscale Image(提升分辨率)
        → VAE Encode for Inpainting + Mask Editor(标记破损区域)
        → KSampler(denoise=0.6-0.8)
        → VAE Decode → 修复完成

参数建议:

阶段 节点 参数
第一阶段:超分 ESRGAN Upscaler 2-4x 放大
第二阶段:降噪 Image Denoise denoise=0.3
第三阶段:Inpainting VAE Encode for Inpainting grow_mask_by=8, denoise=0.7
第四阶段:色彩调整 Image Adjust 适当增加对比度和饱和度

5.2 Inpainting + 风格迁移的组合应用

先对图像进行局部修改,再整体迁移风格——这在创意设计中非常实用。

原图 → Inpainting(修改局部)→ 保存中间结果
     → ControlNetApply(保留构图)
     → KSampler(高 denoise 风格迁移)
     → 风格化结果

六、总结与常见问题排查

6.1 核心知识点回顾

通过本文的学习,你已经掌握了:

  1. ✅ Inpainting 局部重绘:VAE Encode for Inpainting 节点参数、遮罩编辑器使用、模型选择
  2. ✅ 像素放大 vs 潜空间放大:两种路线的原理、优缺点和适用场景
  3. ✅ ESRGAN 与 SUPIR:两种主流超分方案的使用方法和参数调优
  4. ✅ Denoise 参数:在不同场景下的效果变化和控制技巧
  5. ✅ 风格迁移三种方案:Img2Img 基础、ControlNet 辅助、IP-Adapter 精准迁移
  6. ✅ 三种技术融合:超分+Inpainting 联合修复、Inpainting+风格迁移组合应用
  7. ✅ 三个实操案例:人像瑕疵修复、老照片超分增强、照片转手绘插画

6.2 常见问题排查表

问题 可能原因 解决方案
Inpainting 区域边缘生硬 grow_mask_by 太小 增大 grow_mask_by,建议 8-12
Inpainting 后原图区域被改变 mask 精度不够 重新绘制遮罩,确保只覆盖目标区域
放大后图像模糊 使用的 upscale 模型不匹配 使用高质量 ESRGAN 或 SUPIR 模型
风格迁移后构图崩溃 denoise 过高或未使用 ControlNet 降低 denoise 到 0.6-0.7,或添加 ControlNet
显存不足(OOM) 分辨率过高或模型过大 降低批次大小、使用 Tiled VAE、缩小图像尺寸
SUPIR 速度极慢 显存不足或参数过高 使用 Tiled 模式、降低 denoise_strength

6.3 下一篇预告

下一篇我们将进入一个全新的领域——3D 与 AI 生成的结合方法。你将学习在 ComfyUI 中如何导入 3D 模型、使用 3D 相关节点(如 Meshy 和 Tripo 集成)、以及将 2D 图像转换为 3D 模型的完整工作流。这将是 ComfyUI 从平面创作走向立体世界的关键一步。

敬请期待:系列第 16 篇 —— 3D 相关示例:3D 与 AI 生成的结合方法 🚀


官方参考链接

  1. ComfyUI 局部重绘工作流 — 官方 Inpainting 教程
  2. ComfyUI 图生图工作流 — 官方 Img2Img 教程
  3. ComfyUI 文生图工作流 — 官方文生图教程
  4. ComfyUI 学习与教程 → 学习与教程 → 教程示例(Image 示例)
  5. ComfyUI 内置节点文档 → 内置节点 → VAE 节点
  6. SUPIR 节点使用指南 — 超分辨率增强方案
  7. ComfyUI Manager — 自定义节点管理器,用于安装 ESRGAN 等第三方节点
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐