File size: 8,366 Bytes
99f79ec 4cbb4de 99f79ec 4cbb4de 99f79ec 4cbb4de 99f79ec 4cbb4de 99f79ec 4cbb4de 99f79ec 4cbb4de 99f79ec 4cbb4de 99f79ec 4cbb4de | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | ---
license: other
license_name: minimax-h3-community
license_link: LICENSE
pipeline_tag: text-to-video
library_name: radiance
tags:
- radiance
- rocm
- amd
- rdna4
- fp8
- text-to-video
- text-to-audio-video
- distillation
- few-step
- minimax-h3
- fasth3
- latent-upscaler
base_model:
- FastVideo/FastVideo-FastH3-8-Step-V2
- LBH-123-AI/Minimax_h3_latent_Upscaler
---
# FastH3 8-Step V2, FP8 — radiance container
FastVideo's [FastVideo-FastH3-8-Step-V2](https://huggingface.co/FastVideo/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](https://codeberg.org/StillDeadcode/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](#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](https://huggingface.co/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
```sh
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](https://huggingface.co/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:
```sh
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
```sh
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.
|