ComfyUI 性能优化完整指南:显存档位、注意力提速与多GPU分工配置
【免费下载链接】ComfyUIThe most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI
启动 ComfyUI 后频繁报"out of memory",换大模型时生成明显变慢,多卡机器的显存又没被吃满。这篇文章讲显存档位、注意力提速和多 GPU 分工三类核心设置,每档给一条可直接复制的启动命令,你照着对号入座即可。
一、配置前先摸清硬件底牌
动手改参数前,先确定三件事:你属于哪一档显存、走哪套指令集、多卡怎么分工。按下表逐项对一下:
| 自检项 | 查看方式 | 决定什么 |
|---|---|---|
| 显存容量 | 任务管理器 / nvidia-smi | 第二节选哪一档配置 |
| 驱动版本 | nvidia-smi 输出 / 显卡驱动设置 | 能否启用较新的注意力优化 |
| GPU 品牌 | 设备管理器 / lspci 命令 | 选 Nvidia 还是 AMD 的参数写法 |
| 操作系统 | 系统设置 | 多实例部署时环境变量语法不同 |
ComfyUI 启动日志里会打印 Total VRAM 一行,可以顺手核对显存是否被正确识别。同时拥有两块不同品牌显卡的机器,先决定哪块卡跑 ComfyUI,另一块留着做其他用途。
二、三档显存的开箱配置
ComfyUI 自带动态显存调度,会自动在内存和显存之间腾挪模型。下面三档是它之上最常见的用法,每档只给你一条命令。
4GB 档:先跑通,不 OOM
python main.py --lowvram --reserve-vram 2--lowvram 让文本编码器挪到 CPU 执行,--reserve-vram 2 给系统预留 2GB,两个参数合起来把显存峰值压住,先保证能出图。
8GB 档:速度与稳定兼顾
python main.py --fp16-unet--fp16-unet 让主扩散模型用半精度运行,显存大约省一半,速度基本不掉。AMD 显卡用户再追加 --use-pytorch-cross-attention,选一套更稳的注意力实现。
12GB 以上档:把模型钉在显存里
python main.py --highvram--highvram 让用过的模型继续留在显存里,反复生成同一个模型时不用来回搬运,模型切换和连续出图都会快一截。完整参数清单可以参考源码里的 comfy/cli_args.py。
三、进阶玩法:多GPU与批量任务
单卡到此为止。有多张卡时,有两种分工思路,先想清楚再选。
思路一:一个实例吃多卡。
python main.py --cuda-device 0,1 --default-device 0这个实例同时看到 0 号和 1 号卡,以 0 号为主卡加载模型,第二张卡分担部分计算,适合单个工作流本身就很大的情况。内部分发的逻辑在 comfy/multigpu.py 里。
思路二:一卡一实例,拆开跑批量任务。
CUDA_VISIBLE_DEVICES=0 python main.py --port 8188 CUDA_VISIBLE_DEVICES=1 python main.py --port 8189两个独立实例各占一张卡、各用各的端口,批量任务通过 API 把提示词分发给两个端口,吞吐量近似翻倍。Windows 下在批处理文件里先写 set CUDA_VISIBLE_DEVICES=0 再执行相同命令即可。
两种思路不要混用,分工方式只能二选一,否则显存会互相挤占,反而更慢。
四、效果达标了吗:三个可量化观察点
优化有没有起效,不靠体感,看三个数字。
- 单张生成耗时:固定同一工作流、同一分辨率和步数,连跑三次取平均。
- 峰值显存:用 nvidia-smi 或任务管理器盯着生成期间的最大值。
- 跑完后的显存回落:开启 --highvram 后,任务结束时显存不应大幅释放,说明模型仍被钉在卡上。
| 观察点 | 调整前常见表现 | 调整后目标 |
|---|---|---|
| 单张生成耗时(同一工作流) | 波动大,换模型后明显变慢 | 稳定,且低于调整前平均值的七成 |
| 生成期间峰值显存 | 接近容量上限,偶发 OOM | 低于显存总容量的九成 |
| 重复生成同一模型 | 每次都要重新加载 | 不再重新加载,耗时基本持平 |
行动清单
- 记下你的显存容量和显卡品牌,从第二节选一条命令启动,先完整跑一次工作流。
- 遇到 OOM 先追加 --reserve-vram 1 重试,不要急着降分辨率。
- 12GB 以上显存开启 --highvram,确认同一模型反复生成时耗时稳定。
- 双卡机器优先"一卡一实例",用 API 分流批量任务,比单实例混用多卡更简单。
- 每改一组参数,就用同一工作流连跑两次,记下耗时和峰值显存,只保留真正更快的那份配置。
【免费下载链接】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),仅供参考