优化 ComfyUI 的模型与运行效率,通常可以从 模型本身、加载方式、推理配置、硬件利用、工作流设计 五个层面来做。下面按实用程度给你一个系统性的优化指南。
一、模型层面的优化(最关键)
1. 使用更高效的模型格式
ComfyUI 支持多种模型格式,优先选择推理更快的:
| 模型格式 | 说明 | 推荐 |
|---|
| safetensors | 安全、加载快 | ✅ 首选 |
| ckpt | 旧格式,加载慢 | ❌ 不推荐 |
| fp16 / bf16 | 半精度 | ✅ 推荐 |
| fp32 | 精度高但慢 | ❌ 除非必要 |
| INT8 / GGUF | 低精度推理 | ✅ 低显存首选 |
✅ 建议
- 全部转成
safetensors - 显存不足 → 用 fp16 / bf16
- 极低显存 → 用 GGUF / INT8
2. 量化模型(显存优化神器)
使用 量化模型 是 ComfyUI 最立竿见影的优化方式。
常用方式:
- GGUF 模型(SDXL / SD1.5)
- bitsandbytes NF4 / INT8
- torchao / optimum
✅ 效果:
二、ComfyUI 推理参数优化
3. 调整采样参数
在 KSampler / KSamplerAdvanced 中:
✅ 推荐设置:
- Steps:20–30(不必 50+)
- CFG Scale:5–7
- Sampler:
DPM++ 2M / Euler a - Scheduler:
karras / normal
❌ 避免:
4. 启用 xformers / flash attention
在启动参数中:
--xformers
或(新版本):
--use-flash-attention
✅ 效果:
⚠️ 注意:
三、显存与硬件优化
5. 显存管理设置
在 extra_model_paths.yaml 或启动参数中:
--medvram
--lowvram
| 参数 | 适用 |
|---|
| --medvram | 8–12GB 显存 |
| --lowvram | ≤8GB 显存 |
| 不加 | ≥16GB |
✅ 建议:
- 不要同时开 medvram + lowvram
- 先用 medvram,再 lowvram
6. 模型分块加载(大型模型)
对 SDXL / Flux / SD3:
- 使用 split attention
- 避免同时加载多个 checkpoint
- 使用 模型卸载节点(Model Unload)
四、ComfyUI 工作流优化
7. 减少重复加载
❌ 错误做法:
- 每个节点都重新加载模型
- 多次 VAE 编码 / 解码
✅ 正确做法:
8. 使用高效节点
推荐替换:
| 原节点 | 优化节点 |
|---|
| 普通 Loader | Diffusers Loader |
| 多次 VAE Decode | 单次 Decode |
| 重复采样 | 批处理采样 |
五、进阶优化(高阶)
9. 使用 TensorRT(NVIDIA 专用)
- 推理速度提升 2–3x
- 仅支持部分模型
- 需要导出
.engine
✅ 适合:
10. 模型合并与裁剪
- 删除无用 LoRA / Text Encoder
- 合并常用 LoRA 到 Checkpoint
- 减少 CLIP 模型数量
六、推荐组合(直接抄作业)
✅ 中高配(12–16GB)
--xformers --medvram
- fp16 safetensors
- DPM++ 2M Karras
- 20 steps
✅ 低配(≤8GB)
--xformers --lowvram
- GGUF 模型
- 512–768 分辨率
- 15–20 steps
七、排查卡顿 / 爆显存
如果还慢,检查:
- 是否后台有其他程序占用显存
- 是否在用 SDXL 512 分辨率(不合理)
- 是否同时加载多个大模型
- ComfyUI 是否更新到最新版
如果你愿意,可以直接告诉我:
- 显卡型号 + 显存
- 用 SD1.5 / SDXL / Flux?
- 主要做图 / 视频 / 训练?
我可以给你 一套完全针对你机器的 ComfyUI 优化方案。