PR #1286 merged at2aaeee2a(squash). will/ltx2_sr_port rebased onto new origin/main, dropping 4 commits whose content is now in main: cd76cf51 + 1ac1e732 + b0b7f59c + 40e265b8. Backup preserved on will/ltx2_sr_port-pre-1286-rebase. PR #1287 opened on will/api_7.10 @6ae7a99f(slice 1-3, generate_async + VideoEvent + tests). * README.md: bump Last reconciled to post-#1286 merge + rebase. Note new working tipb34d9704on will/ltx2_sr_port (33 commits ahead), PR #1287 OPEN MERGEABLE, backup branch preserved. * state.md: rename header to "post-#1286 merge + rebase". Branch-tips table refreshed with all 8 relevant branches and the safety backup. Add "Post-#1286 rebase summary" describing the 4 dropped commits + zero conflicts. Add "New linearized chain" table mapping every surviving slice (7.10/8/LTX-2 SR/NVFP4/post-fixes/agents_cleanup) to its tip SHA. Mark the historical layered-chain section as pre-rebase narrative (SHAs only valid on the backup branch). * pr-roadmap.md: promote PR #1284 (7.8) and PR #1286 (7.9) to Landed with merge SHAseb3a3942and2aaeee2arespectively. Move PR #1287 (7.10) from Planned to In flight with full scope description. Refresh remaining Planned rows with new slice indices and new tip SHAs from the rebased chain. * open-threads.md: bump Last updated header to capture the merge + rebase + #1287 opening. Item D (Implement generate_async) flipped from "High pri" to "🟢 in flight" with the live PR #1287 reference; resolution gate is the merge of #1287 alongside Q-5/Q-9/PR-7.5/ D-12-B chain. * runbook.md: bump Last updated. Branch-topology section reflects PR #1286 -> merged, PR #1287 -> active. Add a new "After a PR merges (re-slice protocol)" section with the 10-step recipe used in the post-#1286 rebase, derived from the canonical STACK.md bulk-rebase formula adapted for squash-merge drops. * authors.md: bump Last updated. PR #1286 row promoted to merged with squash-merge note about how the trailerless cherry-pick a152cb77 was absorbed cleanly. PR #1287 row added with all 4 trailers verified on every commit. Known-gaps section rewritten — the two trailerless commits are no longer reachable from any active branch (a152cb77 absorbed by squash, 40e265b8 dropped by rebase). Gap permanently resolved; backup branch preserves them archeologically. Verified: 17/17 router tests pass on rebased branch (router code now loaded from origin/main). 221 passed across api/contract/NVFP4 suites. Pre-commit clean (memory dir is yapf/ruff/mypy excluded; only spaces-check runs). PR #1287 created at https://github.com/hao-ai-lab/FastVideo/pull/1287, MERGEABLE. Co-authored-by: Junda (David) Su <90978028+Davids048@users.noreply.github.com> Co-authored-by: Matthew Noto <99706358+RandNMR73@users.noreply.github.com> Co-authored-by: XOR-op <17672363+XOR-op@users.noreply.github.com> Co-authored-by: Zhang Peiyuan <42993249+jzhang38@users.noreply.github.com>
| Documentation | Quick Start | Weekly Dev Meeting | 🟣💬 Slack | 🟣💬 WeChat |
FastVideo is a unified post-training and real-time inference framework for accelerated video generation.
NEWS
2026/03/17: Release Live demo: Into the Dreamverse: Vibe Directing in FastVideo, check out the Blog.2026/03/13: Release Live demo: Create a 5s 1080p Video in 4.5s with FastVideo on a Single GPU, check out the Blog.2025/11/19: Release CausalWan2.2 I2V A14B Preview models, Blog and Inference Code!.2025/08/04: Release FastWan models and Sparse-Distillation.
More News
2025/06/14: Release finetuning and inference code for VSA.2025/04/24: FastVideo V1 is released!2025/02/18: Release the inference code for Sliding Tile Attention.
Key Features
FastVideo has the following features:
- End-to-end post-training support for bidirectional and autoregressive models:
- Support full finetuning and LoRA finetuning for state-of-the-art open video DiTs
- Data preprocessing pipeline for video, image, and text data
- Distribution Matching Distillation (DMD2) stepwise distillation.
- Sparse attention with Video Sparse Attention
- Sparse distillation to achieve >50x denoising speedup
- Scalable training with FSDP2, sequence parallelism, and selective activation checkpointing.
- Causal distillation through Self-Forcing
- See this page for full list of supported models and recipes.
- State-of-the-art performance optimizations for inference
- Sequence Parallelism for distributed inference
- Multiple state-of-the-art attention backends
- User-friendly CLI and Python API
- See this page for full list of supported optimizations.
- Diverse hardware and OS support
- Support H100, A100, 4090
- Support Linux, Windows, MacOS
- See this page for full list of supported models, hardware assumptions, and optimization compatibility.
Getting Started
We recommend using uv to create a clean environment. If you previously used Conda, switching to uv generally gives faster and more stable installs.
# Create and activate a new uv environment
uv venv --python 3.12 --seed
source .venv/bin/activate
# Install FastVideo
uv pip install fastvideo
Please see our docs for more detailed installation instructions.
Sparse Distillation
For our sparse distillation techniques, please see our distillation docs and check out our blog.
See below for recipes and datasets:
| Model | Sparse Distillation | Dataset |
|---|---|---|
| FastWan2.1-T2V-1.3B | Recipe | FastVideo Synthetic Wan2.1 480P |
| FastWan2.2-TI2V-5B | Recipe | FastVideo Synthetic Wan2.2 720P |
Inference
Generating Your First Video
Here's a minimal example to generate a video using the default settings. Make sure VSA kernels are installed. Create a file called example.py with the following code:
import os
from fastvideo import VideoGenerator
def main():
os.environ["FASTVIDEO_ATTENTION_BACKEND"] = "VIDEO_SPARSE_ATTN"
# Create a video generator with a pre-trained model
generator = VideoGenerator.from_pretrained(
"FastVideo/FastWan2.1-T2V-1.3B-Diffusers",
num_gpus=1, # Adjust based on your hardware
)
# Define a prompt for your video
prompt = "A curious raccoon peers through a vibrant field of yellow sunflowers, its eyes wide with interest."
# Generate the video
video = generator.generate_video(
prompt,
output_path="my_videos/", # Controls where videos are saved
save_video=True
)
if __name__ == '__main__':
main()
Run the script with:
python example.py
For a more detailed guide, please see our inference quick start.
More Guides
Awesome work using FastVideo or our research projects
- SGLang: SGLang's diffusion inference functionality is based on a fork of FastVideo on Sept. 24, 2025.
- DanceGRPO: A unified framework to adapt Group Relative Policy Optimization (GRPO) to visual generation paradigms. Code based on FastVideo.
- SRPO: A method to directly align the full diffusion trajectory with fine-grained human preference. Code based on FastVideo.
- DCM: Dual-expert consistency model for efficient and high-quality video generation. Code based on FastVideo.
- HY-WorldPlay: An action-conditioned world model model trained using FastVideo framework.
- Hunyuan Video 1.5: A leading lightweight video generation model, where they proposed SSTA based on Sliding Tile Attention.
- Kandinsky-5.0: A family of diffusion models for video & image generation, where their NABLA attention includes a Sliding Tile Attention branch.
- LongCat Video: A foundational video generation model with 13.6B parameters with block-sparse attention similar to Video Sparse Attention.
🤝 Contributing
We welcome all contributions. Please check out our guide here. See details in development roadmap.
Acknowledgement
We learned the design and reused code from the following projects: Wan-Video, ThunderKittens, DMD2, diffusers, xDiT, vLLM, SGLang. We thank MBZUAI, Anyscale, and GMI Cloud for their support throughout this project.
Citation
If you find FastVideo useful, please consider citing our research work:
@article{zhang2025vsa,
title={Vsa: Faster video diffusion with trainable sparse attention},
author={Zhang, Peiyuan and Chen, Yongqi and Huang, Haofeng and Lin, Will and Liu, Zhengzhong and Stoica, Ion and Xing, Eric and Zhang, Hao},
journal={arXiv preprint arXiv:2505.13389},
year={2025}
}
@article{zhang2025fast,
title={Fast video generation with sliding tile attention},
author={Zhang, Peiyuan and Chen, Yongqi and Su, Runlong and Ding, Hangliang and Stoica, Ion and Liu, Zhengzhong and Zhang, Hao},
journal={arXiv preprint arXiv:2502.04507},
year={2025}
}