Wave Forcing is a block-causal streaming video diffusion method, paired with Wave Parallelism and the WaveRT runtime. It preserves a mixed-noise frontier and fresh cleaner-to-noisier context while removing the reverse dependencies that prevent efficient pipelining. Across GPUs, full-model replicas process different chunk-stage tasks and publish layer-wise K/V states in one direction. Communication is prefetched and hidden under the longer attention computation on the critical rank.
The inference/runtime code in this repository is now open source.
| Asset | Status |
|---|---|
| Inference code and WaveRT | ✅ Available in this repository |
| Interactive project page and full configuration matrix | ✅ Available here |
| WaveForcing-T2V-1.3B-5step | ✅ Preview checkpoint on Hugging Face |
| Additional checkpoints | ⏳ More checkpoints coming soon |
| Training code | ⏳ Coming soon |
| Paper / arXiv | ⏳ Coming soon |
Note
The Hugging Face repository currently contains the only public checkpoint: a preview 1.3B model trained for five denoising steps. The 4-step and larger checkpoints used in parts of the system study are not public yet.
The example below uses the released checkpoint with an eight-GPU 5+2
pipeline: five denoising stages, one clean-KV store rank, and two streaming VAE
stages. The runtime is currently validated with Python 3.12, PyTorch
2.11.0+cu128, the SGLang diffusion runtime, and Hopper GPUs. See
pyproject.toml for the pinned Python stack.
python -m pip install -U "huggingface_hub[cli]"
hf download Wan-AI/Wan2.1-T2V-1.3B-Diffusers \
--local-dir ckpts/Wan2.1-T2V-1.3B-Diffusers
hf download SJTU-DENG-Lab/WaveForcing-T2V-1.3B-5step-Preview \
--local-dir ckpts/WaveForcing-T2V-1.3B-5step-PreviewThe Preview repository supplies the distilled DiT weights. Text encoder, tokenizer, VAE, and scheduler components are loaded from the Wan2.1 base model.
python -m wave_rt \
--model-path ckpts/Wan2.1-T2V-1.3B-Diffusers \
--gen-ckpt ckpts/WaveForcing-T2V-1.3B-5step-Preview/model.safetensors \
--rf-step 5 \
--wp-size 6 \
--denoising-step-list 1000,800,600,400,200 \
--num-frames 24 \
--height 480 \
--width 832 \
--vae-stages 2 \
--vae-partition time \
--kv-context causal \
--exchange-mode paged \
--attention-backend torch_sdpa \
--cuda-visible-devices 0,1,2,3,4,5,6,7 \
--prompt "A cinematic shot of a fluffy corgi running on a sunny beach, waves in the background." \
--task preview \
--run-tag corgiThe generated video and metrics are written to:
outputs/preview/corgi/video.mp4
outputs/preview/corgi/metrics.json
--num-frames counts latent frames and must be divisible by three. Use
--num-frames 399 to match the long-video benchmark protocol below; this
produces 1596 output frames (approximately 100 seconds at 16 FPS).
The following numbers are measured on 8× NVIDIA H200 GPUs with 399 latent
frames / 1596 output frames. Steady-state numbers pool
per_tick_ms[12:-4] across three repetitions and report p50. DiT FPS includes
pipeline fill/drain; E2E FPS additionally includes the streaming VAE.
| Model | Topology | Runtime configuration | Steady FPS (p50) | DiT FPS | E2E FPS |
|---|---|---|---|---|---|
| 1.3B | 4+3 | Sage · causal · paged | 125.7 | 124.1 | 117.7 |
| 1.3B | 4+3 | Sage + W8A8 · causal · paged | 126.5 | 121.5 | 115.9 |
| 1.3B Preview | 5+2 | BF16 / SDPA · causal · paged | 86.5 | 84.9 | 84.2 |
| 14B system prototype¹ | 4+3 | Sage + W8A8 · causal · paged | 28.5 | 28.1 | 28.1 |
The best 1.3B 4+3 run generates 1596 frames in approximately 13.56 seconds, or 117.7 E2E FPS, versus the matched 15.0 FPS single-GPU baseline (7.9× speedup). The maximum valid steady-state throughput is 126.5 FPS.
The released five-step Preview uses the 5+2 topology. Its two-stage VAE is too coarse to hide all decoding work: the best reliable BF16 configuration reaches 84.2 E2E FPS, even though faster DiT configurations exceed 120 FPS. The full three-stage VAE in 4+3 follows the DiT cadence more closely and avoids this decoder tail.
¹ The 14B row uses shape-accurate random-initialized weights and measures system scaling only; it is not a generation-quality result.
For every configuration, precise metric definitions, and the synchronized vs.
overlapped comparison, see the
interactive results matrix.
The machine-readable summary is available at
page/static/data/results_summary.json.
wave_rt/
├── denoiser/ # wavefront schedule, diagnostics, and KV exchange
│ └── exchange/ # sync, overlap, one-sided, staggered, relay, paged
├── runtime/ # SGLang integration, attention backends, FP8
├── distributed/ # process-group compatibility and CUDA IPC
├── pipelines/ # streaming VAE pipeline
├── config.py # public configuration and CLI arguments
└── launcher.py # one-shot and resident serving launchers
The arXiv entry is not public yet. For now, please cite the project page:
@misc{denglab2026waveforcing,
title = {Wave Forcing: Towards Speed-of-Light Streaming Video Generation},
author = {{DENG Lab MLSys Team}},
year = {2026},
howpublished = {Project blog},
organization = {Shanghai Jiao Tong University},
url = {https://sjtu-deng-lab.github.io/WaveForcing/}
}Released under the Apache License 2.0.