FastH3 8-Step V2, FP8 β€” radiance container

FastVideo's FastVideo-FastH3-8-Step-V2 β€” MiniMax-H3 distilled to eight steps with video sparse attention: video with a synchronized stereo soundtrack from text β€” as a single .rad container for the radiance inference engine (AMD RDNA4, ROCm).

The MiniMax H3 Community License does not cover the European Union, the United Kingdom, the Republic of Korea or the United States of America; see License.

File fasth3-8-step-v2-fp8.rad β€” 62.30 GiB
Weights every linear of the text encoder (the 50 layers of Qwen3-VL-32B the model reads), the token refiner and the DiT's 50 blocks, and the modulation projections, FP8 E4M3 per 128Γ—128 block (bf16 scales); the video decoder bf16; the audio decoder f32
Steps 8, the schedule the model was trained on
Output MP4: H.264 at 24 fps, up to 1344x768, 5.17 to 14.4 s; AAC at 32 kHz stereo
Latent upscaler LBH-123-AI/Minimax_h3_latent_Upscaler v1 (3D conv, 345M parameters, bf16; Apache-2.0)
Needs radiance 1.8.1 or newer (the upscaler, and prompts over 16 tokens, need 1.8.1); two 32 GB cards and about 39 GiB of pinned host memory

Serve

radiance --model fasth3-8-step-v2-fp8.rad --tp 2 --vision-tower-placement ram --host 0.0.0.0 --port 8000

curl -s http://localhost:8000/v1/videos -H 'Content-Type: application/json' -d '{
  "prompt": "A red fox trotting through a snowy pine forest, snow crunching underfoot",
  "seconds": "5", "size": "1344x768", "seed": 7}'          # -> {"id": "video_...", "status": "queued", ...}
curl -s http://localhost:8000/v1/videos/video_...            # poll until "status": "completed"
curl -s http://localhost:8000/v1/videos/video_.../content -o fox.mp4

The model is served as fastvideo-fasth3-8-step-v2 on OpenAI's video jobs API (POST /v1/videos, GET /v1/videos/{id}, GET /v1/videos/{id}/content, list and delete), with SGLang's target field:

  • prompt is read as written, up to 2048 tokens. seconds is rounded up to the model's length steps (17 frames): 5.17 to 14.4 s. size is WIDTHxHEIGHT, multiples of 32, at most 1344x768 pixels of area. seed makes a video repeatable on the same deployment.
  • The model runs only the schedule it was trained on: num_inference_steps may be left out or be 9 (grid points, as diffusers counts them); any other count is refused.
  • Text to video and audio only. FastVideo notes that difficult motion, fine detail and some audio may fall below the base model's.

On two Radeon AI PRO R9700s (gfx1201) a 5.17 s clip takes about 68 s at 1344x768, 38 s at 1024x576 and 17 s at 672x384; MiniMax-H3 at its default 50 steps takes about 8.8 minutes at 1344x768 (StillDeadcode/minimax-h3-fp8). Attention skips 80% of the 64-token video tiles, as the model was trained. The text encoder and the modulation projections are read from pinned host memory, which --vision-tower-placement ram selects. At 256x256, frames match FastVideo's reference pipeline by eye.

Latent upscaling

The container carries LBH-123-AI's latent upscaler. A request with "latent_upscale": 2 runs its first steps at half the size (672x384 for 1344x768), the upscaler enlarges the clean latent, and the last upscale_refine_steps (3 of the 8 by default) run at the full size from a re-noised copy of it:

curl -s http://localhost:8000/v1/videos -H 'Content-Type: application/json' -d '{
  "prompt": "...", "seconds": "5", "size": "1344x768", "seed": 7, "latent_upscale": 2}'
5.17 s at 1344x768, 2x R9700 time
native, 8 steps 68 s
latent_upscale 2, 3 refine steps (the default) 41 s
latent_upscale 2, 4 refine steps 46 s
latent_upscale 4, 3 refine steps 35 s

The factor goes up to 4. At 1344x768 a factor of 4 starts from 352x192; FastH3 still lays the scene out there, a little softer than at 2. The video object of an upscaled video reports latent_upscale, upscale_refine_steps and upscale_from (the small size).

How this file was made

rad-convert FastVideo/FastVideo-FastH3-8-Step-V2 --recipe minimax-h3-fp8.recipe -o fasth3-8-step-v2-fp8.rad

FastVideo/FastVideo-FastH3-8-Step-V2 is the downloaded pipeline directory; its text encoder and decoders are MiniMax-H3's own files. The recipe (minimax-h3-fp8.recipe in this repository, the same as MiniMax-H3's) names what is quantised; everything it does not name is the checkpoint's own dtype:

te.blk.*.attn_qkv.weight             rtn  codes=fp8_e4m3 block=128x128 scale=bf16
te.blk.*.attn_output.weight          rtn  codes=fp8_e4m3 block=128x128 scale=bf16
te.blk.*.ffn_gate_up.weight          rtn  codes=fp8_e4m3 block=128x128 scale=bf16
te.blk.*.ffn_down.weight             rtn  codes=fp8_e4m3 block=128x128 scale=bf16
te.blk.*.attn_norm.weight            cast dtype=f32
te.blk.*.ffn_norm.weight             cast dtype=f32
ref.blk.*.attn_qkv.weight            rtn  codes=fp8_e4m3 block=128x128 scale=bf16
ref.blk.*.attn_output.weight         rtn  codes=fp8_e4m3 block=128x128 scale=bf16
ref.blk.*.ffn_gate_up.weight         rtn  codes=fp8_e4m3 block=128x128 scale=bf16
ref.blk.*.ffn_down.weight            rtn  codes=fp8_e4m3 block=128x128 scale=bf16
dit.blk.*.attn_qkv.weight            rtn  codes=fp8_e4m3 block=128x128 scale=bf16
dit.blk.*.attn_output.weight         rtn  codes=fp8_e4m3 block=128x128 scale=bf16
dit.blk.*.ffn_gate_up.weight         rtn  codes=fp8_e4m3 block=128x128 scale=bf16
dit.blk.*.ffn_down.weight            rtn  codes=fp8_e4m3 block=128x128 scale=bf16
dit.blk.*.ada*.weight                rtn  codes=fp8_e4m3 block=128x128 scale=bf16
vae.blk.*.attn_qkv.weight            cast dtype=bf16
vae.blk.*.attn_out.weight            cast dtype=bf16
vae.blk.*.ffn_up.weight              cast dtype=bf16
vae.blk.*.ffn_down.weight            cast dtype=bf16
vae.proj_out.*                       cast dtype=bf16
aud.*.weight                         cast dtype=f32
ups.embed.*                          cast dtype=f32
ups.*.emb_layers.*                   cast dtype=f32

The upscaler is the companion folder latent_upscaler/ of the pipeline directory (its minimax_h3_latent_upscaler_3d_conv_v1/config.json and bf16 weights, renamed diffusion_pytorch_model.safetensors); this file had it added to the 1.8.0 container in place (rad-convert ... --reuse fasth3-8-step-v2-fp8.rad --in-place), which leaves every other weight as it was.

License

FastH3 8-Step V2 is a modified MiniMax H3 model from the FastVideo team, and MiniMax H3 is licensed under the MiniMax H3 Community License Agreement, Copyright Β© 2026 MiniMax (LICENSE in this repository; NOTICE carries its notice and FastVideo's). The agreement grants its rights only within its Applicable Territory: worldwide except the European Union, the United Kingdom, the Republic of Korea and the United States of America, where it does not license using, reproducing or distributing the model or this file. Its use restrictions and Acceptable Use Policy (Exhibit A of LICENSE) apply to everyone who downloads or uses this file, and to anyone it is passed on to.

This container is a modified copy of FastVideo-FastH3-8-Step-V2: the linears named above are re-encoded as FP8, the video decoder's linears cast from f32 to bf16, the audio decoder's weight norms folded, the text encoder's last 14 layers (which the model does not read) left out, and everything repacked into one .rad file. The text encoder is Qwen3-VL-32B, licensed under the Apache License 2.0 (LICENSE-Qwen3-VL). The latent upscaler is LBH-123-AI's Minimax_h3_latent_Upscaler v1, licensed under the Apache License 2.0 (LICENSE-latent-upscaler); its weights are included as published, its embedding MLP cast from bf16 to f32.

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 StillDeadcode/fasth3-8-step-v2-fp8

Finetuned
(9)
this model