ComfyUI 修图实战:图生图、局部重绘与放大,从「能出图」到「能交付」

上一篇我们完成了文生图工作流:写提示词、搭 KSampler、调采样器参数,最终生成一张满意的图。但如果目标是接修图的活儿,你会发现一个现实问题——客户发来的不是提示词,而是一张已经存在的图片。他们要的不是「生成一张新的」,而是「把这张改好」。

会文生图只是第一步,真正能交付的是「改图」。图生图(Img2Img)、局部重绘(Inpaint)、放大(Upscale)这三个技能,构成了 AI 修图接单的核心组合,也是从「能出图」走向「能交付」的关键一步。本篇实测环境仍为 Mac mini M4(32G 统一内存)+ ComfyUI Desktop + SDXL 模型。

三技能总览:先分清定位

三者的分工可以用一张表说清:

技能输入改动范围典型场景
图生图 Img2Img一张图 + 提示词全图整体变化改画风、换场景、调整体色调
局部重绘 Inpaint一张图 + 蒙版只有蒙版区域变去水印、修瑕疵、换衣服、去路人
放大 Upscale一张图分辨率提升、细节增强高清输出、印刷、电商大图

判断用哪个,只问一个问题:改动是「整张图」还是「某个区域」还是「只是不够清晰」。整图换风格用图生图;只动局部、其他必须原样保留,用局部重绘;客户要求 4K 输出或印刷尺寸,用放大。真实接单中三者几乎总是组合使用,后文会给出完整示例。

图生图(Img2Img):整体重绘的核心

原理

图生图把一张已有图片作为起点:图片先经 VAE Encode 转成 latent 噪声表示,再由 KSampler 从这个「半成品」出发重新采样。与文生图的区别只在输入端——文生图是从纯随机噪声开始,图生图是从你的原图开始。

denoise:图生图最重要的参数

KSampler 上的 denoise(降噪强度)决定采样从噪声的哪一层开始:值越低,保留原图越多;值越高,越接近从零生成。这个参数直接决定成图是「微调」还是「重画」,必须逐档理解:

为什么说 denoise 是图生图最重要的参数?因为客户需求最终都落在「保留多少原图」这个问题上。修图接单的失败案例,一大半是 denoise 给高了——客户要微调,你交付了一张面目全非的新图。

操作步骤

  1. 右键画布 Add Node → image → Load Image,加载一张本地图片。
  2. Load Image 的 IMAGE 输出连到 VAE Encode 的 pixels 输入(VAE 模型仍用 sd_xl_vae 或 checkpoint 自带的)。
  3. VAE Encode 的 LATENT 输出连到 KSampler 的 latent_image 输入,替换掉原来的 Empty Latent Image。
  4. 设置 denoise:按上面的档位选择。
  5. 其余连接(模型、提示词、VAE Decode)与文生图工作流完全一致,直接复用。

一个细节:图生图时 KSampler 的 steps 和 cfg 保持文生图的默认即可,denoise 才是主导变量。另外图生图对图片尺寸有要求,SDXL 最佳区间是 1024×1024 左右,原图尺寸偏离太远时先在外部工具里调整到合适比例。

典型应用

局部重绘(Inpaint):精准修改的关键

原理

图生图改的是全图,但修图需求绝大多数是「只改这里,别处不许动」:去水印、修掉背景里的路人、把模特的衣服换个颜色。局部重绘通过蒙版(Mask)告诉模型:只有蒙版覆盖的区域参与采样,其余像素原封不动。

操作步骤

  1. Load Image 加载原图。
  2. 在 Load Image 节点上直接用鼠标涂抹要修改的区域,ComfyUI 会自动生成蒙版;也可以单独用 ImageAndMaskPreview 或 MaskEditor 检查蒙版范围。节点上 Open in MaskEditor 可以精确涂抹。
  3. IMAGE 和 MASK 输出连到 VAE Encode (for Inpainting) 的对应输入。注意这个节点与普通 VAE Encode 不同:它接收 pixels + mask 双输入,只在蒙版区域内编码。
  4. KSampler:latent_image 接 VAE Encode (for Inpainting) 的输出,denoise 设高一些,0.7–0.9。原因:蒙版区域是要「重新画」的内容,denoise 太低会导致新内容与周围不融合,出现明显的补丁感。
  5. Image Composite Masked 把重绘结果贴回原图:destination 接原图 IMAGE,source 接 VAE Decode 输出,mask 接同一张蒙版。这样蒙版外的像素是原始图片,彻底避免二次采样对保留区域的意外损伤。

蒙版怎么画

蒙版不是涂得越精准越好,两个实践要点:

典型应用

去水印、修皮肤瑕疵、移除背景杂物和路人、给模特换衣服、改产品颜色、修补照片破损区域。凡是「精确、局部、保留原样」的需求,都是 Inpaint 的主场。

放大(Upscale):高清输出的三种方法

生图通常在 1024×1024 完成,但交付时客户常要 2K、4K 甚至印刷尺寸。放大有三种路线。

方法一:模型放大

用预训练的放大模型做像素级超分:

  1. 下载放大模型(推荐 4x-UltraSharp,细节锐利、适合照片类;皮肤人像可用 4x-UltraSharp 或 4x_NMKD-Siax),放入 models/upscale_models/
  2. Upscale Image (using Model) 节点:upscale_model 选 Load Upscale Model 加载的模型,image 接原图。
  3. 输出直接就是 4 倍分辨率的图。

优点是快、稳、内存占用低,一张 1024 图几秒完成;缺点是它只做「超分辨率重建」,不会新增语义细节。适合:图本身已经够好,只需要更大的尺寸。

方法二:放大 + 二次采样(Hires Fix 思路)

先模型放大,再送回 KSampler 补一轮细节:

  1. 方法一放大后的图接 Upscale Latent (or Image to Latent),经 VAE Encode 转回 latent。
  2. 再接一个 KSampler,denoise 设 0.4 左右,steps 可适当降低(20 步即可)。
  3. VAE Decode 输出。

这轮采样的作用是在高分辨率上重新「画」一遍细节:发丝、织物质感、瞳孔反光这类低分辨率下画不出来的内容会在二次采样中涌现。缺点是慢,且 denoise 超过 0.5 时画面内容可能漂移。适合:追求极致细节的成品输出。

方法三:Tiled Diffusion 分块放大

当目标尺寸很大(比如 4096 以上)时,整张图一次算完会爆内存。Tiled Diffusion(安装 ComfyUI-TiledDiffusion 插件,配合 Tiled VAE)把大图切成小块分别处理再拼接,单块显存/内存占用恒定,32G 的 Mac mini 也能跑大图放大。缺点是块与块的接缝处偶有不一致,需要用 overlap 参数(通常 64–128)缓解。适合:超大尺寸输出、内存紧张的场景。

选择建议:日常交付用方法一;重点作品用方法二;尺寸或内存吃紧用方法三。三者也可以串联:模型放大打底,二次采样补细节,最后按需分块。

组合实战:老照片修复工作流

用一个完整例子把三技能串起来。假设客户需求:修复一张 90 年代的破损老照片,输出可打印的尺寸。

第一步,放大打底。 老照片通常分辨率很低(几百像素),先用方法一的模型放大,把它抬到 1024 左右,让后续操作有足够的像素空间。这一趟主要是「把图变清楚」。

第二步,局部重绘去破损。 照片上的划痕、霉斑、折痕,用 Inpaint 逐块处理:用蒙版圈住破损区域,denoise 设 0.7–0.8,让模型用周围的皮肤、衣物纹理补全这块。一处一处来,比一次性圈大片区域更可控——圈得太大,模型可能画出与原人物不匹配的特征。

第三步,图生图统一色调。 老照片常有偏黄、褪色的问题,用图生图 denoise 设 0.3–0.4,提示词里写「restored photo, natural color」,轻推整体色调,让它回到自然的色彩。

第四步,放大输出。 处理完成后,再用放大输出到客户要的尺寸(比如 A4 打印的 300dpi 规格)。如果目标特别大,用方法三分块放大兜底。

这个流程也是实际接单的标准套路:先修(Inpaint 处理局部破损)→ 再调(Img2Img 统一观感)→ 最后输出(Upscale 定尺寸)。每一步都有明确的客户可见的改善,交付时也好向客户解释每一步做了什么。

避坑指南

denoise 过高导致面目全非。 图生图/重绘时 denoise 设得过高,客户要微调你却交付了重画的新图。原则:能低不高,先从小值试起,达到效果即可。

蒙版选错区域。 蒙版圈错了地方,改的不是客户要改的地方。重绘前一定要用 MaskEditor 预览蒙版范围,确认覆盖正确。

放大后细节糊或出现伪影。 模型放大本身不产生新细节,如果原图本身糊,放大了只会更糊。先确认原图质量;二次采样补细节时 denoise 别超过 0.5,否则容易出伪影和内容漂移。

内存不足。 放大到大尺寸或 batch 开大时被 killed。用分块放大(Tiled Diffusion)、关掉其他大应用、batch 保持 1。

Inpaint 与 ControlNet 的注意点。 局部重绘常配合 ControlNet(比如要严格保持原图的姿势、结构)。两者叠加时,ControlNet 的 strength 要适当降低(0.5–0.7),否则会抑制重绘区域按提示词重画,导致改不动。这个在第 5 篇会详细展开。

相关资源

下一篇进入 ControlNet 实战——让 AI 严格按你画的来。姿态、线稿、深度三种控制方式实操,以及它和局部重绘怎么配合。这也是从「能改图」走向「能精准定制」的关键,很多商稿需求都卡在这一步。

← 返回文章列表