
ComfyUI 显存优化4GB到24GB【免费下载链接】ComfyUIThe most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUICUDA out of memory. Tried to allocate 2.35 GiB (GPU 0; 8.00 GiB total capacity)——跑过一点大模型的多半见过这行报错。要注意的是8GB 的总额度里浏览器和系统先吃掉一块真正留给模型的远没那么多。ComfyUI 显存管理的核心思路是别把东西全装进来你只需要按自己的卡挑对启动参数大多数时候不需要降分辨率。显存调优误区新手常见的 3 种误判显存不够 只能降分辨率其实没那么玄乎——ComfyUI 的 VRAM 水位是可以往下调的--lowvram会让它压低显存占用非动态显存模式下直接把文本编码器挪到 CPU 跑--reserve-vram能告诉它给系统留几 GB代价是速度慢一点但 512px 不是你的上限。插上第二张卡就能自动加速默认情况下 ComfyUI 只用一张卡第二张卡对它是隐形的。想用起来得开两个实例手动分流或者用--cuda-device指定卡号不做这一步等于没插。参数调得越多越快动态显存默认是开着的模型会在显存里自动进进出出默认行为通常比你手工堆一堆参数更稳。先跑默认真撞 OOM 了再动参数顺序反了容易把自己调崩。原理速通模型自动卸载机制在做什么把显存想象成厨房台面模型就是锅——你一次只用得起两口锅用不到的应该收进柜子而不是全摆在台面上。ComfyUI 默认就是这么干的模型按需加载每次任务启动前它会检查空闲显存不够就把部分模型从显存挪回系统内存日志里能看到N models unloaded.。启动时它还会自评一个 VRAM 状态从高到低大致是 NORMAL_VRAM、LOW_VRAM、NO_VRAM并打印一行Set vram state to: ...你的卡现在是什么状态看这行日志就行。这套调度的实现放在 comfy/model_management.py想深究可以从这里入手。场景处方按显存档位选启动参数小显存启动参数4~6GB新手最容易卡住的一档SD1.5 跑 512px 勉强可以SDXL 开始喘再大就 OOM。先别急着降分辨率看看下面这组。python main.py --lowvram \ # 小显存保护压低下限文本编码器可放 CPU --reserve-vram 1 \ # 给系统和浏览器留 1GB 显存 --fp16-unet # 扩散模型用 fp16权重占位减半判断依据显存小于 6GB或者 512px 都经常 OOM先上这套。还不够的话代码里留了个更狠的--novram当兜底——整条链路基本都靠系统内存撑着慢但能出图。8GB 主流卡的甜蜜点配置如果你的卡不是这个量级往下滑。8GB 的卡3070、4070 这一档正好卡在 SDXL 1024px 的甜蜜点UNet、文本编码器、VAE 加上激活值刚好挤得下。不用加什么特殊参数重点是把精度选项对齐。python main.py --fp16-unet \ # 扩散模型 fp16 运行 --bf16-vae # VAE 走 bf16解码时峰值显存更友好判断依据8GB 卡、主力工作流是 SDXL 或同类中型模型这套就是终点不用再折腾。--bf16-vae值得留——出图解码那一瞬间是显存峰值最容易越界的时候。下面是换成这套配置后同一台 8GB 卡跑 512×512 工作流前后的对比单次配置下的个人数据仅供量级参考指标调之前调之后20 步生成耗时25 秒左右中途 OOM 过一次12 秒左右全程无报错峰值显存7.5GB 往上开着浏览器就炸稳定在 6GB 以内切换不同工作流明显卡顿模型在内存间搬运基本无感大显存压榨参数12GB12GB 往上问题反过来了显存明明有富余但模型按默认行为用完就卸回系统内存你频繁换 checkpoint 时每次都要等一轮搬运。python main.py --highvram \ # 模型常驻显存用完不卸载 --fp16-unet # 仍保持 fp16留点余量判断依据你平时要用的几个模型体积之和小于显存容量才适合开--highvram。如果经常贴极限跑超大模型开它反而会把自动卸载保命变成直接 OOM得不偿失。多 GPU 端口分配双卡手动分流 ⚙️ComfyUI 不会把一个任务摊到两张卡上跑想榨干双卡实际做法是一卡一实例、各占一个端口默认端口是 8188。# 终端 1占用 0 号卡 python main.py --cuda-device 0 --port 8188 # 终端 2占用 1 号卡 python main.py --cuda-device 1 --port 8189判断依据跑批量生成或者两张卡同时跑不同模型用 API 把任务分别发往 8188 和 8189 就行。只是单工作流的话用--cuda-device指到强的那张卡即可没必要开两个实例。长效维护3 个显存盯梢习惯几条不用记笔记的习惯第一每次启动扫一眼日志开头Total VRAM ... MB和Set vram state to: ...是它的自报家底哪天状态突然掉到 LOW_VRAM多半是后台开了吃显存的东西。第二升级版本后拿常用工作流跑一遍注意力实现和调度逻辑隔几个版本就变一次新参数能干啥可以看 comfy/cli_args.py 里的说明。第三偶尔清理工作流多存大图缓存的节点都在悄悄占显存删掉两三个没用的节点有时比任何参数都管用。显存参数不是咒语只是你手里这块卡的音量旋钮。【免费下载链接】ComfyUIThe most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考