MiniMax-H3 · fl2va × ref2va Hybrid b25-49 (W4A8, ~12.5 GB)
A 4-bit (asym_w4a8_int8) build of the community-standard b25-49 hybrid — the variant that, as far as I could
find, did not exist in W4A8 form before this upload. Single file, drop-in for ComfyUI's stock Load Diffusion Model.
minimax_h3_hybrid_fl2va_ref2va_b25-49_w4a8_mixed.safetensors 12,540,858,008 bytes (11.68 GiB) 1132 tensors
What b25-49 means
MiniMax-H3 ships two checkpoints with identical architecture and tensor layout:
- fl2va — first/last-keyframe conditioning, noticeably better visual/audio quality, no reference slots.
- ref2va — adds image/video/audio reference conditioning, slightly lower base quality.
A tensor-by-tensor comparison shows the two are effectively identical everywhere except the per-block
adaln_proj weights (the AdaLN modulation projections that route conditioning signal into each block).
The bX-49 hybrids keep fl2va as the base and take adaln_proj from ref2va for blocks X–49 only.
b25-49 = blocks 25–49 from ref2va (the community default balance point). b30-49 leans quality,
b20-49/b15-49 lean reference adherence.
How this file was built — no retraining, no re-quantization
This is a tensor transplant on already-quantized files, so no additional numerical re-quantization error is introduced:
| Role | Source file | Size |
|---|---|---|
| Skeleton | Kijai/MiniMax-H3-experimental → minimax_h3_fl2va_pruned_w4a8_mixed.safetensors | 11.68 GiB |
| Donor | same repo → minimax_h3_ref2va_pruned_w4a8_mixed.safetensors | 10.96 GiB |
| Operation | byte-for-byte copy of the skeleton, then overwrite blocks.25–49.adaln_proj.linear.{weight,bias} with the donor's values | 50 tensors, 43,545,600 bytes |
The file header (143,408 B, including __metadata__._quantization_metadata) is byte-identical to the skeleton,
so the quantization configuration is untouched and the data region keeps a 1:1 offset mapping.
Verification
- Non-quantized tensors: 332 / 332 byte-identical to the existing
b25-49INT8 hybrid — including all 100 per-blockadaln_projtensors, 200 norms, 17token_refinertensors and 15 top-level tensors. - All 200 quantized linear layers dequantized per the official
comfy-kitchenreference and compared against the INT8 hybrid: cosine 0.99725–0.99731 (mean 0.99730), relative RMS difference 7.33–7.42 % — the known size of the W4A8 quantization step (int8's own RMS error measures 0.88 %), i.e. the same weights at a coarser quantization, not a different model. - Weight lineage spot-check: this file's linears sit 7.33–7.36 % from the fl2va-side hybrid and 7.82–8.49 % from a
pure ref2va file — confirming the fl2va side was kept, as the
bX-49definition requires. - Output correctness on-device:
cos = 0.999948against a dequantize-then-matmul reference.
Quantization profile
- 200 block linears (
attn.qkv_proj,attn.out_proj,mlp.fc1,mlp.fc2× 50 blocks):{"format": "asym_w4a8_int8", "group_size": 16, "convrot": true, "convrot_groupsize": 256} token_refiner, norms,adaln_proj, patch projections,condition_projand output layers stay at BF16/F16/F32.- Configuration is carried in
__metadata__._quantization_metadata(the same convention as the source file), not in per-tensorcomfy_quantblobs.
Hardware note (important)
The native W4A8 kernel path requires compute capability ≥ 8.0 (Ampere or newer) —
AsymW4A8Int8Layout.MIN_SM_VERSION = (8, 0). On older cards the runtime falls back to the portable/eager
implementation, which is correct but not faster:
Path (GTX 1660 SUPER, sm_75, one mlp.fc1 28672×5376 layer, M=4096) | Time |
|---|---|
| W4A8 (eager fallback, what actually runs on sm_75) | 219 ms |
| INT8 convrot (CUDA path) | 83 ms |
| BF16 matmul baseline | 475 ms |
So on Turing / GTX 16-series prefer the INT8 hybrid: it is ~2.6× faster per layer there, and this W4A8 file's only remaining benefit is halved file size. On sm_80+ this file is the better choice (smaller and faster). Note that quantization metadata is still detected fine on older cards — the format is not "disabled", the kernel simply runs through the fallback.
Usage (ComfyUI)
- Put the file in
ComfyUI/models/diffusion_models/. - Load with the stock Load Diffusion Model node (requires a ComfyUI version with INT8 ConvRot + W4A8 support;
the log should show
Detected mixed precision quantization). - The model routes as ref2va: keyframes via
MiniMaxH3AddKeyframes, subject/scene/style references viaMiniMaxH3ReferenceToVideo— both can be used in the same generation. Plain text-to-video and first-frame-only workflows work as usual. - Use the usual H3 text encoder and video/audio VAEs.
Credits & license
- Original weights: MiniMaxAI/MiniMax-H3 (FL2VA + REF2VA).
- ComfyUI packaging: Comfy-Org/MiniMax-H3.
- Quantized conversions used as source: Kijai/MiniMax-H3-experimental.
- Hybrid idea (adaln-only block splice): smhfacct/Minimax-H3-fl2va-ref2va-hybrid-models, also packaged by diobrando0.
No training, fine-tuning or gradient optimization was involved — this is tensor-level weight selection on top of existing quantized conversions. The merge/conversion is released under Apache-2.0; the underlying MiniMax H3 weights remain subject to the MiniMax H3 Community License. Please review it before use.
中文摘要
这是社区默认档 b25-49 混合模型的 W4A8 4bit 版本(11.68 GiB,1132 张量),此前社区没有这一档的 4bit 成品。
做法是在同一套量化文件之间做张量搬运,不重新量化:以 Kijai 的 fl2va_pruned_w4a8_mixed 为骨架,
只把 blocks.25–49 的 adaln_proj 覆盖为 ref2va 的值(50 个张量),header 与量化配置逐字节保持不变。
验证:332 个未量化张量与原 b25-49 INT8 版逐字节相同;200 个量化层反量化后余弦 0.9973、相对差 7.35%, 即 W4A8 量化步长本身的量级(int8 自身误差仅 0.88%),确认为同一模型的不同量化档。
硬件提示:W4A8 原生内核要求 sm_80+(Ampere 及以上)。在 sm_75(GTX 16 系 / Turing)上会走软件回退路径, 结果正确但更慢——同层实测比 INT8 慢约 2.6 倍。老卡请用 INT8 版;sm_80+ 的卡用这版既小又快。