ComfyUI高清修复(Hires.fix)工作流怎么搭:Latent Upscale节点详解

码头散步
码头散步
发布时间:2026-09-20 | 7人浏览过
原创

明明提示词写得很完美,生成的构图也满意,可一旦想把图片放大到2K或4K,画面就崩了:要么边缘模糊像没对上焦,要么出现奇怪的重复纹理。这其实是很多刚接触ComfyUI的朋友常遇到的“分辨率墙”。

直接拉高生成分辨率不仅显存吃不消,还容易破坏原有的构图逻辑。其实,模仿Stable Diffusion WebUI里的“高清修复(Hires.fix)”思路,在ComfyUI里用“先小图后放大再重绘”的两步走策略,就能轻松解决这个问题。核心就在于正确使用Latent Upscale节点。

为什么不能直接生成大图

在潜空间(Latent Space)里,像素并不是真实的图像点,而是抽象的特征数据。如果你直接在KSampler里把宽高分辨率设为4096x4096,模型需要计算的数据量是1024x1024的16倍。这不仅会让显存瞬间爆满,还会因为步数(Steps)相对不足,导致画面细节涂抹严重,出现“油画感”或结构扭曲。

高清修复的逻辑是:先生成一张构图完美的小图(比如1024x1024),确认满意后,将其放大到目标尺寸,然后在放大的基础上进行低强度的二次重绘。这样既保留了原图的构图,又补充了高分辨率下的细节。

核心组件:Upscale Model与Latent Upscale

要实现这个流程,我们需要两个关键节点:一个是负责物理放大的Upscale Model(放大模型),另一个是负责转换回潜空间的Latent Upscale(潜空间放大)。

Upscale Model负责像素级清晰化,Latent Upscale或VAE Encode负责回归潜空间以便重绘

Upscale Model负责像素级清晰化,Latent Upscale或VAE Encode负责回归潜空间以便重绘

Upscale Model的作用是将像素图像变大。常用的模型有4x-UltraSharp或R-ESRGAN 4x+。它能把模糊的边缘变清晰,但单纯靠它放大,画面会显得过于平滑,缺乏AI生成的自然纹理,甚至会出现伪影。

所以,我们需要Latent Upscale节点。它的功能是将放大后的像素图像,重新编码回潜空间(Latent),并调整尺寸以匹配新的分辨率。这一步是连接“像素世界”和“潜空间世界”的桥梁,让后续的KSampler能继续在这个高分辨率的底图上“作画”。

搭建工作流:从解码到重连

搭建高清修复工作流,本质上是在原有文生图流程后,串联一个“解码-放大-再编码-重绘”的分支。请确保你已经有一个能正常出图的基础工作流。

1. 添加放大分支

在基础工作流的VAE Decode节点之后,不要直接连Save Image,而是引出一条线连接到Upscale Image by Model节点(通常在image upscale分类下)。将你的放大模型(如4x-UltraSharp)加载到该节点。此时,输出的图像尺寸已经是原来的4倍了。

在VAE Decode后接入放大模型节点,准备进行物理尺寸放大

在VAE Decode后接入放大模型节点,准备进行物理尺寸放大

2. 转回潜空间

接下来,添加Latent Upscale节点。注意,这里有个常见的误区:很多人会用VAE Encode直接把放大后的图片编回去,但Latent Upscale节点能更好地处理尺寸对齐和噪声注入的准备。

将Upscale Image输出的IMAGE连接到Latent Upscale的image输入端。同时,你需要提供一个基础的latent作为参考,通常可以连接最初KSampler输出的latent,或者使用Empty Latent Image生成一个与放大后尺寸匹配的空白潜空间。但在ComfyUI的标准做法中,更推荐使用VAE Encode节点将放大后的图片转回latent,因为Latent Upscale节点在某些版本中主要用于调整现有latent的尺寸而非从像素转换。

修正与最佳实践:目前最稳健的连接方式是:Upscale Image输出 -> VAE Encode -> 新的KSampler。VAE Encode会将高清像素图重新压缩为潜空间数据。虽然叫“高清修复”,但这一步其实是把高清像素“翻译”回模型能读懂的语言。

使用VAE Encode将高清像素图重新编码为Latent,供第二次采样使用

使用VAE Encode将高清像素图重新编码为Latent,供第二次采样使用

3. 二次重绘设置

添加第二个KSampler节点。将VAE Encode输出的latent连接到新KSampler的latent_input。模型(Model)、正向/反向提示词(Conditioning)可以直接从第一个KSampler复制过来,保持一致性。

关键在于参数设置:

  • denoise(去噪强度):这是灵魂参数。建议设置在0.3到0.5之间。太低(<0.2)细节增加不明显,太高(>0.6)会改变原图构图,甚至变成另一张图。
  • steps(步数):不需要太多,20-30步即可,因为底图已经比较清晰。
  • cfg:保持与第一步一致或略低。

最后,将第二个KSampler的输出连接到VAE Decode,再连接到Save Image。这样就完成了整个闭环。

避坑指南:显存与尺寸控制

即使使用了高清修复,显存压力依然存在。如果直接放大4倍,显存占用会剧增。建议在Upscale Model之前,先使用Image Scale节点将图片放大到目标尺寸的中间值,或者选择2x的放大模型,分两次进行放大重绘。

另外,注意检查VAE的版本。如果放大后颜色发灰或出现噪点,很可能是VAE Decode时的精度问题,尝试启用VAE Decode节点的tiled(分块)选项,可以有效缓解高分辨率下的显存溢出和色彩异常。

左侧为原始生成小图,右侧为经过高清修复后的细节丰富大图

左侧为原始生成小图,右侧为经过高清修复后的细节丰富大图

高清修复不是万能的,它更适合用于丰富纹理和锐化边缘。如果原图构图本身有严重缺陷,放大只会让缺陷更清晰。因此,第一步的小图生成质量至关重要,务必在低分辨率阶段就调整好构图和主体关系,再把精细化的工作交给高清修复流程。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表