MiniMax-H3 INT8 ConvRot converts
INT8 (int8_tensorwise + ConvRot) conversions of two MiniMax-H3 fl2va finetunes,
in ComfyUI's baked-adaLN checkpoint format. Both files are 19.53 GB, so they fit
a 24 GB card as the diffusion model.
Drop into ComfyUI/models/diffusion_models/ and load with Load Diffusion Model
(UNETLoader), weight_dtype: default. You still need the matching H3 text encoder
and the video/audio VAEs.
| File | Size | Source |
|---|---|---|
10Eros_Max_h3_fl2va_pruned_int8_convrot.safetensors |
19.53 GB | TenStrip/10Eros-Max (bf16) |
PinkCherry_h3_fl2va_pruned_int8_convrot.safetensors |
19.53 GB | SexGod1979/PinkCherry_MiniMax-H3 (int8, dense adaLN) |
Format
Both match ComfyUI's own H3 checkpoint layout exactly β 932 tensors, identical keys, dtypes and shapes.
- 200 block linears (
blocks.0-49Γattn.qkv_proj,attn.out_proj,mlp.fc1,mlp.fc2) stored as int8 with per-output-channel fp32 scales and a per-layer descriptor:{"format": "int8_tensorwise", "convrot": true, "convrot_groupsize": 256} - adaLN in curve form:
adaln_t_table[1025, 8]fp32 +adaln_proj.linear.weight[96768, 8]fp16 - Norms, patch projections,
token_refinerandfinal_layerleft at source precision
Conversion notes
10Eros_Max β converted from the 37.5 GB bf16 release. Quantization was done on
fp32 weights, not bf16: comfy_kitchen casts the fp32 scale down to the input dtype
before dividing, so a bf16 input quantizes through an 8-bit-mantissa divisor. That
costs ~8% accuracy and pushes extremes to -128; from fp32 the range is a clean
[-127, 127]. Measured weight error vs the bf16 source: 0.90β1.02% relative L2,
cosine β₯ 0.99994 β at the theoretical floor for per-channel INT8 with Hadamard rotation.
PinkCherry β the upstream file is 31.7 GB, which is not extra precision but the
dense adaLN: 50 int8 tensors of [96768, 2688], about 12.1 GiB that ComfyUI's format
doesn't carry. Since adaLN depends only on the scalar timestep, silu(time_embedder(t))
traces a 1-D curve in R^2688 that is rank-8 to ~9e-5. Baking it:
S[g] = silu(time_embedder(g/1024)), g = 0..1024
S = U diag(s) V^T -> adaln_t_table = U[:, :8] * s[:8], W' = W @ V[:, :8]
time_embedder.* is then dropped. ComfyUI applies no SiLU in curve mode
(apply_silu = not use_adaln_curves), so it is folded into the table. End-to-end adaLN
error is 2.1e-4, identical on-grid and off-grid β the runtime's linear interpolation
between table rows costs nothing at this grid density, and the error sits ~50Γ below the
INT8 error already present in the weights.
Note that PinkCherry's adaLN weights were already int8 upstream and had to be dequantized before projecting, so that quantization noise is baked in. A build made from bf16 adaLN weights would be marginally cleaner.
Verification
Both files were checked for structural equality against a known-good ComfyUI H3
checkpoint (zero key/dtype/shape differences), numerical fidelity against their sources,
and a real comfy.sd.load_diffusion_model load plus a forward pass through the INT8
kernel. These are structural and numerical checks β they are not a substitute for
judging output quality yourself.
Credits and license
Finetunes by TenStrip and SexGod1979; base model MiniMaxAI/MiniMax-H3. These are format conversions only β no weights were retrained. The MiniMax-H3 Community License carries downstream terms; review it before redistributing or using commercially.
Model tree for cicalooo/Minimax-H3-INT8-converts
Base model
MiniMaxAI/MiniMax-H3