ComfyUI 高清放大与局部修复:Hires Fix、Upscale、Inpainting 与面部修复

"ComfyUI 官方图像放大教程说明了 Load Upscale Model、Upscale Image (Using Model) 与 upscale_models 目录的基础工作流。"
你生成了一张 768×1024 的角色图,构图和光影都满意,但远景里人物的脸有点糊。直接 4x 放大后,细节变硬,纹理像贴上去的;用 FaceDetailer 修完,脸又不像原来的人了。背景里的小瑕疵想改掉,inpaint 一下整个背景的色调都变了。
像素放大、潜空间二次采样、FaceDetailer、手动 inpainting 四条路线各有适用场景。这篇指南覆盖节点连线、参数语义、第一次任务示例,以及“放大后糊”“蒙版外被改”“修脸变脸”的排障方案。
什么是后处理提质:四条路线的边界
生成一张满意的图片后,通常会遇到三类问题:分辨率不够高、细节不够清晰、局部需要修改。ComfyUI 的后处理提质分为四条路线,每条路线负责不同的问题。
像素放大用 ESRGAN 等模型提高图像尺寸,通常不重新采样 prompt 或主动改变构图,但超分模型仍可能重建或添加纹理。它适合原图已经满意、只需要更大输出的场景。
潜空间二次采样把 latent 放大后重新采样,允许结构变化,适合想重新生成材质或增加细节的场景。
FaceDetailer 自动检测脸部区域并做局部修复,适合远景脸模糊的场景。手部或其他对象需要对应的 Detector、Detailer 或手动蒙版,不能把 FaceDetailer 当成万能修复节点。
手动局部重绘用 Mask Editor 画出要改的区域,让采样器重点重绘该区域。它适合修改 logo 边缘、背景小瑕疵或指定物体,但采样和合成仍可能影响蒙版外观感。
这四条路线各有边界:像素放大不负责身份一致性,FaceDetailer 修脸不等于换脸,手动 inpaint 也不保证蒙版外绝对不变。先判断问题属于“只变大、重新生成细节、修检测区域、改指定局部”中的哪一种,再选择路线。
像素放大:UpscaleModelLoader + Upscale Image using Model
像素放大是最基础的后处理路线。如果图已经满意,只想提高输出尺寸,这通常是破坏性最小的起点。
第一次放大任务
假设已经用文生图生成了 768×1024 的图片,想得到更大的输出。
第一步,从 Real-ESRGAN 仓库或可信模型来源下载适合当前图像类型的放大模型,例如 RealESRGAN_x4plus.pth 或 RealESRGAN_x4plus_anime_6B.pth。
第二步,把模型文件放到 ComfyUI/models/upscale_models/ 目录下。
第三步,刷新 ComfyUI 界面或重启,让系统重新扫描模型列表。如果仍找不到模型,检查路径、扩展名和 extra_model_paths.yaml。
第四步,添加节点连线:UpscaleModelLoader 从模型列表选择刚放入的模型;Upscale Image (Using Model) 接收 upscale_model 和 image;把文生图的输出图像接入它的 image 输入。
第五步,节点按模型支持的比例输出放大图。4x 模型通常输出四倍边长,但最终尺寸和资源占用仍要以节点结果为准。
常用放大模型选择
| 模型 | 适用场景 | 特点 |
|---|---|---|
| 4x-ESRGAN | 通用放大 | 官方教程示例,适合作为基础对照 |
| RealESRGAN_x4plus | 照片、真实场景 | 面向通用图像修复,适合测试真实纹理 |
| RealESRGAN_x4plus_anime_6B | 动漫、插画 | 面向动漫图像,适合测试线条与色块 |
| realesr-general-x4v3 | 通用轻量 | 模型方向较轻量,可用于批量对比 |
不要把某个模型写成“最佳放大模型”。效果会受图像类型、底模风格、压缩痕迹和放大比例影响。动漫图可以先测试 anime 模型,照片或真实场景可以先测试通用模型,再对比边缘、皮肤和细纹是否自然。
模型目录路径提醒
放大模型通常放在 upscale_models 目录,不是 upscale_model。UpscaleModelLoader 也能读取 extra_model_paths.yaml 配置的额外路径。模型列表没有更新时,先检查路径和文件,再刷新界面或重启。
潜空间放大 + 二次采样:LatentUpscale + KSampler
像素放大不重新理解 prompt,但如果想在放大后重新生成材质或细节,需要用潜空间放大加二次采样。这条路线把 latent 放大后重新送进采样器,denoise 决定保留原图还是重画。
LatentUpscale 参数语义
| 参数 | 作用 | 注意事项 |
|---|---|---|
upscale_method | 放大算法 | 常见选项包括 nearest-exact、bilinear、bislerp |
width / height | 目标尺寸 | 一边设为 0 时可按另一边保持宽高比 |
crop | 裁剪方式 | 常见选项为 disabled 或 center |
LatentUpscale 输出放大的 latent,后面还要接 KSampler。接近 1.0 的 denoise 会重新生成更多内容,细节可能增加,但构图、脸和服装也更容易漂移;接近 0.0 时更保留原图,新增细节有限。
denoise 没有所有模型通用的固定配方。只想补一点细节时,可以从较低值开始,固定 seed、sampler、steps、CFG、checkpoint 和 LoRA 权重,一次只调一个变量。若数值逐步提高后人物开始变脸或衣服纹理乱长,就回到上一个稳定值。
与像素放大的区别
| 路线 | 改结构? | 增细节? | 适用场景 |
|---|---|---|---|
| 像素放大 | 通常不主动改构图 | 重建像素细节 | 原图满意,只想提高尺寸 |
| 潜空间二次采样 | 会,幅度取决于 denoise | 会重新生成细节 | 接受一定变化,想重做材质或局部结构 |
潜空间二次采样不是简单放大。如果工作流已经用了 ControlNet、IPAdapter 或区域提示词,二次 pass 可能削弱上游约束。先保存原始输出和工作流,再单独测试二次采样分支。
FaceDetailer 面部修复:Impact Pack 的自动修脸
远景脸模糊是常见问题。FaceDetailer 是 Impact Pack 中把脸部检测和 Detailer 组合起来的节点,本质上会检测局部区域,再对裁剪区域执行 detail 或 inpaint。它能改善小脸细节,但不是身份一致性或换脸工具。
安装 Impact Pack
Impact Pack 是第三方 custom node,维护者建议通过 ComfyUI Manager 安装。打开 Manager 的 custom node 安装入口,搜索 ComfyUI-Impact-Pack,安装后重启 ComfyUI。
Impact Pack 更新频繁,节点结构和兼容要求会变化。当前 README 还说明,某些 Ultralytics Detector Provider 需要另外安装 Impact Subpack。旧工作流出现红色节点、缺少 detector 或参数不一致时,先按当前 Impact Pack README、Subpack 说明和 Manager 状态复核,不要照搬旧截图。
第一次修脸任务
假设文生图输出里远景脸有点糊。
第一步,从 Impact Pack 菜单添加 FaceDetailer。
第二步,把工作流中的 image、model、clip、vae 和 detector 等必需输入接入 FaceDetailer。不同版本的输入可能变化,以当前节点和 README 为准。
第三步,先关注检测区域、guide_size、max_size、noise_mask、inpaint_model 和 cycle。guide_size 控制小区域 detail 时参考的目标尺寸,max_size 限制区域长边和显存占用。
第四步,从保守 denoise 开始。0.3–0.5 可以作为修脸的实践起点,但不是官方固定值;原脸越小、检测框越大,越要谨慎。
第五步,对比原图与修复图,确认脸部更清楚的同时,身份、表情、发型和背景没有被不必要地改写。
FaceDetailer 参数表
| 参数 | 作用 | 调整建议 |
|---|---|---|
guide_size | Detailer 处理区域的参考尺寸 | 从中等尺寸开始,太大会增加重画和显存压力 |
max_size | 限制处理区域的最大尺寸 | 用来约束显存和过大的检测框 |
noise_mask | 是否对检测区域使用噪声蒙版 | 通常作为开关理解,按当前节点版本复核 |
inpaint_model | 是否按 inpaint 模型路线处理 | 使用专门 inpaint checkpoint 时再按工作流配置 |
cycle | Detailer 循环次数 | 先用 1 次,重复处理可能逐步偏离原脸 |
detector 决定检测哪些区域。如果 FaceDetailer 越修越怪,先检查 detector 是否圈中正确的脸,再缩小处理区域、降低 denoise 或 guide size。手部崩坏应使用手部 Detector/Detailer 或手动 inpaint,不能依赖 FaceDetailer 自动处理。
FaceDetailer 的边界
FaceDetailer 能改善脸部细节,但不承诺保留原始身份特征。如果目标是固定同一个真人身份,需要 FaceID、InstantID、ReActor 或 LoRA 等专门方案。涉及真人脸时,只使用授权或自有素材。
手动 Inpainting:只改局部,不破坏整体
如果只想改 logo 边缘、背景小瑕疵或某个手部细节,手动 inpainting 比自动检测更可控。蒙版告诉工作流重点修改哪里,但最终影响范围还取决于编码、conditioning、denoise 和合成方式。
Mask Editor 操作步骤
假设产品图背景有个小瑕疵要改。
第一步,把原图放进 Load Image,右键节点并选择 Open in MaskEditor。
第二步,用画笔覆盖需要修改的区域。
第三步,用擦除工具修正画多的部分,并给边缘留下合理过渡空间。
第四步,点击 Save,让蒙版回到图片节点并传给后续 inpaint 路线。
两种常见 Inpainting 连线
原生工作流常见两种 conditioning 路线,不需要把它们机械地串成一条。
第一种使用 VAE Encode (for Inpainting):它接收 pixels、vae、mask、grow_mask_by,输出包含 noise mask 的 latent。把该 latent 接给 KSampler,再用 VAE Decode 输出图像。
第二种使用 InpaintModelConditioning:它接收 positive、negative、vae、pixels、mask,输出处理后的 positive、negative 和 latent,再分别接入 KSampler。这条路线适合需要专门 inpaint conditioning 的工作流。
KSampler 本身接收 model、positive、negative 和 latent 等采样输入;VAE 用在前后的编码与解码节点,不直接接入 KSampler。
grow_mask_by 的作用
grow_mask_by 会向外扩张蒙版,为 latent 边缘留出过渡空间。蒙版太紧容易形成硬边,太大又可能重画原本满意的区域。先从小幅扩张开始,观察接缝和背景变化,再逐步调整。
边缘接缝处理
如果蒙版边缘有接缝、亮度不一致或补丁感很重,可以适当增加 grow_mask_by、降低 denoise,并对蒙版做羽化。使用第三方 inpaint nodes 时,可以再测试 Expand Mask、Blur Masked 等预处理,但节点名和行为要以当前版本为准。
高级方案:Ultimate SD Upscale 与 comfyui-inpaint-nodes
像素放大和 latent 二次采样是基础路线,但超大图整张重采样容易占满显存,边缘接缝也可能需要更精细的蒙版预处理。下面两类 custom node 适合进阶控制,不是初学者的必选依赖。
Ultimate SD Upscale:分块放大
如果想把一张 1024×1536 的图放大到 4096×6144,整图二次采样很容易增加显存压力。Ultimate SD Upscale 会把大图分成 tile,对每块执行 img2img diffusion,再合成结果。
分块可以让单次处理尺寸更接近 diffusion model 的训练尺寸,并降低整图处理的硬件压力。代价是速度更慢,也可能出现 tile 接缝、局部纹理重复和各块风格不一致。
可以通过 ComfyUI Manager 搜索 ComfyUI_UltimateSDUpscale 安装。安装入口、节点菜单和参数可能随版本变化,按当前 README 与节点界面复核。
comfyui-inpaint-nodes:高级预处理
comfyui-inpaint-nodes 提供 Fooocus inpaint、LaMa、MAT 以及 mask expand、shrink、blur、fill 等工具。Fooocus inpaint 模型通常放在 ComfyUI/models/inpaint,但具体模型兼容性和 conditioning 路线以仓库当前 README 为准。
| 需求 | 可测试的预处理 |
|---|---|
| 边缘接缝明显 | Expand Mask 加 Blur Masked |
| 需要更精确的蒙版范围 | Shrink Mask 或 Expand Mask |
| 蒙版区域缺少合理初始内容 | Fill Masked |
| 移除物体或扩图 | LaMa、MAT 或对应 outpaint 工作流 |
denoise 不是万能参数。接近 1.0 会更彻底地重画蒙版区域,较低 denoise 会保留更多原内容,但具体行为还受所用模型和 conditioning 路线影响。若蒙版外发生变化,先核对连线和合成方式,再缩小 mask、降低 denoise 或调整过渡范围。
方案选型对照表:场景 × 路线
| 场景 | 推荐路线 | 原因 | 替代方案 |
|---|---|---|---|
| 原图满意只想高清 | 像素放大 | 通常不改构图,只做像素层增强 | latent 二次采样(需要重做细节时) |
| 想重新生成材质或细节 | 潜空间二次采样 | denoise 控制保留与重画幅度 | Ultimate SD Upscale(超大图时) |
| 远景脸模糊 | FaceDetailer | 自动检测脸部并局部 detail | 手动 inpaint(检测不准时) |
| 手、物体或 logo 局部错误 | 手动 inpaint 或对应 Detailer | 蒙版或 Detector 能限制处理区域 | 返回生成阶段重做结构 |
| 高分辨率显存不够 | Ultimate SD Upscale | 分块 img2img 降低单块压力 | 降低目标尺寸加像素放大 |
| 边缘接缝严重 | 蒙版扩张与羽化 | 给局部重绘留过渡区域 | 缩小改动幅度并降低 denoise |
四条路线的优缺点对比
| 路线 | 优点 | 缺点 | 显存要求 |
|---|---|---|---|
| 像素放大 | 快速、通常不改构图、模型选择多 | 不能修正错误结构,可能产生假纹理 | 低到中 |
| 潜空间二次采样 | 可重做材质和细节,调整空间大 | denoise 需要微调,可能偏离原图 | 中到高 |
| FaceDetailer | 自动检测脸部,不用手动画脸部蒙版 | 不保证身份一致性,可能过度修复 | 中到高 |
| 手动 inpaint | 指定局部、控制范围清楚 | 需要画蒙版,边缘和 conditioning 要调 | 中 |
| Ultimate SD Upscale | 超大图可分块处理 | 速度慢,可能出现 tile 接缝 | 取决于 tile 与模型 |
不要一次叠加所有后处理节点。先用破坏性最小的路线解决当前问题,保存中间结果,再决定是否继续重采样或局部修复。
顺序推荐:放大、修脸、Inpaint 怎么排
后处理顺序会影响结果。普通角色图可以从“保守放大 → 修检测区域 → 手动改局部”开始,但这不是所有图都必须遵守的固定配方。
推荐顺序的原因
先保存原图和工作流。若只是尺寸不足,先做像素放大,因为它通常不会重新采样 prompt。
再检查脸、手和其他小区域。脸部问题可以用 FaceDetailer,手部或物体用对应 Detector/Detailer 或手动蒙版。放大后检测区域更大,通常更容易观察修复是否过度。
最后用手动 inpaint 处理 logo、边缘、背景瑕疵等指定区域,避免前面的全图步骤再次破坏局部修补。
二次 pass 的风险
如果工作流已经用了 ControlNet、IPAdapter 或区域提示词,潜空间二次采样和 Detailer 的局部采样可能削弱上游条件。姿势、线稿、发色、服装和参考身份都可能漂移。
必须做二次 pass 时,先固定 seed 和其余参数,保留原始条件,并从较低 denoise 开始。若上游结果比新增细节更重要,优先测试像素放大,再决定是否值得二次采样。
延伸阅读
- ComfyUI 入门完整指南:基础界面、模型目录与第一次出图。
- ComfyUI 工作流复用完整指南:导入工作流、缺失节点和复现排障。
- Stable Diffusion 模型选择完整指南:底模、VAE、显存和授权边界。
常见失败:糊、变脸、接缝和蒙版外变化
| 现象 | 常见原因 | 处理 |
|---|---|---|
| 放大后变糊或过硬 | 模型不适合图像类型,或连续放大过度 | 换通用、照片或动漫方向模型做对照,减少连续处理 |
| 放大后脸不像 | 二次采样 denoise 太高,或 Detailer 区域太大 | 降低 denoise,缩小检测区域;身份问题回到专门方案 |
| 纹理乱长 | tiled upscale 或高 denoise 过度重画 | 降低 denoise,减少 prompt 新信息,先用小图测试 |
| 蒙版边缘有接缝 | mask 太紧、缺少过渡或局部亮度变化 | 调整 grow_mask_by,适当羽化,缩小修改幅度 |
| 蒙版外也变了 | mask/noise mask、conditioning 或合成路线不当 | 核对连线,缩小 mask,降低 denoise |
| FaceDetailer 检测不到脸 | 脸太小、角度特殊或 detector 不匹配 | 先保守放大或更换 detector,不要用高 denoise 强修 |
| 放大模型不出现 | 模型路径或扩展名不对,列表未刷新 | 放到 upscale_models 或配置额外路径,刷新或重启 |
| Ultimate SD Upscale 节点红 | custom node 未安装、版本或依赖不匹配 | 用 Manager 核对安装和更新,复杂冲突单独排查 |
| 显存不足 | 分辨率、tile、batch 或 Detailer 区域过大 | 降低尺寸和 batch,限制 max_size,缩小 tile 或改用像素放大 |
下一步:该继续修,还是回到生成阶段
如果整体构图、人物身份、姿势和产品形状已经满意,只剩分辨率、小脸、小手或局部瑕疵,可以继续后处理。改动最好能用小检测框或小蒙版完成。
如果人物身份、姿势、服装、主体数量或产品结构本身都错了,继续叠加 denoise 和 inpaint 往往只会扩大不确定性。这时更适合回到生成阶段,修正 prompt、ControlNet、参考图或模型选择。
想长期稳定同一角色或产品,也不该靠反复 inpaint 硬修。后处理负责把一张已经基本正确的图收口,不负责替代身份资产、结构控制或训练流程。
结论
ComfyUI 的后处理提质可以拆成四条主线:像素放大、潜空间二次采样、FaceDetailer 面部修复和手动 inpainting。原图内容满意时先做像素放大;需要重新生成细节时再用 latent 二次采样,并从较低 denoise 开始;远景脸模糊时用 FaceDetailer,但不要把它当成身份一致性或换脸;指定局部错误则用手动蒙版和 inpaint conditioning 路线。
普通角色图可以按“保守放大 → 修检测区域 → 手动改局部”处理。若全图二次采样显存压力太大,Ultimate SD Upscale 能分块执行,但必须复查接缝和局部风格。每完成一步都对比原图并保存中间版本,比一次叠加所有后处理节点更容易找出变脸、假纹理和蒙版外变化的来源。
选择并执行 ComfyUI 后处理路线
先判断问题属于尺寸、细节、小区域缺陷还是指定局部修改,再用最小破坏性的路线逐步处理。
- 1
步骤 1: 保留原始输出
保存原图、工作流、seed、checkpoint、sampler、steps 和 CFG,后续一次只改一个变量。 - 2
步骤 2: 判断是否只需要变大
如果构图、身份和纹理已经满意,先用 UpscaleModelLoader 与 Upscale Image (Using Model) 做像素放大。 - 3
步骤 3: 决定是否二次采样
只有需要重新生成材质或细节时才使用 LatentUpscale 加 KSampler,并从较低 denoise 起步。 - 4
步骤 4: 修复小脸或检测区域
用 FaceDetailer 或其他 Detector 加 Detailer 处理小区域,限制 guide_size、max_size 和 denoise,避免重画整片背景。 - 5
步骤 5: 为指定区域绘制蒙版
在 Mask Editor 中只覆盖需要修改的位置,给边缘留适当过渡,再接 VAE Encode (for Inpainting) 或 InpaintModelConditioning 路线。 - 6
步骤 6: 检查接缝和蒙版外变化
若出现硬边、色温变化或补丁感,调整 grow_mask_by、羽化和 denoise,并核对 mask 与 noise mask。 - 7
步骤 7: 处理超大图显存压力
整图重采样放不下时,降低目标尺寸或使用 Ultimate SD Upscale 分块处理,并逐块复查接缝和纹理一致性。 - 8
步骤 8: 比较并保留最小改动版本
对比原图、像素放大、二次采样和局部修复结果,保留满足需求且结构偏移最少的版本。
常见问题
ComfyUI 里 Hires Fix 怎么做?
Latent Upscale 和 Upscale Image (Using Model) 有什么区别?
ComfyUI 放大模型放在哪里?
FaceDetailer 是换脸工具吗?
Inpainting 为什么把蒙版外也改了?
FaceDetailer 修脸越修越怪怎么办?
Ultimate SD Upscale 适合什么时候用?
17 分钟阅读 · 发布于: 2026年7月22日 · 修改于: 2026年7月21日
ComfyUI 与 Stable Diffusion 专题:入门、工作流、模型选择与提示词
如果你是从搜索进入这篇文章,建议顺手补上上一篇或继续下一篇,这样更容易把同一主题读完整。



评论
使用 GitHub 账号登录后即可评论