☰
ComfyUI高清放大链路:潜空间放大与分块重绘实战
2026/11/4 8:15:55 网站建设 项目流程

ComfyUI 教程做到第 18 期,后台被问得最多的问题已经悄悄变了。前十几期大家问的是“节点怎么连”“为什么报红”“模型放哪个目录”,而现在问的十有八九是同一句话:为什么我出的图,尺寸一放大就发虚、脸一糊、细节全变成塑料感?这个问题看着像“放大”两个字的事,实际上牵着三件事:潜空间放大的信息损失、像素空间重绘的接缝控制、显存与速度之间的取舍。ComfyUI 教程-18 这一期,我就专门把“高清放大链路”这一整条线捋清楚,从为什么要分两段、为什么要分块、分块的参数怎么算,到接缝、网格纹、脸部崩坏这些实际踩过的坑,一条一条讲。

这篇内容偏进阶,但不是只给老手看的。如果你已经能稳定跑通文生图的基础工作流,想让 1024 的图变成能交付的 4K 成品,这套链路你可以直接抄;如果你还在第一阶段,也可以先看第二节和第五节,把原理和坑点记住,等链路搭建的时候少走两三个月弯路。下面所有参数都是我本地反复压测出来的经验值,环境不同会有偏差,但量级是对得上的。

1. 为什么第 18 期要单独聊放大链路

1.1 出图尺寸的隐形天花板

很多人第一次接触放大,是因为发现自己把宽度高度直接拉到 2048,出来的图就变成了双头、三只手、构图涣散。这不是模型“不行”,而是训练分布决定的。绝大多数通用大模型在训练时见过的高质量样本集中在 512 到 1024 这个区间,你让它直接在 2048 的潜空间里“想构图”,等于让一个只画过速写本尺寸的人突然去画一整面墙的壁画,比例感立刻就散了。自注意力机制在潜空间里的计算量随边长平方增长,显存先不说,画面语义的一致性本身就会先崩。

所以“直接出大图”这条路在工程上不是不能走,而是性价比极低。正确的做法是把“构图”和“细节”拆成两步:先在模型熟悉的尺寸里把构图、光影、主体位置定死,再在这个已经确定的框架里往上加像素、补细节。前者是创意阶段,后者是工程阶段。把这两件事混在一起,就是你反复抽卡却总差一口气的根本原因。

我一般建议新手把出图尺寸固定在模型的原生甜点区,比如竖幅 832×1216 或者横幅 1216×832,构图满意了再进放大。这样你在抽卡环节浪费的时间会少一大半,因为每张图的生成时间短、显存压力小,一次能跑好几张对比。

1.2 潜空间放大和像素空间放大,本质是两件事

这一点必须掰开说,因为它决定了你节点树怎么搭。潜空间放大,是把 VAE 编码后的低维特征图直接做插值放大,再送进采样器做一次低幅度的重绘。它的优点是速度快、显存占用小、整体色调和构图几乎不跑偏;缺点是它能“补”出来的细节有限,因为特征图本身的信息密度就那么多,插值只是把相邻像素平滑过渡,不会凭空长出新纹理。放大倍率超过 1.5 以后,边缘就开始发软。

像素空间放大,是先把潜空间结果解码成真正的图片,再在图片层面上做重绘。这时候模型看到的是完整的像素信息,能真正往里面“画”东西——发丝、织物纹理、砖缝、皮肤毛孔这些细节,都是在这一步长出来的。代价是慢,而且必须分块,因为整张 4K 图塞不进显存。

注意:这两步不是二选一,而是先后关系。先潜空间把尺寸顶上去,再像素空间把细节补回来,这是绝大多数成熟工作流的骨架。

1.3 这套链路到底适合谁

如果你做的是电商主图、海报底图、印刷物料、角色立绘,需要成片能经得起放大看,那这套链路是刚需。如果你只是做社交平台的九宫格缩略图,说实话用不上,潜空间放大 1.5 倍加一点锐化就够了,硬上分块重绘纯属浪费电。

还有一个容易被忽略的场景:局部精修。分块重绘的节点组,本质上是“把图切成块分别重绘再拼回去”,这个机制稍微改一下,就能用来只修脸、只修手、只修背景。我在后面第五节会讲怎么把这个思路反过来用。

2. 链路设计的底层逻辑:为什么不能一步到位

2.1 潜空间放大的收益边界在哪里

我做过一组对比压测,同一张 832×1216 的底图,分别用潜空间放大 1.2、1.5、1.8、2.0 倍,重绘幅度统一给 0.4。结果是 1.2 倍几乎看不出损失,1.5 倍边缘开始轻微发软但整体可用,1.8 倍开始出现明显的“糊感”,2.0 倍基本就是纯插值的效果,纹理全部丢失。

结论很清楚:潜空间放大的单段倍率不要超过 1.5,超过这个数值,你补进去的算力都花在了“修复插值带来的模糊”上,而不是“创造新细节”。如果目标总倍率是 4 倍,那路径应该是 1.5 倍潜空间 × 2.6 倍像素空间,而不是 4 倍一把梭。

这里的数学关系是乘法,不是加法。1.5 × 2.67 ≈ 4,所以你在规划的时候要按乘算。很多人算错这一步,最后出来的尺寸跟预期对不上,还以为是节点 bug。

2.2 分块重绘为什么必须重叠

像素空间重绘没法一次处理整张图,只能切块。切块之后每块独立送进采样器,问题就来了:采样器在每一块的边缘是不知道“隔壁长什么样”的,它会按自己的理解把边缘画完。两块拼回去,接缝处就会出现纹理断裂、亮度跳变、线条错位。

解决办法就是让相邻的块有重叠区域,然后在拼接的时候做羽化过渡。重叠区越大,接缝越不明显,但重复计算的比例也越高。经验公式是:重叠像素取分块边长的 1/8 到 1/6 比较稳妥。比如分块 512,重叠就给 64;分块 768,重叠给 96 到 128。低于 1/10 基本压不住接缝,高于 1/4 就是纯粹浪费算力了。

还有个小细节:重绘幅度越高,需要的重叠就越大。因为高幅度重绘时,每一块“自由发挥”的空间更大,边缘的差异也更明显。我在重绘幅度 0.5 以上的时候,会把重叠从 64 提到 96,接缝问题基本就消失了。

2.3 参数之间是联动的,不能单独调

新手最容易犯的错是把每个参数当成独立旋钮,一个一个试。实际上这几个参数是互相咬合的:

  • 重绘幅度决定“改动多少”,幅度越高细节越多,但偏离原图的风险越大;
  • 分块尺寸决定“单次能看到多大范围”,块越大上下文越完整,但显存压力越大;
  • 重叠像素决定“接缝质量”,跟着分块尺寸和重绘幅度走;
  • 采样步数在分块重绘阶段不需要太高,20 到 25 步就够,因为任务本身是“在已有结构上补纹理”,不是从噪声重新构图。

这四者里,重绘幅度是主变量。你把幅度从 0.3 提到 0.45,细节会明显增加,但同时接缝风险和画面偏移也会增加,这时候就得同步把重叠像素提上去。只调一个不动其他,效果一定不稳。

2.4 我常用的三段式链路

经过一堆迭代,我目前固定的链路是三段:

第一段,潜空间放大 1.5 倍,重绘幅度 0.35 到 0.4,采样步数 20,作用是顶尺寸和做整体柔化修复。

第二段,像素空间分块重绘,分块 768、重叠 96、重绘幅度 0.35 到 0.45、步数 22 到 25,作用是长细节。这一段是主力,也是最吃显存的一段。

第三段,整图低幅度润色,重绘幅度 0.15 到 0.2,步数 15,作用是统一色温、压掉分块带来的轻微色差、把锐度拉回来。

这三段加起来,一张 832×1216 的底图跑到 3328×4864 大概需要三到五分钟(取决于显卡),但成片质量比单段硬放大高出一个量级。

3. 实操搭建:从节点树到参数落地

3.1 基础骨架的连接顺序

先把主干理清楚,别一上来就堆节点。整条链路的连接顺序是:底图潜空间 → 潜空间放大节点 → 采样器(配模型、正负条件、VAE)→ VAE 解码 → 图像分块重绘节点组 → 采样器(配模型、正负条件、VAE)→ VAE 解码 → 润色采样器 → 保存。

这里有个容易踩的坑:VAE 编解码的次数。每解码一次再编码一次,都会有轻微的信息损失和色偏累积。所以能在潜空间里做完的事,不要来回解码。第一段的潜空间放大可以直接在潜空间里串联,不需要中途解码。

第二个坑是模型加载。如果你在第二段想换一个更擅长细节的模型(很多写实向的细节模型确实更好用),那就在分块重绘节点组前面单独挂一个模型加载节点,不要复用第一段的。混用会导致风格打架。

3.2 第一段:潜空间放大的参数怎么给

潜空间放大的核心节点有两个输入:一个是原始的潜空间数据,一个是放大倍率。倍率给 1.5,然后接采样器。

采样器这边的关键参数:

  • 步数 20,采样器用 DPM++ 2M 这类收敛快的;
  • CFG 保持在 4 到 6,别拉高,拉高会让画面变“硬”,放大阶段不需要;
  • 降噪幅度 0.35 到 0.4,这个值是重点。低于 0.3 基本等于没重绘,只是插值;高于 0.5 会开始改动构图,尤其是背景元素的位置。

还有一个进阶技巧:如果底图的脸部本来就不太理想,可以在第一段之前先做一次脸部修复,或者在第一段的正向条件里加强面部描述的权重。因为一旦尺寸顶上去,脸部的问题会被一起放大,后面再修成本更高。

3.3 第二段:分块重绘的实际操作

分块重绘节点组的输入有四路:图像、模型、正向条件、负向条件,输出是一张拼好的图。它的内部参数面板是重点:

  • 分块宽度/高度:768×768 是我在 12G 显存上的甜点值。8G 显存建议 512,16G 以上可以试 1024;
  • 重叠像素:96,配合 768 的分块;
  • 重绘幅度:0.4 起步,细节不够再往 0.45 加;
  • 接缝修正模式:选“带状”或者“半带状”都行,前者更快,后者接缝更干净;
  • 分块顺序:默认的从左到右、从上到下就好,不要改成随机,随机容易在拼接时出现顺序错乱。

正向条件这块要单独说。分块重绘的时候,每一个块看到的画面内容是不一样的——有的块全是背景,有的块全是皮肤。如果你只用一句通用的提示词,背景块会被过度细节化,皮肤块又可能补出奇怪的纹理。我的做法是准备两套条件,通过条件合并节点做加权,一套偏“质感、细节、清晰”,一套偏“整体统一、自然”,权重按 7:3 给。这样每个块都能拿到一个平衡的引导。

3.4 第三段:润色与色彩回正

分块重绘出来的图,仔细看会发现块与块之间有极轻微的亮度差,尤其是大面积纯色背景上特别明显。这是羽化拼接的副产物,不是 bug。

第三段就是来解决这个的。整图送进一个低幅度采样器,重绘幅度 0.15 到 0.2,步数 15,条件用最简单的“高清、统一光照、自然色调”。这个幅度低到不会改动内容,但足够把块间的差异抹平。

提示:如果你的显卡跑不动第三段,可以用图像处理节点替代,做一次轻微的模糊加锐化,也能压掉大部分色差,只是不如采样器自然。

3.5 参数速查表

把上面这些整理成一张表,方便你直接对着填:

阶段空间倍率/分块重绘幅度步数CFG重叠
第一段 潜空间放大潜空间1.5 倍0.35~0.40204~6无
第二段 分块重绘像素空间768×7680.38~0.4522~255~796
第三段 润色像素空间整图0.15~0.20154~5无

总倍率按乘算:1.5 ×(分块阶段实际倍率)。分块阶段的实际倍率取决于你设的目标尺寸,不是由分块大小决定的,分块只影响“怎么算”,不影响“算多大”。

4. 显存与速度:在小卡上把大图跑通

4.1 显存到底被谁吃掉了

显存占用主要来自三块:模型权重、激活值(也就是中间特征图)、以及分块时的临时缓冲。模型权重是固定的,7G 左右的模型在 fp16 下大概占 4G;激活值跟分辨率强相关,这是变量;临时缓冲跟分块大小强相关。

以 12G 显存为例,跑 768×768 的分块,模型占 4G,激活值大概 2.5G,缓冲 1G 左右,剩下还有余量。如果你把分块提到 1024,激活值会翻到 4G 以上,缓冲也跟着涨,这时候就容易爆。所以分块大小不是一个“越大越好”的参数,它是在画质和显存之间找一个点。

我的经验是:分块边长不要超过显存容量(GB)× 64。12G 就是 768,8G 就是 512,16G 可以到 1024。这个换算不精确,但方向是对的,能让你少试很多次。

4.2 重叠比例带来的额外开销

重叠像素不是白给的。总计算量大概是“原图面积 ×(1 + 重叠比例)²”。分块 768、重叠 96,重叠比例是 12.5%,额外开销大概 26%。如果你把重叠提到 192,比例变成 25%,额外开销接近 56%。这就是为什么重叠不能随便加大——它是平方级增长,不是线性。

所以我的做法是重叠只给到“刚好压住接缝”的量,靠第三段润色去兜底剩下的轻微色差。这个组合比单纯加大重叠更划算。

4.3 几个切实有效的提速开关

第一个,把分块重绘阶段的采样步数压到 22。这个阶段不需要 30 步,因为任务简单,25 步以上收益递减非常明显,时间却线性增长。

第二个,如果节点组支持,开启分块并行。有些实现可以在显存允许的情况下同时处理多个块,速度能提升 30% 以上,但显存占用也会同步上升,需要自己试。

第三个,把中间结果缓存下来。第一段跑完先存一次,调第二段参数的时候不用重跑第一段,这个习惯能省下大量时间。

第四个,别在分块阶段用高 CFG。CFG 从 5 提到 8,时间会增加,画面还会变硬,得不偿失。

5. 常见问题与排查实录

5.1 接缝、网格纹和色块

这是分块重绘最常见的三个问题,成因不一样,别混着治。

接缝是线条或纹理在块边界处断开、错位。成因是重叠不足或者重绘幅度过高。处理办法:重叠从 64 提到 96,重绘幅度从 0.45 降到 0.4。

网格纹是整张图出现规则的方格状明暗交替,尤其在大面积天空、墙面、皮肤上明显。成因是分块边界处的亮度基准不一致,采样器对每一块独立做了归一化。处理办法:加大重叠、降低重绘幅度,并且一定要跑第三段润色。如果网格纹还是很重,说明你的分块太小了,块越小边界越多,网格越密。

色块是某一块跟周围的色调明显不一致,比如一块偏黄一块偏蓝。这通常是那一块的正向条件里包含了会影响色温的词,或者那一块恰好命中了某种风格。处理办法:把正向条件里的风格词和色彩词去掉,只保留内容描述和质感描述。

5.2 越放大越糊,问题出在哪

第一种可能,潜空间放大倍率给太高了。超过 1.5 之后就是在补插值的坑,必须拆成两段。

第二种可能,重绘幅度太低。0.25 以下的分块重绘,基本上只是把插值结果又插了一遍,什么细节都长不出来。这时候要往上加,别怕。

第三种可能,模型本身的分辨率适应能力差。有些模型在 1024 以上就明显退化,这时候换一个对高分辨率更友好的模型,或者在第一段之后加一个细节增强的节点,会好很多。

第四种可能,也是最隐蔽的:你的底图本身信息量就不够。一张过曝的天空、一片纯色背景,放大之后当然还是纯色,那不是糊,那是本来就没东西。这种情况要在底图阶段就把层次做出来,别指望放大环节无中生有。

5.3 脸部崩坏与眼睛失焦

放大之后脸崩,九成是因为第一段的潜空间放大把脸部的轻微问题一起放大了,然后又经过分块重绘的二次加工,误差累积。

我的标准处理流程是:底图出来先检查脸,脸不过关先修脸,修完再做放大。修脸的方式有两种,一种是局部重绘(遮罩圈住脸部,重绘幅度 0.4 左右,步数给高一点到 30),另一种是在放大链路里单独插一段脸部重绘,只对脸部区域做高幅度处理。前者更可控,后者更省事,看你习惯。

眼睛失焦是另一个高频问题。分块重绘的时候,眼睛很可能被切在两块的边界上,每块各画一半,拼起来就是两个不对焦的瞳孔。解决办法是把重叠像素加大到 128,或者干脆用局部重绘单独处理眼部区域,重绘幅度 0.35,条件里强调“清晰瞳孔、眼神光”。

5.4 排查速查表

现象最可能的原因优先调整
块与块之间有硬线重叠不足重叠 64 → 96
整图规则方格纹分块过小 + 未润色分块调大,补第三段
某块色调突兀条件词含色彩/风格精简正向条件
放大后整体发虚潜空间倍率过高拆成 1.5 倍 + 分块
细节长不出来重绘幅度过低0.3 → 0.4
脸部五官错位底图脸就有问题先修脸再放大
眼睛不对焦眼睛被切在块边界重叠加大或局部重绘
显存爆掉分块尺寸过大按显存 × 64 换算
速度慢得离谱步数过高或 CFG 过高步数 22,CFG 5

6. 几个不在文档里的实战细节

踩过的坑里,有几个是教程里从来不写、但实际特别影响结果的。

第一个是分块顺序和画面内容的对应关系。分块是机械切分的,它不知道“这块是脸、那块是墙”。所以如果你的主体恰好被切在四个块的交叉点上,那这个位置一定是全场最脆弱的地方。我的做法是先看一眼底图构图,如果主体在正中,就把分块尺寸调大一点,让主体尽量落在一个块内,而不是跨四个块。这个操作没有任何界面提示,纯靠眼睛看,但效果立竿见影。

第二个是条件重设的时机。分块重绘的阶段,正向条件里的“构图类”词汇要全部删掉。因为每一块看到的都只是局部,你写“全身站姿”“居中构图”,采样器在局部块里根本无从判断,只会生成一堆莫名其妙的元素。这个阶段的条件只保留材质、光照、质感、清晰度这些“局部可判断”的描述,构图交给底图本身。

第三个是不要迷信一次到位。我见过太多人想把链路做成一条龙,点一下从底图直接出 4K 成品,参数全部固定死。实际用下来,每条链路的甜点参数都跟具体画面强相关——人像和风景的重绘幅度就不该一样,纯色背景和复杂场景的重叠也不该一样。我现在是保存两三套预设,出图前按内容选一套,再微调一两个值,比追求“万能参数”靠谱得多。

第四个是关于收敛的判断。分块重绘跑到什么程度算合适?我的判断标准是:把图缩到 25% 看整体,如果整体没有明显的块感,那就可以停了;如果缩略图上看得出方格,那说明还有得调。这个判断方式比死盯参数有效得多,因为观众看成品通常也是先看整体。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询