Downloads · 30 days
16.6K
74% of all-time downloads
MATLOWAI/minimax-h3-nvfp4
minimax-h3-nvfp4 is a machine learning model from MATLOWAI. Use it for the machine learning task on the model card, and read the license before you ship it in a product. It is set up for diffusion-single-file. The card lists the license as other.
An NVFP4 quantisation of the MiniMax H3 pruned FL2VA diffusion model for ComfyUI. Every one of the 200 block linears (qkv, out, fc1, fc2 in all 50 blocks) is stored as fp4 e2m1 with fp8 e4m3 block scales of 16 and one…
Downloads · 30 days
16.6K
74% of all-time downloads
All-time downloads
22.5K
Public
Repo size
12.5 GB
Likes
4
Public
Click a slice to open those files.
.safetensors12.5 GB · 100%
From the Hugging Face model README
An NVFP4 quantisation of the MiniMax H3 pruned FL2VA diffusion model for ComfyUI. Every one of the 200 block linears (qkv, out, fc1, fc2 in all 50 blocks) is stored as fp4 e2m1 with fp8 e4m3 block scales of 16 and one fp32 per-tensor scale; embeds, token refiner, norms and heads stay bf16. On Blackwell (sm120) the GEMMs run natively on the fp4 tensor cores.
Modification notice (required by the license): this repository contains a
modified version of MiniMax H3. The modification is post-training weight
quantisation of the block linears to NVFP4, performed 2026-08-19. Built from
diffusion_models/minimax_h3_fl2va_pruned_bf16.safetensors in
Comfy-Org/MiniMax-H3, revision
3f57e8291d2ef846f9a074b1b76d2767db434abe.
int8_convrot. Use Comfy-Org's int8_convrot file instead.Runs on stock ComfyUI, no custom nodes required: the file carries per-layer
comfy_quant metadata, the same mechanism as the NVFP4 text encoder that
Comfy-Org already ships.
.safetensors in models/diffusion_models/minimax_h3/ next to the
usual H3 stack from Comfy-Org (text encoder, video VAE, audio VAE).UNETLoader at this file, weight_dtype
default. No custom nodes; the per-layer metadata does the rest.Native ops: nvfp4. If a render comes out slower
than the int8 file you are on the dequant fallback (wrong pytorch or a
stale comfy-kitchen).Median weight error is 9.4 percent relative rms vs bf16 (the W4A8 file carries 7.3, int8_convrot 1.0). In practice a same-seed render is a clean sibling take: same scene and words, slightly different delivery. Side-by-side pages with clips, pixel, flow and audio rulers, and a synced A/B player: https://matlowai.github.io/ComfyUI-MAINodes/a6-review/ (the gold cards are this checkpoint). Note that an int8 control lands in the same distance-from-reference band, so within this model family that distance measures which take you got, not how good it is. Judge with your eyes on your own content.
Three other real NVFP4 regimes were built and rendered on the same scene, seed
and graph (a fourth, except_out, was built but never rendered). All three are
dominated by this file on every axis that can be trusted, so none of them is
published as a checkpoint:
| regime | what stays fp4 | size | wall | VRAM |
|---|---|---|---|---|
| all (this file) | qkv, out, fc1, fc2 in all 50 blocks | 12.5 GB | 421.2 s | 59.3 GB |
| mid | the same four, blocks 2 to 47 only | 14.7 GB | 432.2 s | 65.2 GB |
| nofc2 | qkv, out, fc1 (fc2 stays bf16) | 18.0 GB | 450.8 s | 63.9 GB |
| fc1 | fc1 only | 29.1 GB | 525.6 s | 75.8 GB |
| int8 convrot (the A8W8 file) | nothing, int8 everywhere | 21.0 GB | 458.5 s | 82.5 GB |
Leaving layers in higher precision makes the file bigger, the render slower and the peak VRAM higher, which is what you would expect. What it does not do is give you a defensible quality win, because within this family we cannot measure one. Every arm is a sibling take of the reference: same scene and words, slightly different delivery. The control that settles it is the int8 checkpoint in the last row, which carries about 1 percent weight error and should be the quality ceiling of the whole quantised family. It has the best pixel PSNR (14.76) and the best flow agreement (0.549) of any arm, and simultaneously the worst audio correlation (0.147 against 0.329 to 0.528 for the fp4 arms) and the worst mel error. A distance metric that ranks the most faithful checkpoint last on audio is not measuring quality. Judge with your eyes and ears on your own content.
Published here because they are hard to obtain and easy to carry, not because they rank anything:
census/ plus the .census.json beside the weights: the per-layer NVFP4
weight error (rel_rms_nvfp4, one row per quantised linear) for six builds, with
the source file, build time and scale mode in each meta block. Includes
..._all_staticscale, a calibrated-static-input_scale build that is a
negative result and is not published as weights: static scales did not
make streamed inference exact (streamed-vs-unstreamed rel-rms 0.392 static
against 0.364 dynamic, so slightly worse), which located the remaining
streaming difference outside the linears.measurements/: the full metric set behind the review site, 59 arms over
three scenes (bakery 6, painters 19, spider 34), each with pixel, flow
and audio rulers plus per-frame curves. Most arms are fake-quantised
activations on the shipped W4A8 model, one region at a time; the rows tagged
real checkpoint are native fp4 kernels. Rendered side by side with a synced
head-to-head player at
https://matlowai.github.io/ComfyUI-MAINodes/a6-review/The 30-second builder script (quantises the Comfy-Org bf16 file with comfy's
own TensorCoreNVFP4Layout) ships in
ComfyUI-MAINodes as
tools/build_nvfp4_checkpoint.py. The .census.json beside the weights holds
the per-layer weight error of this exact build.
MiniMax H3 Community License Agreement (see LICENSE and NOTICE in this repository, and the license link above). The license carries territory restrictions and other conditions; read it before using or redistributing. Powered by MiniMax H3.