34GB砍到20GB且零质量损失:minimax-h3-nvfp4-convrot的AdaLN剪枝查找表技术深度剖析
🎬minimax-h3-nvfp4-convrot是专为 ComfyUI 打造的MiniMax H3 视频生成模型量化权重库。MiniMax H3 是一个 33B 参数的全模态「视频+同步音频」生成模型,原版权重对显存要求极高。本仓库通过 NVFP4 混合量化、AdaLN 剪枝查找表和 INT8 ConvRot 旋转量化三大技术,把 34GB 的模型砍到 20GB——且官方报告输出质量零损失,让本地部署 768p 24fps 带音效的视频生成成为可能。
📦 项目速览:这个仓库能帮你做什么
MiniMax H3 的生成规格为768p / 24fps / 4~15 秒视频,附带 32kHz 立体声同步音频(2K 输出需要单独的 H3-Regenerate-2K 模块,不在本仓库范围内)。所有文件都是 ComfyUI 单文件 checkpoint,即下即用。
文件名遵循minimax_h3_<fl2va|ref2va>_<variant>.safetensors规则,两种前缀对应两种工作流:
| 模式 | 含义 |
|---|---|
fl2va | 首尾帧模式:0 张图 = 文生视频,1~2 张图 = 帧条件生成 |
ref2va | 全参考模式:最多 9 张图 / 3 段视频 / 3 段音频参考 |
完整说明见 README.md。
✂️ 核心技术一:AdaLN 剪枝——131亿参数坍缩成一张小表
这是「34GB 砍到 20GB」的关键。
原理:AdaLN 权重其实只依赖时间步
Comfy-Org 在官方优化时发现一个惊人的事实:H3 的AdaLN 调制网络占总参数的 39%(33.1B 中的 13.1B),但这些权重只依赖扩散时间步(timestep),与视频内容无关。既然推理时使用的是一组固定的时间步,那这一大堆参数在运行时等价于一张小小的查找表(lookup table)。
剪枝文件里具体做了什么
- 删除:
time_embedder.*和所有*.adaln_proj.linear权重(每个 block 一张[96768, 2688]的大矩阵) - 植入:从 Comfy-Org 剪枝版原样拷贝的
adaln_t_table([1025, 8],F32)以及坍缩后的*.adaln_proj.linear([96768, 8],F16) - 其余层:一字未动
最终结果:892 个张量,20GB,ComfyUI 官方确认无质量损失。
⚠️必须知道的坑:ComfyUI 的
MiniMaxH3Model是通过adaln_t_table.shape[1]的形状来检测剪枝架构的。剪枝文件不能携带config元数据块——因为model_detection.py会在形状检测之后再应用 config,一个残留的time_embed_dim: 2688会静默覆盖正确值导致加载失败。这是手工制作此类文件时最容易踩的雷。
⚡ 核心技术二:NVFP4 + FP8 + BF16 三层混合量化
剪枝之外的体积压缩,来自按层定制的混合量化配置,通过convert-to-quant(ctq)CLI 加手工构建的逐层配置完成:
| 层范围 | 格式 | 数量 |
|---|---|---|
blocks.{2..46}.mlp.fc1/mlp.fc2 | NVFP4(主力压缩) | 90 层 |
blocks.{2..46}.attn.qkv_proj、.adaln_proj.linear | FP8(tensor-wise scale) | 90 层 |
前 2 + 后 3 个 block、attn.out_proj、全部输入/输出投影等 | BF16(精确保留) | 86 层 |
其中「前 2 层 + 后 3 层 + 输出投影保留高精度」是很讲究的经验法则:这些层在原 checkpoint 中就以 F32 存储,本身就是敏感性信号。完整规则可对照仓库内的配置文件:
- 基础 NVFP4/FP8 配置:minimax_h3_layer_config.json
- INT4 ConvRot 配置:minimax_h3_layer_config_int4_convrot.json
⚠️NVFP4 文件只支持 Blackwell 架构(SM ≥ 10.0/12.0,即 RTX 50 系、B100/B200),旧卡无回退方案。
🌀 核心技术三:INT8 ConvRot 让注意力层「同体积、更快」
pruned_nvfp4_convrot_int8是作者推荐的旗舰文件(20GB,已在 ComfyUI 实测)。它在 NVFP4 剪枝版之上,把 45 个attn.qkv_proj层换成了INT8 ConvRot量化:
ConvRot 的思路:用分组 Hadamard 旋转预先旋转权重,把离群值的能量「摊平」,让 INT8 的狭窄动态范围装得下——量化差距大幅缩小到接近 FP8,而 INT8 tensor-core 的吞吐又普遍高于 FP8,同体积下计算更快。
工程上有两个细节值得学习:
- 从原始 BF16 权重量化,而不是从 FP8 张量转——否则会叠加双重量化误差。整条流水线是「抽取 → 单独量化 → 拼回」(extract → quantize → splice),而非整体重新量化;
- 45 个张量
in_features均为 5376,能被 256 整除,--dynamic-convrot自动选定最大的兼容 4 的幂分组大小,量化干净利落。
另外仓库里还有一个A/B 测速对照组:pruned_nvfp4_fp8把同样位置保持 FP8,两者体积相同,专门用于对比 ConvRot 与 FP8 的推理速度——这是「不赌质量、只比速度」的科学对照组设计。
🧪 非 Blackwell 用户的逃生舱:INT4 W4A4 ConvRot(实验性)
如果你的显卡跑不了 NVFP4,还有三个fl2va 专用的 INT4 变体,基于 ConvRot 论文(权重+激活双旋转,无需重训练即可 W4A4):
| 文件 | 体积 | 说明 |
|---|---|---|
| minimax_h3_fl2va_int4_convrot_simple.safetensors | 25GB | 未剪枝版 |
| minimax_h3_fl2va_pruned_int4_convrot_simple.safetensors | 17GB | 剪枝版,最省 |
| minimax_h3_fl2va_pruned_mixed_int4_int8_convrot_simple.safetensors | 20GB | INT4 基础 + 48 层升回 INT8 保质量 |
混合版的设计有论文依据:纯 W4A4 在平滑低频区域会因 INT4 表达能力不足而掉质量(FLUX 上 FID 10.07→12.32),论文的解法是把约 20% 的层升回 INT8(int8_ratio: 0.2),本文件升回 48 层(41 个mlp.fc1+ 4 个mlp.fc2+ 3 个attn.qkv_proj)。
⚠️ 三个 INT4 文件均用
--simple(RTN 取整)量化,质量尚未评测,只确认能端到端加载出图,请谨慎使用;另外 Ampere/Ada 上才有原生 INT4 MMA 加速,Blackwell 上反而回退 INT8 路径,无速度优势。
🚀 快速上手:三步在 ComfyUI 跑起来
第 1 步:获取权重文件
git clone https://gitcode.com/hf_mirrors/rockerBOO/minimax-h3-nvfp4-convrot第 2 步:下载配套的文本编码器与 VAE
从 Comfy-Org 的 MiniMax-H3 仓库获取(文本编码器是 Qwen3-VL 32B,体积也不小,Blackwell 用户可搭配其官方nvfp4_awq版本),分别放入 ComfyUI 的对应目录:
- 扩散模型 →
models/diffusion_models - 文本编码器 →
models/text_encoders - VAE →
models/vae
第 3 步:选用官方 I2V / T2V / R2V 工作流模板,加载对应模式的文件(首尾帧工作流选fl2va,参考图工作流选ref2va),生成 768p 视频。
🤔 高频问题 FAQ
Q1:旧显卡(非 Blackwell)能用吗?NVFP4 全系文件不行。非 Blackwell 用户只能选 INT4 / 混合 INT4-INT8 的实验性文件,需 ComfyUI 编译支持comfy-kitchen的TensorCoreConvRotW4A4Layout。
Q2:剪枝文件能在 ComfyUI 之外用吗?不建议。剪枝架构的识别依赖 ComfyUI 的形状检测,在其它框架中未剪枝文件更稳妥。
Q3:质量到底有没有损失?剪枝的 AdaLN 部分 Comfy-Org 官方报告零损失;NVFP4 系列之所以被推荐,是因为采用保守成熟的格式且确认可用;INT4 系列质量尚无评测结论。
Q4:授权要注意什么?本仓库继承 MiniMax H3 社区许可证,文本副本见 LICENSE。注意该协议存在地域限制(欧盟、英国、韩国、美国为排除区域)与年度营收阈值条款,商用前请仔细阅读。
📝 总结
minimax-h3-nvfp4-convrot 展示了大模型本地化的三个经典手段如何组合发力:结构剪枝(利用 AdaLN 只依赖时间步的特性坍缩成查找表,砍掉 39% 参数)、混合位宽量化(NVFP4 主力 + FP8 注意力 + BF16 敏感层保底)、旋转量化(ConvRot 让 INT8 逼近 FP8 质量又更快计算)。对想在消费级 Blackwell 显卡上本地生成带音效视频的创作者,pruned_nvfp4_convrot_int8(20GB)是当前最稳的选择。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考