ComfyUI_UltimateSDUpscale 实战指南:快速解决图像放大"糊了或爆显存"的问题
【免费下载链接】ComfyUI_UltimateSDUpscaleComfyUI nodes for the Ultimate Stable Diffusion Upscale script by Coyote-A.项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI_UltimateSDUpscale
用扩散模型放大一张图,你大概率会撞上一堵墙:细节糊成一团,或者显存直接 OOM。ComfyUI_UltimateSDUpscale 的做法是先放大整图,再切成小块逐块重绘,让每一块的分辨率都落在模型训练过的区间里。这篇上手指南让你五分钟搭出一条可用的放大工作流,并知道效果不对时该拧哪个参数。
这张图是仓库自带的完整示例:模型和提示词先画出一只 512×512 的狮子,再交给 Ultimate SD Upscale 节点做 2 倍分块细化。
🔍 它是什么,适合谁用
它是把 Ultimate SD Upscale 脚本搬进 ComfyUI 的一组自定义节点,核心思路是:先用放大模型(upscale model)把图整体放大,再切成小块跑 image-to-image 重绘,把放大抹掉的纹理细节重新生成出来。你可以把它类比成拆拼图:把大画拆成小块分别上色,再拼回去,而不是一笔涂满整张画布。
它适合两类人:显存塞不下 1024×1024 整图重绘的人,以及对"纯放大"结果不满意、想补细节的人。它和直接挂一个 Load Upscale Model 节点的关键区别在于:放大器只做像素插值,而这个节点多了一次扩散模型重生成,细节是真的长出来的,不是算出来的。
🚀 五分钟跑起来
最稳的方式是 git clone,跟着做即可。
第 1 步,确认环境。终端里运行git -v,预期看到git version 2.x这样的版本号。
第 2 步,克隆到正确位置。先 cd 进 ComfyUI 的custom_nodes目录,然后执行:
git clone https://gitcode.com/gh_mirrors/co/ComfyUI_UltimateSDUpscale预期看到命令结束后目录里多了一个ComfyUI_UltimateSDUpscale文件夹。
第 3 步,重启 ComfyUI。预期看到控制台底部没有红色报错,右键画布 → Add Node → 在image/upscaling分类下出现 Ultimate SD Upscale 系列节点。
第 4 步,载入示例。打开仓库里的example_workflows/basic-usdu.json,或在左侧边栏 Templates 菜单滚到 Extensions 部分找到本项目。接上你自己的 checkpoint、VAE 和提示词,按 Queue Prompt,预期得到一只毛发更立体的狮子。
不想敲命令的话,其余方式压缩成这一张表:
| 安装方式 | 操作 |
|---|---|
| ComfyUI Manager | 在 Custom Nodes Manager 搜索 "UltimateSDUpscale",安装后按提示重启 |
| comfy-cli | 终端执行comfy node install comfyui_ultimatesdupscale |
| 手动下载 | 下载 ZIP,解压到ComfyUI/custom_nodes/ComfyUI_UltimateSDUpscale |
🎛️ 关键参数调优手册
| 参数 | 作用 | 推荐起步值 | 何时需要调整 |
|---|---|---|---|
upscale_by | 第一步放大的倍数 | 2.0 | 需要凑到某个目标分辨率时 |
tile_width/tile_height | 分块尺寸 | 512×512(SD1.5 训练分辨率) | 显存富余就调大以减少接缝;自己生成底图时,直接用底图尺寸 |
denoise | 每块重绘的强度 | 0.05–0.2 | 细节不够就略调高;出现幻觉或接缝就调低 |
mode_type | 分块处理顺序 | Linear | 接缝仍明显时换 Chess 棋盘序 |
seam_fix_mode | 接缝修复策略 | None | 仅在接缝确实碍眼时开启,注意明显拖慢速度 |
tiled_decode | 分块解码 | False | VRAM 不足报 OOM 时直接打开 |
这里面影响最大的是denoise:调低了只是稍微变清晰,调高了每块各自发挥,会生出原图没有的物件和接缝。我的经验是看到接缝先降denoise,其次把 tile 调大,最后再考虑接缝修复。
⚠️ 容易踩的坑
解码时 OOM,或进度条长时间不动原因:一次性解码大尺寸 tile 很吃显存,引擎自己回退分块解码又慢。 解法:打开
tiled_decode开关,跳过正常解码的尝试,直接走分块路径。tile 交界处能看到一条一条的缝原因:
denoise过高,相邻块内容各自漂移,边缘对不上。 解法:把denoise压回 0.05–0.2;确实需要高去噪时得上 ControlNet tile 类控制模型,否则用seam_fix_mode里的 Half Tile 起步。结果发糊,或画面出现怪异的"不识别"感原因:tile 尺寸和模型训练分辨率不匹配,比如 SD1.5 模型喂了 768×768 的块。 解法:SD1.5 就用 512×512;需要精确输出尺寸时,改用 No Upscale 变体节点(文档在仓库
js/docs/目录),单独接一步放大和 ImageScale。
🚀 下一步
- 想把最终输出精确控制到指定像素:去读
js/docs/UltimateSDUpscaleNoUpscale.md,把放大、缩放、重绘拆成三步独立连接。 - 想让效果可复现:把跑通的参数组合存成工作流,之后从
example_workflows/basic-usdu.json这个模板出发迭代即可。
参数表吃透之后,这套工作流就只剩下换数字了。现在就打开终端,把上面的步骤跑一遍。
【免费下载链接】ComfyUI_UltimateSDUpscaleComfyUI nodes for the Ultimate Stable Diffusion Upscale script by Coyote-A.项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI_UltimateSDUpscale
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考