MiniMax-H3 · fl2va × ref2va Hybrid b25-49 (W6A8, ~14.88 GiB)
A 6-bit weight / 8-bit activation build of the community-standard b25-49 hybrid. Single file, drop-in for ComfyUI's stock Load Diffusion Model.
minimax_h3_hybrid_fl2va_ref2va_b25-49_w6a8.safetensors 15,983,746,636 bytes (14.88 GiB) 1151 tensors
Between the two extreme choices: W4A8 (11.68 GiB, coarser 4-bit) and INT8 (20.97 GB, biggest).
Per Comfy-Org's own comfy-kitchen notes, the 6-bit path trades 1.5× the bytes of 4-bit for ~3× lower
weight error — it is the accuracy-leaning middle of the H3 quantization family.
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
A tensor transplant between already-quantized files, so no additional numerical error is introduced:
| Role | Source file | Size |
|---|---|---|
| Skeleton | minimax_h3_fl2va_pruned_w6a8.safetensors (Comfy-Org / Kijai lineage W6A8 conversion) | 14.88 GiB |
| Donor | minimax_h3_ref2va_pruned_w6a8.safetensors (same lineage) | 14.88 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 (120,112 B) is byte-identical to the skeleton, so every per-layer comfy_quant
descriptor is untouched and the data region keeps a 1:1 offset mapping. Same recipe as the W4A8 sibling
below — only the quantization level of the two sources differs.
Verification
- Header byte-identical to the skeleton; file size unchanged (15,983,746,636 B); data region tail-aligned.
- All 100 per-block
adaln_projtensors checked one by one: blocks 0–24 identical to the skeleton, blocks 25–49 identical to the donor, 0 anomalies. - Non-quantized tensors sampled across the file: identical to the skeleton (except the 50 intentionally
replaced
adaln_projtensors). - Cross-quantization check (the strongest evidence that the hybrid semantics are right):
adaln_projvalues are quantization-independent, so this file's blocks 0–24 must equal the INT8 b25-49 hybrid's blocks 0–24, and its blocks 25–49 must equal that file's blocks 25–49 — both hold, byte for byte, even though the two files carry different quantization. The same identity was previously verified against Kijai's W4A8 conversions.
Quantization profile
- 201 layers
{"format": "w6a8_int8", "group_size": 32, "convrot": true, "convrot_groupsize": 256}= 200 block linears (attn.qkv_proj,attn.out_proj,mlp.fc1,mlp.fc2× 50 blocks) +condition_proj. Weight is int8[N, 3K/4]holding uniform 6-bit codes (code − 32, no codebook), plus an fp8 per-groupweight_s_reland a fp32 per-channelweight_s_channel. - 8
token_refinerlinears:int8_tensorwise. - Norms,
adaln_proj, patch projections and output layers stay at BF16/F16/F32. - Configuration lives in per-tensor
.comfy_quantblobs (this file has no__metadata__block).
Hardware note
w6a8_int8 shares the layout class and kernels with asym_w4a8_int8
(AsymW4A8Int8Layout, MIN_SM_VERSION = (8, 0)), so the native fast path requires compute
capability ≥ 8.0 (Ampere or newer). On older cards it still loads and computes correctly, but runs
through the portable fallback — measured on a GTX 1660 SUPER (sm_75), the W4A8 fallback was ~2.6× slower
per layer than INT8 convrot. If you are on Turing / GTX 16-series, the INT8 build is the faster choice there.
Usage (ComfyUI)
- Put the file in
ComfyUI/models/diffusion_models/. - Load with the stock Load Diffusion Model node (requires a ComfyUI version with ConvRot INT8 + W6A8
support; the log should show
Detected mixed precision quantization). - The model routes as ref2va: keyframes via
MiniMaxH3AddKeyframes, subject/scene/style references viaMiniMaxH3ReferenceToVideo— both usable in the same generation. Plain text-to-video works as usual. - Use the usual H3 text encoder and video/audio VAEs.
Related files
- W4A8 build of the same hybrid: https://huggingface.co/binglingzhimeng/minimax_h3_hybrid_fl2va_ref2va_b25-49_w4a8_mixed
- INT8 build of the same hybrid:
minimax_h3_hybrid_fl2va_ref2va_b25-49-int8.safetensors(community, e.g. smhfacct / RunningHubAI packaging)
Credits & license
- Original weights: MiniMaxAI/MiniMax-H3 (FL2VA + REF2VA).
- ComfyUI packaging / quantized conversions: Comfy-Org/MiniMax-H3 and Kijai/MiniMax-H3-experimental.
- Hybrid idea (adaln-only block splice): smhfacct/Minimax-H3-fl2va-ref2va-hybrid-models.
No training, fine-tuning or gradient optimization was involved — 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.
中文摘要
这是社区默认档 b25-49 混合模型的 W6A8(6bit 权重 / 8bit 激活)版本(14.88 GiB,1151 张量),
位于 W4A8(11.68 GiB,4bit)与 INT8(20.97 GB)之间:按 Comfy-Org 自家 comfy-kitchen 的说明,
6bit 用 1.5 倍的体积换来约 3 倍更低的权重误差,是精度取向的中间档。
做法与已发布的 w4a8 版完全同构:以 fl2va_pruned_w6a8 为骨架逐字节复制,只把 blocks.25–49 的
adaln_proj(50 个张量、43,545,600 字节)覆盖为 ref2va_pruned_w6a8 的值,不重新量化,
header 逐字节不变(量化配置未改动)。
验证:100 个 adaln 张量逐个核对(0–24 来自骨架、25–49 来自供体,零异常);抽样未量化张量与骨架一致; 并做了跨量化档交叉验证——adaln 取值与量化档位无关,本文件 0–24 与该 INT8 版 0–24、25–49 与该 INT8 版 25–49 均逐字节相同,证明 b25-49 的语义确实成立。
硬件提示:w6a8_int8 与 asym_w4a8_int8 共用同一 layout 与内核,原生加速需要 sm_80+(Ampere 及以上);
老卡(如 GTX 16 系 / sm_75)能加载也能算对,但走软件回退,那里 INT8 版更快。