如何压缩ComfyUI模型文件体积

AI技术
小华
2026-09-23

ComfyUI 环境下,模型文件(主要是 checkpoint / safetensors / lora / vae / controlnet 等)通常很大(几 GB 甚至十几 GB)。压缩体积一般从 模型格式、精度、拆分、清理冗余 几个方向入手。下面按实用程度给你一套方案。

一、优先使用更省空间的模型格式

✅ 1. 用 safetensors 替代 ckpt

  • ckpt 包含 Python pickle,体积大且有安全风险
  • safetensors 通常 更小、更安全、加载更快

转换方式:

python -m safetensors.torch.convert ckpt model.ckpt model.safetensors

二、降低模型精度(最有效)

✅ 2. 转成 fp16bf16

大多数模型用 fp32 存储,实际用 fp16 几乎无画质损失。
常见体积对比:

精度体积
fp32100%
fp16~50%
bf16~50%

转换示例(diffusers → safetensors fp16)

python -m torch.distributed.launch \
convert_diffusers_to_safetensors.py \
--model_path ./model \
--half

或用 ComfyUI 自带脚本:

python tools/convert_weights.py \
--input model.safetensors \
--output model_fp16.safetensors \
--half

三、拆分大模型(ComfyUI 推荐)

✅ 3. 把 checkpoint 拆成 model + vae + clip

ComfyUI 原生支持:

model/
├── model.safetensors
├── vae.safetensors
└── clip.safetensors

好处:

  • 可复用 VAE / CLIP
  • 避免重复占用空间
  • 更易管理

拆分工具:

  • ComfyUI/tools/split_tensors.py
  • sd-webuicheckpoint splitter

四、合并 & 删除冗余文件

✅ 4. 删掉不必要的东西

很多模型里包含:

  • 多个 VAE
  • 多余 text encoder
  • 训练元数据

清理手段:

  • 只保留 unet / vae / text_encoder
  • 删除 *.json / optimizer / epochs 等训练残留

五、LoRA / ControlNet 压缩

✅ 5. LoRA 用 safetensors + fp16

  • 原 LoRA:~200–500MB
  • 压缩后:~50–150MB

推荐做法:

  • 训练时直接输出 safetensors
  • 推理时加载 fp16

六、使用模型管理系统(高级)

✅ 6. 用 symlink / 模型池

  • 不复制模型
  • 用软链接共享
ln -s /models/SD15/model.safetensors ./ComfyUI/models/checkpoints/

七、不推荐的方式(注意)

❌ ZIP / 7z 压缩模型

  • ComfyUI 不能直接读取
  • 加载时要解压,反而更慢

❌ 过度量化(int8)

  • 画质明显下降
  • ComfyUI 支持有限

推荐组合方案(最实用)

safetensors + fp16 + 拆分 + 共享 VAE/CLIP
一般可做到:
  • SD1.5:4–7GB → 2–3.5GB
  • SDXL:12GB → 6GB 左右

如果你愿意,可以告诉我:

  • 用的是 SD1.5 / SDXL / Flux
  • 模型类型(checkpoint / lora / controlnet)
  • 当前文件大小和格式

我可以直接给你针对性压缩命令

亿速云提供售前/售后服务

售前业务咨询

售后技术保障

400-100-2938

7*24小时售后电话

官方微信小程序