Instructions to use KyleNeverGivesUp/FastH3-Preview-v0.2-r16 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use KyleNeverGivesUp/FastH3-Preview-v0.2-r16 with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("KyleNeverGivesUp/FastH3-Preview-v0.2-r16", dtype=torch.bfloat16, device_map="cuda") prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" image = pipe(prompt).images[0] - Notebooks
- Google Colab
- Kaggle
FastH3, rank-16 AdaLN
Superseded. FastVideo has since released FastH3 Preview v1, and this checkpoint is built on the earlier v0.2. It is left up for reproducibility and is no longer maintained. Use KyleNeverGivesUp/FastH3-4-step-Preview-v1-r16 instead, which applies the same conversion to v1 and measures identically on one GB10.
FastH3 Preview v0.2 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 v0.2 | this | |
|---|---|---|
| parameters | 35.05B | 22.09B |
| DiT weights on disk | 70 GB | 42 GB |
| DiT forwards per video | 4 | 4 |
The factorization 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, and rank 16 reconstructs
it to 6.7e-09 worst case, several orders of magnitude below what bf16 can
represent.
| rank | basis residual | worst-case modulation error |
|---|---|---|
| 8 | 8.645e-05 | 5.442e-04 |
| 16 | 1.495e-09 | 6.712e-09 |
| 32 | 4.850e-15 | 8.059e-15 |
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, five sigma-grid points which is four DiT forwards on this distilled checkpoint.
| frames | duration | resolution | peak allocated | time |
|---|---|---|---|---|
| 124 | 5.17 s | 768x1344 | 61.7 GiB | 1587 s |
| 226 | 9.42 s | 768x1344 | 75.4 GiB | 1674 s |
| 277 | 11.54 s | 768x1344 | 82.6 GiB | 2270 s |
| 345 | 14.38 s | 768x1344 | 83.7 GiB | 3202 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 taken from the log: 1344x768, 345 video
frames, 451 audio frames, 14.375 s.
The unmodified FastH3 does not load on this machine at all. Its four components sum to 124.0 GiB against the device's 121 GiB.
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 345 \
--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.
FP8 is not a flag on this example. Pass it through the API instead:
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")(),
)
Reaching the longest rows above needs two changes that are not on FastVideo's
main branch yet. --lazy-module-load loads each component on first use and
frees it after its last stage, and comes from
#1761. FP8 covers the
feed-forward stack only after
#1780; before it, FP8
quantizes 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. Everything up to
226 frames works on main today.
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. The trained
to_gate_compress weights are present and the DiT only builds that layer under
that backend.
Attribution
Derived from FastVideo/FastVideo-Minimax-FastH3-Preview-v0.2, itself derived from MiniMaxAI/MiniMax-H3, and distributed under the MiniMax H3 Community License Agreement. All of the model's capabilities are MiniMax'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 v0.2, carried here because FastVideo
requires every component directory to be present in the repository.
- Downloads last month
- -
Model tree for KyleNeverGivesUp/FastH3-Preview-v0.2-r16
Base model
MiniMaxAI/MiniMax-H3