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.

Downloads last month

-

Downloads are not tracked for this model. How to track
Safetensors
Model size
22B params
Tensor type
BF16
·
F16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for KyleNeverGivesUp/FastH3-4-step-Preview-v1-r16