ComfyUI 从安装入门到精通,显存不够怎么办? 一张按优先级排的降级清单

ComfyUI 从安装入门到精通,显存不够怎么办? 一张按优先级排的降级清单

前面 17 篇,你已经能装好 ComfyUI、出图、调质量、接 LoRA、搞 ControlNet 了。但有个坎,几乎每个新手都会撞上,我也没绕过去——

我第一次想跑 FLUX 的时候,兴致冲冲拖进工作流,点 Queue Prompt,结果界面一卡,控制台刷出一大串红色 CUDA out of memory。我当时还以为是显卡坏了,重装驱动、清缓存,折腾一晚上。最后才发现:不是坏了,是显存根本装不下

后来我才搞明白:ComfyUI 报 OOM,不是”你电脑不行”,是”这一刻要塞进显存的峰值”超了。而且这个峰值,是可以被拆开、被降级、被分摊的。这篇给你一张按优先级排好的降级清单——从最见效的到最不得已的,照着降,基本都能跑起来。

一句话记住:OOM 不是绝症,是”峰值超了”,峰值能拆,就能降。

一、显存到底卡在哪(大白话)

一张图从噪声变成成品,显存里要同时塞好几样东西。哪样最大,就先砍哪样。按”占坑大小”排个序,你心里就有数了:

占坑大户 大概量级(估算,未实跑) 说明
模型权重(FLUX fp16) ~23 GB 最大的头,fp16 全精度最吃显存
T5 文本编码器(FLUX) ~9 GB 隐形大户!很多人只换底模忘了它
latent 分辨率(2048²) ~8 GB 分辨率的平方,翻倍涨
VAE 编解码(2048²) ~8 GB 高清图解码瞬间拉满
batch / ControlNet / Detailer 每个 ~2–3 GB 加一个分支多一截
缓存 / 预览 ~0.5–1 GB 小头,但积少成多

踩坑经历:我头回降显存,只把底模换成了 fp8,结果还是爆。查了半天才发现——T5 还是 fp16 的,9 个 G 悄咪咪占着。换完 T5 才彻底跑通。这坑你别踩。

所以降级的核心思路就一句:从最大的头开始砍,别在缓存那 0.5G 上较劲。

二、按优先级排的降级清单(P0 → P3)

下面这张表是全文的灵魂。P0 是见效最快、最该先试的;P3 是实在没招了才动的。

优先级 峰值来源 降级动作 命令 / 节点
P0 模型权重(最大头) 换 fp8 / GGUF 量化 Load Diffusion Model 节点 weight_dtype=fp8_e4m3fn;或换 .gguf 用 Unet Loader (GGUF)
P0 T5 编码器(FLUX) 换 fp8 / GGUF 版 T5 DualCLIPLoader (GGUF) 加载量化 T5
P1 latent 分辨率 降到 1024² 甚至 512² Empty Latent 改宽高
P1 VAE 编解码 分块解码 换 VAE Decode (Tiled),tile_size=512、overlap=64
P2 batch / ControlNet 关分支、bs=1 工作流里减节点
P2 视频帧×分辨率 降帧 + 时间分块 VAE Decode (Tiled) 的 temporal_size / temporal_overlap
P3 缓存 / 预览 关预览、关缓存 –preview-method none、–cache-none

记法很简单:先换模型格式(P0),再降分辨率开 Tiled(P1),最后才动缓存(P3)。顺序反了就是事倍功半。

三、一个必须说清的坑:新版里 –lowvram 可能”白加了”

你搜老教程,十篇有八篇教你”显存不够加 –lowvram“。但我要泼盆冷水——在现在的 ComfyUI 上,这招大概率啥用没有

我对照了官方启动参数文档(v0.29.2),–lowvram 的原文说明是:

No effect when dynamic VRAM is enabled. Otherwise, runs text encoders on CPU.

翻译过来:Dynamic VRAM 开着的时候,–lowvram 不生效。而当前稳定版 ComfyUI 在 Nvidia 显卡上Dynamic VRAM 默认开启。也就是说,你兴冲冲加的 –lowvram,在新版里就是个空操作,显存一点没省。

Dynamic VRAM 是 ComfyUI 新版的”自动显存管家”:模型用多少搬多少,不用就退给系统,比老式”lowvram 强制分块”聪明得多。所以对大多数 4060 用户,别跟 –lowvram 较劲,让 Dynamic VRAM 自己管,你只要把模型格式和分辨率降下来就行(见第二、五节)。

补充:想要强制走老式 –lowvram?先 –disable-dynamic-vram 把它关掉,再加 –lowvram。但我一般不建议——Dynamic VRAM 更省心。另外网上旧文提的 –normalvram、–medvram:我查了官方启动参数页,–medvram 根本不存在,–normalvram 新版也没列(旧文档有,属版本差异),这两个都别信、别加。

四、版本红利:升级到 0.29.x 白捡的优化

如果你还停在老版本,这节是 push 你升级的理由——新版有两处对低配机器实打实:

1. Dynamic VRAM 自动管理(当前稳定版在 Nvidia 上默认开启)。前面说了,它就是现代版”显存管家”,比手动 –lowvram 聪明。升级即享,不用配。
2. 视频流式转码(v0.29.0 引入)。官方 PR 描述是:视频转码从”把每一帧都缓存进内存”改成”流式处理”,内存压力大幅下降。这对做视频工作流又内存不够的人很关键。

标注:第 2 点是我从官方 PR 描述看到的,我方未在卡上实跑,具体降多少没有公开数字,你升级后可以自己感受。

实操闭环:10 分钟,给你的 4060 配一套低显存方案(现在就做)

前面讲原理,这段真刀真枪做一遍。做完你手里多一张”在 8G 显存上跑通的 FLUX 图”,还能确认降级真的生效了。

前提:你已有第 05 篇的基础文生图工作流(Load Checkpoint / Load Diffusion Model → 两个 CLIP Text Encode → KSampler → VAE Decode → Save Image)。丢了就按这 6 个节点重搭。
目标:把一张原本在 8G 上会 OOM 的 FLUX fp16 出图,改成 fp8 出图,显存降下来、图还能看。

步骤(照着点,别跳):
1. 换模型格式:把 Load Checkpoint 换成 Load Diffusion Model(或 Unet Loader (GGUF))。选 fp8 版——节点里把 weight_dtype 设成 fp8_e4m3fn;或直接选一个 .gguf 量化模型。
2. 别忘了 T5:FLUX 的话,CLIP/T5 加载也换量化版(DualCLIPLoader (GGUF) 加载量化 T5)。这是隐形大户,漏了必爆。
3. 降分辨率:Empty Latent 的宽高从 1536² 或 1024² 先降到 512² 或 768²,跑通了再说。
4. 开 Tiled VAE:把 VAE Decode 换成 VAE Decode (Tiled),tile_size 填 512、overlap 填 64。
5. (可选)启动参数:bat 里 python main.py 后加 –reserve-vram 1.5,给系统留 1.5G 显存。老版本想强制 –lowvram 就加 –disable-dynamic-vram –lowvram。
6. 出图:点 Queue Prompt,盯一眼显存占用。

检查点(你跑完应该看到):
① 图正常出来,控制台没有 CUDA out of memory;
② 显存占用比 fp16 版明显下降(fp8/GGUF 大约 5.5~7.5G,fp16 约 23G——数字为第三方估算,未亲自实测,以你本机为准);
③ 还爆 → 分辨率再降一档 / 开 –cache-none / 确认 T5 也换了量化版(T5 fp16 约 9G 是大户);
④ 图出来了但糊 → 不是显存问题,是分辨率太低或步数太少,回头调画质。

作业(选做):同一句提示词,fp16 和 fp8 各跑一张并排看,感受”量化到底损多少画质”——我自己测下来,FLUX fp8 和 fp16 肉眼差别很小,性价比极高。

五、核心旋钮:启动参数对照表(照着抄)

这些是我对照官方文档核实过的、真能影响显存的启动参数。加在 python main.py 后面:

参数 作用 什么情况用
–reserve-vram 1.5 给系统预留 N GB 显存 怕和系统抢显存崩,必加
–disable-dynamic-vram 关掉自动显存管理 想强制老式 –lowvram 时才用
–lowvram Dynamic VRAM 关掉时才生效 4–8G 老环境兜底
–novram 比 –lowvram 还狠 –lowvram 不够时最后手段
–disable-smart-memory 激进卸载到内存 显存极小要稳定性时
–cache-none 不缓存节点结果 内存也紧时
–preview-method none 关闭/保持节点预览图为 none(默认已是 none) 若你手动改过预览方式,可加回来省那点显存

一句话:日常只需 –reserve-vram 1.5;别碰 –lowvram 指望它救命(新版没用);真要极限省,再上 –cache-none。

六、常见坑(一次说全)

1. 只换底模忘了 T5:FLUX 的 T5 约 9G,是隐形炸弹,必须一起量化。
2. 迷信 –lowvram:新版 Dynamic VRAM 开着它不生效,白加。
3. 分辨率和显存的平方关系:2048² 的 latent 峰值约 8G,降到 512² 直接少一大截。
4. VAE 没开 Tiled:高清图解码瞬间拉满显存,换成 VAE Decode (Tiled) 就匀开了。
5. fp8 设在命令行而不是节点里:–fp8_e4m3fn-unet 对 FLUX 加载器常无效,要在 Load Diffusion Model 节点的 weight_dtype 里设。

七、参数速查表(照着抄)

场景 模型格式 分辨率 关键动作
4060/8G 跑 FLUX fp8 或 GGUF Q4_K_M 512²~768² 起步 T5 也量化 + VAE Decode (Tiled)
想保画质 fp16(仅 12G+ 卡) 1024² 起 –reserve-vram 1.5
视频显存爆 GGUF 量化 + 降帧 降分辨率 VAE Decode (Tiled) 时间分块
实在跑不起来 GGUF 最小档 512² –cache-none + –disable-dynamic-vram –lowvram

八、4060 / 8G 专项 & 我踩的坑

技巧:4060 这种 8G 卡,跑 FLUX 的最优解不是调启动参数,是换模型格式——fp8 或 GGUF 量化版,显存直接从 ~23G 砍到 6~12G,Dynamic VRAM 再帮你自动调度,基本稳。启动参数只补一个 –reserve-vram 1.5 就行。

踩坑经历:我有次为了”极限省显存”,把 –cache-none 和 –lowvram 一股脑全加上,结果图是出来了,但一张图跑了三分多钟,慢到怀疑人生。后来才懂:缓存和分块是”省内存换速度”,能不关就不关。低显存的第一杠杆永远是模型格式,不是这些开关。

声明:内容来源公开的各类媒体平台,若收录的内容侵犯了您的权益,请联系邮箱,本站将第一时间处理。
教程百科

从零开始用 ComfyUI 跑 MiniMax H3:本地安装、云端和视频工作流

2026-8-27 10:15:54

资讯

黄仁勋:AI 不会取代软件,市场恐慌「不合逻辑」

2026-2-5 12:58:20

搜索