FastH3 Preview v1, rank-16 AdaLN
FastH3 Preview v1 with the AdaLN modulation projections factorized down to rank 16. FastH3 is FastVideo's DMD2-distilled MiniMax-H3, so this keeps the four-forward denoising ladder and drops 37% of the parameters.
| FastH3 Preview v1 | this | |
|---|---|---|
| parameters | 35.05B | 22.09B |
| DiT weights, bf16 | 70.1 GB | 44.2 GB |
| DiT forwards per video | 4 | 4 |
Why this is near-exact rather than lossy
AdaLN's input is always silu(time_embedder(time_proj(t))) for a scalar
timestep, so the modulation a layer can ever produce traces a one-dimensional
curve through a 2688-dimensional space. Rank 16 reconstructs that curve to
within 6.1e-09 relative, several orders of magnitude below what bf16 can
represent.
The curve is set by the architecture, not by the training run. Running the same converter on the earlier v0.2 checkpoint gives the same residual to three significant figures, which is what you would expect if the low-rank structure comes from the timestep embedder rather than from what the model learned:
| checkpoint | basis residual | relative modulation error |
|---|---|---|
| Preview v0.2 | 1.495e-09 | 6.712e-09 |
| Preview v1 | 1.499e-09 | 6.076e-09 |
Measured on one NVIDIA GB10
One DGX Spark, 121 GiB unified memory, one GPU, text-to-video with synchronized
stereo audio, VSA-H3 attention on the Triton kernel, --lazy-module-load, and
five sigma-grid points which is four DiT forwards on this distilled checkpoint.
| frames | duration | resolution | FP8 | resident weights | peak allocated | time |
|---|---|---|---|---|---|---|
| 124 | 5.17 s | 768x1344 | no | 51.70 GiB | 69.2 GiB | 902 s |
| 345 | 14.38 s | 768x1344 | yes | 33.06 GiB | 83.7 GiB | 3096 s |
345 frames is the longest MiniMax-H3 generates: MINIMAX_H3_MAX_DURATION is
15 s at 24 fps and the frame count must satisfy 17n + 5. The output was
checked with ffprobe rather than read from the log: 1344x768, 345 video frames,
451 audio frames, 14.375 s.
Peak memory is identical to the same conversion applied to v0.2, to the byte, at both frame counts. Peak is set by the architecture and the packed token count, not by which training run produced the weights.
Generation time depends on what else the shared machine was doing. Treat the memory numbers as reproducible and the timings as indicative.
Use
python examples/inference/basic/basic_minimax_h3_t2v.py \
--model-path <this repo> \
--num-gpus 1 --steps 5 --height 768 --width 1344 --num-frames 124 \
--lazy-module-load \
--prompt "A red fox walking through a snowy forest at dawn, cinematic"
--steps 5 counts sigma-grid points, which is four DiT forwards on a distilled
checkpoint, not five denoising steps. Set
FASTVIDEO_ATTENTION_BACKEND=VIDEO_SPARSE_ATTN_H3, and on a non-sm100a device
also FASTVIDEO_VSA_SM100A=0 to take the Triton kernel.
FP8 is not a flag on this example. Pass it through the API:
from fastvideo import VideoGenerator
from fastvideo.layers.quantization import get_quantization_config
generator = VideoGenerator.from_pretrained(
"<this repo>",
num_gpus=1,
transformer_quant=get_quantization_config("FP8")(),
)
Two changes this depends on are not on FastVideo's main branch yet.
--lazy-module-load loads each component on first use and frees it after its
last stage, from
#1761; without it the four
components sum to 124.0 GiB against the device's 121 GiB and nothing loads. FP8
reaches the feed-forward stack only after
#1780; before it, FP8
covers 8.01B of the 22.09B parameters and the 345-frame run is killed. Until
both land, use those branches or a machine with more memory.
Limits
Inference only. FastVideo refuses to train a checkpoint carrying adaln_rank,
because the factorization is fitted to the base model's timestep embedding and
gradient updates would invalidate it.
Requires the VSA-H3 attention backend, inherited from FastH3 v1, which requires
it as well. The trained attn.to_gate_compress weights are present and the DiT
only builds that layer under that backend.
Text-to-audio-video only. FL2VA and Ref2VA were not distilled upstream.
Attribution
Derived from FastVideo/FastVideo-FastH3-4-step-Preview-v1-VSA-DataFree, itself derived from MiniMaxAI/MiniMax-H3, and distributed under the MiniMax H3 Community License Agreement. All of the model's capabilities are MiniMax's and FastVideo's.
These weights come from FastVideo's rank-reduced AdaLN converter, applied
unmodified. The converter was added in
#1699 and moved into
scripts/checkpoint_conversion in
#1712. What is new here is
only the target: the distilled checkpoint rather than the official one. For the
same treatment of official MiniMax-H3 at 50 steps, see
noctuashap/MiniMax-H3-pruned-r16.
Only transformer/ differs from the base checkpoint. The other components are
byte-identical copies of FastH3 Preview v1, carried here because FastVideo
requires every component directory to be present in the repository.
Model tree for KyleNeverGivesUp/FastH3-4-step-Preview-v1-r16
Base model
MiniMaxAI/MiniMax-H3