MiniMax H3 hybrid โ€” fl2va base + a light ref2va reference pathway (bf16)

Full-precision (bf16) weight-selection merges of the two official MiniMax H3 checkpoints, fl2va and ref2va. The idea and the tensor analysis behind it come from smhfacct/Minimax-H3-fl2va-ref2va-hybrid-models; this repo differs in two ways: the merges are built from the unpruned bf16 checkpoints instead of the pruned int8-convrot ones, and they take fewer blocks from ref2va โ€” the goal is the lightest reference pathway that still works, on top of the untouched fl2va quality.

Why

MiniMax released two H3 checkpoints with identical architecture and weight layout:

  • fl2va โ€” first/last-keyframe conditioning only. Noticeably better visual and audio quality.
  • ref2va โ€” additionally trained on reference conditioning (image / video / audio references). It is the only checkpoint that supports references at all, but its raw output quality is worse than fl2va, even on tasks that use no references.

Comparing the two tensor by tensor, almost everything (attention, MLPs, norms, patch and rotary embeddings, the token refiner) is identical or near-identical. The meaningful difference sits in the per-block adaln_proj weights โ€” the AdaLN modulation projections that route the text / audio / video / reference signals into each transformer block. So a merge that keeps fl2va everywhere and takes only some blocks' adaln_proj from ref2va keeps the quality and buys the reference pathway.

The existing int8 hybrids start at 20 swapped blocks (b30-49) and go up from there. For my use โ€” character / setting references that should inform the shot, not dominate it โ€” even b30-49 pulled too hard toward the reference. Hence these variants with fewer blocks.

Available variants

File adaln_proj blocks from ref2va Precision Character
minimax_h3_hybrid_fl2va_ref2va_b45-49_bf16.safetensors 45โ€“49 (last 5 of 50) bf16, 66.28 GB Lightest possible touch: 10 tensors, 2.60 GB from ref2va. Try this first if you want the references to only nudge the shot.
minimax_h3_hybrid_fl2va_ref2va_b40-49_bf16.safetensors 40โ€“49 (last 10 of 50) bf16, 66.28 GB Light reference influence; 20 tensors, 5.20 GB from ref2va.

More ranges (e.g. b35-49) can be produced in a couple of minutes with the script below; I will add the ones that turn out useful.

What exactly was done

Sources (unmodified official weights, Comfy-Org packaging):

  • base: Comfy-Org/MiniMax-H3 โ†’ diffusion_models/minimax_h3_fl2va_bf16.safetensors (66,280,487,368 bytes)
  • donor: Comfy-Org/MiniMax-H3 โ†’ diffusion_models/minimax_h3_ref2va_bf16.safetensors (66,280,487,368 bytes)

For b40-49, exactly these 20 tensors were replaced with the ref2va bytes, everything else is fl2va (b45-49 is the same recipe restricted to blocks 45โ€“49: 10 tensors, 2,602,091,520 bytes):

blocks.40.adaln_proj.linear.weight   [96768, 2688]  bf16      blocks.40.adaln_proj.linear.bias   [96768]  bf16
blocks.41.adaln_proj.linear.weight   ...                       blocks.41.adaln_proj.linear.bias   ...
  โ‹ฎ                                                                โ‹ฎ
blocks.49.adaln_proj.linear.weight   [96768, 2688]  bf16      blocks.49.adaln_proj.linear.bias   [96768]  bf16

That is 520,418,304 bytes per block, 5,204,183,040 bytes (5.20 GB, ~7.9 % of the checkpoint) in total. Untouched and therefore fl2va: the adaln_proj of blocks 0โ€“39, final_layer.adaln_proj, final_layer.video_out / final_layer.audio_out, and every attention / MLP / norm / embedding / token-refiner tensor.

Method: safetensors is an 8-byte header length + a JSON header (name โ†’ dtype, shape, byte offsets) + raw tensor bytes. The two checkpoints have identical tensor names, shapes and dtypes, so each tensor's byte range in fl2va was overwritten with the corresponding byte range from ref2va โ€” no dequantisation, no rounding, no arithmetic of any kind. Every written range was re-read and compared against the donor by BLAKE2b hash. No training or fine-tuning was performed. The script is in this repo (h3_adaln_merge.py); it also keeps a small backup of the replaced tensors so the operation can be undone (--restore), and --lo/--hi select the block range:

python h3_adaln_merge.py --dst minimax_h3_fl2va_bf16.safetensors --src minimax_h3_ref2va_bf16.safetensors \
       --lo 40 --hi 49 --backup fl2va_adaln_b40-49_backup.safetensors
mv minimax_h3_fl2va_bf16.safetensors minimax_h3_hybrid_fl2va_ref2va_b40-49_bf16.safetensors

It patches in place (no second 66 GB copy needed) and runs on CPU in a few minutes; no GPU is involved.

Usage (ComfyUI)

Drop-in replacement for ref2va: load it with UNETLoader (weight_dtype: default) and use it through MiniMaxH3ReferenceToVideo with your reference images / clip / voice. Pair it with the ref2va turbo LoRA (minimax_h3_ref2v_turbo_4step_v0.1, 4 steps) or run it un-distilled; the usual H3 text encoder (qwen3vl_32b_minimax_h3) and video/audio VAEs apply. Same VRAM footprint as fl2va_bf16.

Intended use / expectations

  • Reference-conditioned generation where the references should guide identity, wardrobe or setting while the output keeps fl2va's look and motion quality.
  • Do not expect it to beat fl2va on non-reference generation โ€” it is fl2va for 92 % of its weights.
  • If the references barely register, use a wider range (b35-49, or the int8 b30-49 / b25-49 from smhfacct).

Limitations

  • Experimental. Made on 2026-09-01; evaluated subjectively on my own reference-to-video workflow, not benchmarked.
  • The block boundary is a knob chosen by taste, not by any principled criterion beyond "fewer blocks = lighter reference".
  • Inherits all licence terms and usage restrictions of the original MiniMax H3 checkpoints (MiniMax H3 Community License). This merge grants no rights beyond what the source checkpoints permit.

Acknowledgements

MiniMax for H3; Comfy-Org for the ComfyUI packaging of the weights; smhfacct for the tensor-level analysis of fl2va vs ref2va and the original hybrid idea this repo builds on.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for diobrando0/MiniMax-H3-fl2va-ref2va-hybrids-bf16