ComfyUI-ModelQuantizer 插件完全使用教程
1. 插件简介
GitHub原地址: https://github.com/lum3on/ComfyUI-ModelQuantizer
ComfyUI-ModelQuantizer 是一个专门用来给 AI 模型"瘦身"的插件包。就像你用压缩软件把大文件变小一样,这个插件可以让你的 AI 模型文件变得更小,但还能保持不错的效果。
这个插件能给我们带来什么好处?
- 让模型文件变小,节省硬盘空间(大概能缩小50%左右)
- 让模型跑得更快一些
- 特别适合显卡内存不够大的朋友
- 支持多种"瘦身"方式,就像有不同的压缩等级
2. 如何安装
方法一:用 Git 安装(推荐)
- 打开命令行,进入你的 ComfyUI 文件夹
- 输入以下命令:
cd ComfyUI/custom_nodes
git clone https://github.com/lum3on/ComfyUI-ModelQuantizer.git
方法二:手动下载
- 去 GitHub 页面下载 ZIP 文件
- 解压到
ComfyUI/custom_nodes/ComfyUI-ModelQuantizer文件夹里
安装依赖
cd ComfyUI/custom_nodes/ComfyUI-ModelQuantizer
pip install -r requirements.txt
安装完成后重启 ComfyUI 就可以使用了。
3. 节点详细解析
3.1 Model To State Dict 节点 - 模型拆解器
这个节点是干嘛的?
就像把一个包装好的礼品盒拆开,把里面的东西一个个拿出来。这个节点把 AI 模型拆解成一个个小零件,方便后面的处理。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | MODEL对象 | 必填 | 就像你要拆的礼品盒 | 输入的模型对象 | 直接连接加载模型的节点输出 |
输出:
- model_state_dict:拆解后的模型零件包
3.2 Quantize Model to FP8 Format 节点 - 超级压缩器
这个节点是干嘛的?
这是最厉害的压缩器,能把模型压缩到极致,但需要很好的显卡支持。就像用最高压缩比的压缩软件,效果很好但要求比较高。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model_state_dict | model_state_dict | 模型零件包 | 必填 | 上一步拆解出来的零件 | 模型状态字典 | 连接 Model To State Dict 的输出 |
| fp8_format | fp8_format | float8_e4m3fn / float8_e5m2 | float8_e4m3fn | 选择压缩方式,就像选择压缩软件的不同算法 | FP8格式类型 | 一般选 float8_e4m3fn 兼容性更好 |
输出:
- quantized_model_state_dict:压缩后的模型零件包
3.3 Quantize Model Scaled 节点 - 智能压缩器
这个节点是干嘛的?
这是个聪明的压缩器,会先分析模型的特点,然后选择最合适的压缩方式。就像智能洗衣机会根据衣服材质选择洗涤程序。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model_state_dict | model_state_dict | 模型零件包 | 必填 | 要压缩的模型零件 | 模型状态字典 | 连接 Model To State Dict 的输出 |
| scaling_strategy | scaling_strategy | per_tensor / per_channel | per_channel | 选择压缩策略:per_tensor像批量处理,per_channel像精细处理 | 缩放策略 | per_channel 质量更好但慢一些 |
| processing_device | processing_device | Auto / CPU / GPU | Auto | 选择用什么来处理:让系统自动选择 | 处理设备 | 一般选 Auto 让系统自动判断 |
| output_dtype | output_dtype | Original / float16 / bfloat16 | float16 | 选择最终的数据格式,就像选择图片的保存格式 | 输出数据类型 | float16 是最常用的,兼容性好 |
输出:
- quantized_model_state_dict:智能压缩后的模型零件包
3.4 Save As SafeTensor 节点 - 模型保存器
这个节点是干嘛的?
就像把处理好的文件保存到硬盘上,这个节点把压缩后的模型保存成文件,方便以后使用。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| quantized_model_state_dict | quantized_model_state_dict | 压缩后的模型零件包 | 必填 | 要保存的压缩模型 | 量化后的状态字典 | 连接压缩节点的输出 |
| absolute_save_path | absolute_save_path | 文件路径 | 必填 | 保存文件的完整路径,包括文件名 | 绝对保存路径 | 例如:D:/ComfyUI/models/checkpoints/my_model.safetensors |
输出:
- 无输出(这是个终点节点)
3.5 ControlNet FP8 Quantizer 节点 - ControlNet 专用压缩器
这个节点是干嘛的?
这是专门为 ControlNet 模型设计的压缩器,就像专门洗丝绸的洗涤程序,针对性更强,效果更好。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| controlnet_model | controlnet_model | 下拉选择 | 必选 | 从你的 ControlNet 文件夹里选择要压缩的模型 | ControlNet模型选择 | 自动显示 models/controlnet/ 里的文件 |
| fp8_format | fp8_format | float8_e4m3fn / float8_e5m2 | float8_e4m3fn | 选择压缩格式,就像选择压缩软件的算法 | FP8格式类型 | float8_e4m3fn 推荐,兼容性好 |
| quantization_strategy | quantization_strategy | per_tensor / per_channel | per_channel | 压缩策略:per_tensor快但粗糙,per_channel慢但精细 | 量化策略 | per_channel 质量更好 |
| activation_clipping | activation_clipping | True / False | True | 开启智能修剪,去掉异常数据 | 激活剪裁 | 开启能提高压缩质量 |
| custom_output_name | custom_output_name | 文本输入 | 可选 | 自定义输出文件名 | 自定义输出名称 | 不填会自动生成名字 |
| calibration_samples | calibration_samples | 数字 | 100 | 校准样本数量,就像调音器的精度 | 校准样本数 | 10-1000之间,100是平衡点 |
| preserve_metadata | preserve_metadata | True / False | True | 保留原始模型的信息标签 | 保留元数据 | 建议开启,方便以后识别 |
输出:
- status:操作状态信息
- metadata_info:模型信息详情
- quantization_stats:压缩统计数据
3.6 ControlNet Metadata Viewer 节点 - ControlNet 信息查看器
这个节点是干嘛的?
就像文件的属性查看器,能显示 ControlNet 模型的详细信息,帮你了解模型的各种参数。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| controlnet_model | controlnet_model | 下拉选择 | 必选 | 选择要查看信息的 ControlNet 模型 | ControlNet模型选择 | 从 models/controlnet/ 文件夹选择 |
输出:
- metadata:模型的原始信息
- tensor_info:模型内部结构信息
- model_analysis:模型分析报告
3.7 GGUF Quantizer 节点 - GGUF 格式转换器
这个节点是干嘛的?
这是个格式转换器,能把模型转换成 GGUF 格式。就像把视频文件转换成不同格式,适合不同的播放器使用。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | MODEL对象 | 必填 | 要转换的模型 | 输入模型对象 | 连接模型加载节点 |
| quantization_type | quantization_type | F16/Q4_K_M/Q5_0/Q8_0/ALL | Q4_K_M | 选择压缩等级,就像选择视频的画质 | 量化类型 | Q4_K_M 是平衡选择 |
| output_path_template | output_path_template | 文本输入 | 必填 | 输出文件的路径模板 | 输出路径模板 | 例如:models/unet/quantized/ |
| is_absolute_path | is_absolute_path | True / False | False | 是否使用绝对路径 | 绝对路径模式 | False 使用相对路径更安全 |
| setup_environment | setup_environment | True / False | True | 是否自动设置环境 | 环境设置 | 首次使用建议开启 |
| verbose_logging | verbose_logging | True / False | True | 是否显示详细日志 | 详细日志 | 开启能看到详细进度 |
输出:
- status_message:操作状态信息
- output_gguf_path_or_dir:输出文件路径
4. 使用技巧和建议
4.1 新手推荐流程
- 先用 Quantize Model Scaled 节点,选择
per_channel和float16 - 这样能得到不错的压缩效果,又不会太复杂
- 压缩后的模型大概能小50%左右
4.2 高级用户技巧
- 追求极致压缩:使用 Quantize Model to FP8 Format 节点
- 批量处理:可以同时运行多个压缩节点
- 质量优先:选择
per_channel策略 - 速度优先:选择
per_tensor策略
4.3 ControlNet 专用建议
- 使用 ControlNet FP8 Quantizer 节点
- 开启
activation_clipping提高质量 - 设置
calibration_samples为 100(平衡点) - 用 ControlNet Metadata Viewer 对比压缩前后的差异
5. 常见问题解答
Q1:压缩后的模型效果会差很多吗?
A:一般来说,使用 per_channel 策略和 float16 格式,效果差异很小,但文件大小能减少约50%。
Q2:我的显卡不支持 FP8 怎么办?
A:可以使用 Quantize Model Scaled 节点,选择 CPU 处理,或者直接用 float16 格式。
Q3:GGUF 转换为什么需要这么多内存?
A:GGUF 转换需要同时加载原模型和转换后的模型,所以需要大量内存(建议96GB以上)。
Q4:压缩后的模型可以直接在 ComfyUI 里使用吗?
A:可以的,压缩后的模型完全兼容 ComfyUI,加载方式和普通模型一样。
Q5:哪种压缩方式最好?
A:
- 日常使用:Quantize Model Scaled + per_channel + float16
- 极致压缩:Quantize Model to FP8 Format + float8_e4m3fn
- ControlNet:ControlNet FP8 Quantizer + per_channel + activation_clipping
6. 系统要求
最低要求:
- Python 3.8+
- PyTorch 2.0+
- 8GB 内存
推荐配置:
- CUDA 显卡(支持 FP8)
- 16GB+ 内存
- 足够的硬盘空间
GGUF 转换特殊要求:
- 96GB+ 内存
- 充足的临时存储空间
7. 实用工作流程示例
7.1 基础模型压缩流程
加载模型 → Model To State Dict → Quantize Model Scaled → Save As SafeTensor
7.2 ControlNet 专用流程
ControlNet FP8 Quantizer → 查看压缩结果
7.3 GGUF 转换流程
加载模型 → GGUF Quantizer → 保存结果
这个插件功能强大,能够满足不同用户的压缩需求。新手建议从 Quantize Model Scaled 开始尝试,有经验的用户可以探索更高级的 FP8 压缩和 GGUF 转换功能。记住,压缩是一个平衡的艺术——在文件大小、处理速度和质量之间找到最适合你的平衡点!