简介这是一份ComfyUI/Supir图像缩放工作流配置面向使用ComfyUI进行AI图像处理的设计师、开发者以及刚入门的爱好者。资源包体积仅4KB压缩包内只有1个json工作流文件解压后可直接导入ComfyUI界面使用省去手动拖拽节点、逐项设置参数的重复劳动。工作流内部围绕Supir图像缩放任务预置了从加载原图、模型推断到生成高清结果的完整节点连接与关键参数适用于低分辨率图片放大、人像细节恢复、老照片清晰化等常见应用场景。使用者既可一键运行得到缩放效果也可打开节点面板理解Supir流程的整体结构并自由调整放大倍数、采样步数、重绘幅度等控制项目前已有96人学习下载适合希望通过现成配置快速上手Supir图像缩放或需要以轻量模板为基础开展二次开发的ComfyUI用户。借助这份json工作流文件完成一次配置后即可在多个设备之间迁移复用显著减少重复搭建环境的时间并作为自定义工作流时的配套参考。1. ComfyUI 里的 SUPIR 图像缩放不是放大节点是生成式修复把一张 512px 的老照片拖进 ComfyUI直接接一个ImageScale放大到 4K出来的图只是像素插值细节全是糊的换成 SUPIR 图像缩放结果就不一样了——它会先理解画面里有什么再在潜空间重新生成高频纹理。SUPIR 本质是扩散式超分模型不是普通滤镜既吃显存也吃提示词质量。如果你要做老照片修复、海报重制、低分辨率人像放大到 4K 还保皮肤纹理这是 ComfyUI 里最接近“理解性修复”的路线但你要接受单图几分钟到二十分钟的耗时以及 16~24GB 显存门槛。下面按模型选型、最小工作流、参数配置、避坑排查和批量调用的顺序讲清楚。2. SUPIR 图像缩放原理与模型选型重建纹理而不是插值像素传统超分工具比如 ESRGAN、Lanczos是把图片当作像素矩阵用插值或卷积去“猜”缺失的细节SUPIR 完全不同它先把图片编码进潜在空间再依靠扩散模型重新采样。你给的提示词会参与这个过程所以同一张低清图提示词不同放大后的纹理走向都可能不一样。这也是为什么很多人第一次跑 SUPIR 会觉得“结果很玄”——它不像普通超分那样确定而是一次带语义的重新绘制。理解这一点后面所有参数调试都有一个锚点SUPIR 是在“重建”不是在“补点”。碰到画质问题不要先怀疑放大倍数要去检查提示词、采样步数和 VAE 是否匹配。2.1 模型分支v0.1、v0.2、fp16 与边界条件SUPIR 在 ComfyUI 生态里主要用两个权重分支v0.1 和 v0.2。v0.1 对显存要求相对低适合低分辨率老照片v0.2 在语义理解上更强皮肤、毛发、建筑纹理这类高频细节更自然但模型更大推理更慢显存占用也更高。权重文件体积参考显存压力适合场景SUPIR-v0.1约 5~6GB中等老照片、低分辨率人像SUPIR-v0.2_fp16约 6GB较大海报、人像、产品图SUPIR-v0.2_fp32约 10GB很大追求极限精度但卡得住的场景我的建议很直接日常做图像缩放选SUPIR-v0.2_fp16.safetensors就够了配套 VAE 用SUPIR-v0.2_fp16.vae.pt两者必须同版本配对。fp32 权重在 ComfyUI 的多数自定义节点里并不受支持强行加载经常导致 CUDA OOM收益却肉眼难辨。v0.1 适合显存 12~16GB 的用户或者当你发现 v0.2 在特定画风上“过度重绘”的时候回退。有一个很多人忽略的细节SUPIR 的 VAE 不是 SDXL 自带 VAE。它的潜空间分布经过微调如果后续用普通 SDXL VAE 解码输出会带一层粉绿色色偏严重时整张图报废。所以模型选型这一节真正要锁定的不是“哪个版本更强”而是“模型、VAE、节点三者是否处于同一套文件结构里”。2.2 节点安装、ComfyUI Manager 和最小工作流骨架安装 SUPIR 相关节点我一般不会手动去 clone 仓库直接在 ComfyUI Manager 的 Custom Nodes 面板搜索SUPIR点 Install。它会自动补open_clip_torch、einops这些依赖。秋叶一键整合包用户注意整合包自带的 Python 环境往往比较旧torch 版本低于 2.0 时SUPIR 的算子大概率直接崩先升级再装节点。# 如果手里是整合包先切到整合包自带的 python 环境 # 低于 2.0 的 torch 建议先升级避免和 SUPIR 的算子冲突 pip install --upgrade torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 pip install open_clip_torch einops这段命令的cu121对应 CUDA 12.1如果你的显卡驱动对应的是其他 CUDA 版本把参数改成cu118或cu124后重试。open_clip_torch是 SUPIR 语义理解模块的依赖einops是张量重排工具这两个缺了节点会直接在加载时报“ModuleNotFoundError”。节点装好后权重文件不要放到models/checkpoints而是放进节点自己的模型目录通常叫models/supir或models/checkpoints取决于你装的节点实现。下面的最小工作流 JSON 是我常用的连接骨架节点名以你安装的插件为准连接关系是通用的{ 1: {class_type: LoadImage, _meta: {title: 1-载入原图}}, 2: {class_type: SUPIRModelLoader, inputs: {supir_model: SUPIR-v0.2_fp16.safetensors}}, 3: {class_type: SUPIRVAELoader, inputs: {vae_file: SUPIR-v0.2_fp16.vae.pt}}, 4: { class_type: SUPIRSampler, inputs: { supir_model: [2, 0], vae: [3, 0], image: [1, 0], scale_factor: 4, steps: 20, cfg: 7.0, sampler_name: euler, scheduler: normal, denoise: 1.0, s_prompt: natural texture, high detail, sharp focus, t_prompt: blurry, low quality, oversmooth } }, 5: {class_type: VAEDecode, inputs: {samples: [4, 0], vae: [3, 0]}} }这段 JSON 里的关键连接是LoadImage的图片输出接进SUPIRSampler的image输入SUPIRModelLoader给出模型SUPIRVAELoader同时喂给采样器和解码器。SUPIRSampler返回的是潜在空间张量所以后面必须接VAEDecode不能直接接SaveImage。很多新手第一次搭工作流看到预览黑屏不是模型没跑是把 latent 当成像素图保存了。实际使用时在节点 5 后面再接一个SaveImage就能出图。3. 本地部署 SUPIR 放大链路五组照抄参数与低显存配置工作流从“能跑”到“跑得稳”中间隔着参数。SUPIR 的采样过程和普通文生图不一样它是在已有图像基础上做精修所以步数和去噪强度必须单独看待不能照搬 SDXL 文生图的习惯。这一章我直接给一套能照抄的链路和参数组合。3.1 从 512 到 4K搭一条完整放大链路我的习惯是先给原图做一次 Lanczos 预放大再接 SUPIR。原因很简单SUPIR 的scale_factor如果直接从 512 干到 2048模型要凭空生成太多中频细节容易出现边缘抖动先把图用ImageScale放大到目标尺寸附近SUPIR 只负责恢复纹理速度和稳定性都会好很多。{ 6: { class_type: ImageScale, inputs: { image: [1, 0], upscale_method: lanczos, width: 2048, height: 2048, crop: center } } }把这个节点输出的图片接入SUPIRSampler的image输入再把scale_factor设为 1 或 2而不是 4。这样整条链路是读图 → Lanczos 放大到 2048 → SUPIR 做纹理重建 → VAE 解码 → 保存。width和height我通常设成 2 的整数次幂倍数避免潜空间维度不对齐。crop参数建议固定center防止边缘被裁剪导致构图偏移。整条链路中真正耗时的是 SUPIR 采样段。Lanczos 预放大几乎是零成本但它决定了 SUPIR 的输入信噪比。原图如果带明显 JPEG 压缩痕迹预放大后压缩块会被放大SUPIR 可能把块状噪点当成纹理保留下来这种情况建议先加一个轻量去噪节点再走放大链路。3.2 五组照抄参数步数、CFG、采样器与去噪下面这组参数是我用 SUPIR 做产品图和人物图时比较省心的起点。它不是最优解但能保证第一次跑出来的图不过曝、不糊、不“塑料”。参数建议值边界说明steps20~25少于 12 步细节断层高于 30 步收益很小cfg6~8大于 10 会出现浮雕感颜色发闷sampler_nameeuler比 dpmpp 系列更稳边缘更干净schedulernormal和 euler 搭配整数步数收敛denoise1.0全帧放大时不动局部精修时降到 0.6~0.7scale_factor2 或 4大倍数时先预放大避免直接跨越steps我推荐 20 起步。SUPIR 的细节不是在前 10 步出现的而是后段采样逐渐注入步数太短会得到“磨皮”感。cfg超过 9 以后画面会开始出现非预期的颜色块尤其在高光区域。sampler_name这个位置很多教程会推荐dpmpp_2m但在 SUPIR 这种以真实感为目标的放大任务里euler的前瞻性更弱不容易把皮肤纹路画成油画画笔触。denoise保持 1.0 时模型完全重绘纹理如果你只做局部放大比如只放大脸部区域则把它降到 0.7让周围背景保持原样。3.3 低显存卡怎么跑Tiled VAE 与分块采样SUPIR 的显存压力主要来自三块潜空间特征图、扩散采样中间变量、VAE 解码。16GB 显存跑 2048 分辨率很容易在 VAE 解码段 OOM因为解码器一次性处理完整图像张量峰值特别高。解决方案是打开节点里的 Tiled VAE 开关。{ 4: { class_type: SUPIRSampler, inputs: { supir_model: [2, 0], vae: [3, 0], image: [6, 0], scale_factor: 2, steps: 20, cfg: 7.0, use_tiled_vae: true, tile_size: 512, tile_overlap: 128 } } }use_tiled_vae设为true后tile_size控制分块大小显存紧张就降到 512tile_overlap控制在 64~128 之间。注意tile_overlap太小分块接缝会暴露成一条细线太大会增加重复计算速度变慢。另外ComfyUI 的启动参数--reserve-vram也是低显存配置里的刚需它可以让 torch 预留一部分显存用于采样器之外的缓冲避免峰值被打满python main.py --reserve-vram 1.0 --lowvram--reserve-vram 1.0表示预留约 1GB 显存给前端显示和其他零碎张量--lowvram则是让 ComfyUI 在显存不足时主动把模型层切到内存。用整合包的用户在启动器的高级选项里找对应项勾选即可。如果你已经开了use_tiled_vae还在 OOM再检查一下系统虚拟内存设置Windows 下建议给系统盘以外的分区设置 32GB 以上页面文件因为--lowvram切到内存后物理内存不够会被系统强制杀进程表现成“ComfyUI 无响应”而不是正常报错。4. s_prompt 与 t_prompt 控制把 SUPIR 从滤镜调成修复工具SUPIR 最容易被忽略的输入是语义提示。很多人把它当作普通放大模型只调步数和 CFG结果发现出图时好时坏。真正的原因在于SUPIR 的采样过程会把提示词转化为潜空间里的修复目标。提示词写不好放大出来的纹理就是乱的。4.1 s_prompt 与 t_prompt别把文生图的提示词逻辑搬过来在 SUPIR 里s_prompt不是描述“画面内容”而是描述“画面质感标准”。它不是告诉模型“这是一只猫”而是告诉模型“猫毛的质感应该怎么重建”。所以我会写这类提示词s_prompt: high detail, realistic skin texture, fine grain, natural lighting, no compression artifacts t_prompt: oversmooth, plastic, blurry, low contrast, watercolort_prompt也不是严格意义上的负面提示词它更像是“修复时不要往这个方向走”的语义约束。比如你希望保留胶片颗粒感就不能在t_prompt里写grain否则模型会主动抹掉噪点。反过来如果你要的是干净的人像皮肤t_prompt里写skin defect, blemish会强化磨皮效果。一个常见失误是直接从文生图工作流里把长段提示词搬过来写几十个逗号分隔的物体关键词。SUPIR 的视觉编码器更关注整体感知不是逐物体对齐提示词太长反而稀释了纹理重建方向。我的建议是s_prompt控制在 10 个短语以内聚焦在“清晰度、材质、光照、噪点状态”四个维度上。4.2 老照片修复场景人脸一致性与局部重绘处理老照片时直接整图丢进 SUPIR最明显的翻车点是脸部失真。因为低分辨率下眼睛和嘴部信息量太少模型会按自己的理解“脑补”一个五官结果可能像换了一张脸。解决思路不是换模型而是把脸部区域单独提出来处理先用人脸检测节点裁出面部区域把这张局部图放大到合理尺寸再作为额外输入并回贴到原图坐标。常见做法是先让 SUPIR 跑一次全局放大得到构图稳定的底图然后单独放大面部区域最后用图像拼接节点把高清面部贴回。这里的上下文控制在于面部区域放大时要写更明确的s_prompt比如symmetrical face, natural skin pores而全局放大时不要写和五官相关的词避免重复建模。另外老照片上的划痕和污点不要让 SUPIR 直接“修复”。它没有像素级的划痕检测能力很可能把划痕重建成纹理。正确的顺序是先用去划痕节点或 PS 处理干净再进 SUPIR。SUPIR 擅长的是在干净底图上恢复高频细节不是当修图师。5. SUPIR 放大的避坑与排查显存、模型下载失败和玄学画质这一章写的是我在实际使用里踩过、也帮别人排查过的坑。每一条都按现象、原因、解决来给你可以直接对照症状处理。5.1 显存充足却 OOMtorch 版本和 --reserve-vram 预留显存现象显卡是 24GB 显存跑 2048 分辨率的 SUPIR结果在采样中途直接报CUDA out of memory。原因显存够不代表 torch 的分配策略适合 SUPIR。SUPIR 在采样过程中会同时持有输入 latent、中间噪声预测、跨注意力缓存这些张量加在一起会把显存碎片化。另一个常见原因是 torch 版本过旧CUDA 算子没有被高效融合峰值翻倍。解决先升级 torch 到 2.0 以上再用--reserve-vram 1.0启动 ComfyUI 预留缓冲。如果还 OOM就把use_tiled_vae打开并把tile_size调到 384。这时不要再开--lowvram和--reserve-vram同时使用前者已经把所有模型层切到内存后者反而占用显存空间两者叠加会让采样速度慢到没法用。5.2 模型下载失败HF 国内源与 install.py 的边界现象第一次跑 SUPIR 工作流节点一直停在红色报错状态日志显示RuntimeError: Cannot download model权重文件始终没有出现在模型目录里。原因很多 SUPIR 节点在首次使用时会自动从 Hugging Face 拉取权重。下载失败不是代码问题而是网络不通或者连接超时节点对断点续传的支持也比较弱中断后不会自动重试。解决不要反复删半个文件重下先手动设置环境变量指向 Hugging Face 镜像站再重新执行节点的安装脚本export HF_ENDPOINThttps://hf-mirror.com python install.py这个install.py是节点自带的下载脚本HF_ENDPOINT是 Hugging Face 官方支持的环境变量把默认下载域名指向镜像。秋叶整合包自带的话可以直接在系统环境变量里设HF_ENDPOINT避免每次启动都要 export。设置完以后重新打开 ComfyUI节点会继续下载进度。如果仍然失败检查目标目录是否已有零字节文件删掉再跑因为脚本不会自动覆盖损坏的半成品。这也是常见踩坑点。5.3 放大结果像“塑料皮”CFG 过高与过强的 t_prompt现象图像确实放大了分辨率到了 4K但皮肤像磨皮过猛头发丝糊成一团整张图有一种不自然的“塑料光泽”。原因CFG 设置得过高模型的预测方向被过度强调导致高频纹理被平均化。另一个推手是t_prompt里写了太多负面材质词比如smooth, plastic模型会主动抹掉皮肤毛孔和布料纹理。解决把cfg降到 6.5~7.0t_prompt里删掉所有关于材质的词只保留和画质相关的词。调参时不要同时动步数和 CFG先固定步数 20只降 CFG看纹理是否恢复。这一步属于典型“玄学画质”问题本质是语义引导权重和生成细节之间的平衡。5.4 分块接缝tile_overlap 太低和 tile_size 边缘现象放大后的图出现规则的网格状细线尤其在天空、墙面这类平坦区域一条条分块边界清晰可见。原因use_tiled_vae开启后每个 tile 独立解码tile 之间的过渡区域由tile_overlap控制。overlap设置太低相邻 tile 没有足够的重叠信息来融合VAE 解码的微小色差就会形成接缝。解决把tile_overlap从默认值提到 128 或 160。如果你的tile_size是 512tile_overlap超过 160 后融合权重会变得很平滑但速度也相应下降。另一种处理是扩图后再裁回先让整图向外扩 10px放大完成后裁掉接缝会落在画面外这是修图行业的土办法但在 ComfyUI 里能用。5.5 输出图偏绿粉VAE 加载错误现象SUPIR 跑完图能看但颜色明显偏色阴影发绿高光发粉。原因SUPIR 的 VAE 输出通道分布和 SDXL 不一样你大概率在VAEDecode里接了 SDXL 自带的 VAE而不是 SUPIR 配套的 VAE 文件。解决在SUPIRVAELoader里重新选择SUPIR-v0.2_fp16.vae.pt并且确保它同时接进SUPIRSampler和VAEDecode。如果节点没有专门的 VAE Loader检查下载的权重包找到一个名字带.vae.的文件手动替换加载器路径。这个问题最坑的地方在于它不报错只会输出安静的画面偏色新手容易整半天还在调采样器参数白费时间。6. 批量跑 SUPIR 的验证技巧通过 ComfyUI API 提交任务如果你手里的低分辨率图不止一张比如要把一批历史资料照片全部放大到 4K直接在 ComfyUI 面板里一张张拖图会崩溃。正确做法是把稳定可用的工作流保存为 API 格式的 JSON然后用 Python 脚本批量提交到 ComfyUI 的任务队列。import json import urllib.request workflow json.load(open(workflow_api.json)) # 每次替换不同的输入图 workflow[1][inputs][image] batch_001.png workflow[2][inputs][supir_model] SUPIR-v0.2_fp16.safetensors payload {prompt: workflow, client_id: supir-batch-01} req urllib.request.Request( http://127.0.0.1:8188/prompt, datajson.dumps(payload).encode(utf-8), headers{Content-Type: application/json}, ) urllib.request.urlopen(req)这段脚本会把任务发给本机 8188 端口的 ComfyUI 服务。client_id只用于区分请求来源同一个脚本跑多轮没问题。提交后ComfyUI 会排队执行你可以继续往队列里塞下一张图不用等前一张跑完。注意workflow_api.json的节点 ID 要和你在面板导出的 API 格式一致尤其替换图片节点时检查节点 1 的inputs.image键名是否是image有些版本是image_path。批量跑完之后我的验证习惯从来不是用眼睛看缩略图而是把 SUPIR 输出图和原图做像素级对比。用 OpenCV 算一下两图的 PSNR同时裁剪同一块 512 区域看纹理是否断裂。如果 PSNR 在放大任务里高得离谱反而要警惕是不是输出被过度平滑真实感修复的 PSNR 不会太高但梯度图应该保留明显边缘响应。这个习惯救过我太多次了——时间不会说谎。希望这篇文章能帮你在 SUPIR 图像缩放这条路上少走一点弯路参数可以忘链路逻辑记住就够了。本文还有配套的精品资源点击获取