Repository files navigation

FastVideo is a unified post-training and inference framework for accelerated video generation.

FastVideo features an end-to-end unified pipeline for accelerating diffusion models, starting from data preprocessing to model training, finetuning, distillation, and inference. FastVideo is designed to be modular and extensible, allowing users to easily add new optimizations and techniques. Whether it is training-free optimizations or post-training optimizations, FastVideo has you covered.

| 🕹️ Online Demo | Documentation | Quick Start | 🤗 FastWan | 🟣💬 Slack | 🟣💬 WeChat |

NEWS

Key Features

FastVideo has the following features:

  • End-to-end post-training support:
    • Sparse distillation for Wan2.1 and Wan2.2 to achineve >50x denoising speedup
    • Data preprocessing pipeline for video data
    • Support full finetuning and LoRA finetuning for state-of-the-art open video DiTs
    • Scalable training with FSDP2, sequence parallelism, and selective activation checkpointing, with near linear scaling to 64 GPUs
  • State-of-the-art performance optimizations for inference
  • Diverse hardware and OS support
    • Support H100, A100, 4090
    • Support Linux, Windows, MacOS

Getting Started

We recommend using an environment manager such as Conda to create a clean environment:

# Create and activate a new conda environment
conda create -n fastvideo python=3.12
conda activate fastvideo
# Install FastVideo
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:

ModelSparse DistillationDataset
FastWan2.1-T2V-1.3BRecipeFastVideo Synthetic Wan2.1 480P
FastWan2.1-T2V-14B-PreviewComing soon!FastVideo Synthetic Wan2.1 720P
FastWan2.2-TI2V-5BRecipeFastVideo 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:

importosfromfastvideoimportVideoGeneratordefmain():
os.environ["FASTVIDEO_ATTENTION_BACKEND"] ="VIDEO_SPARSE_ATTN"# Create a video generator with a pre-trained modelgenerator=VideoGenerator.from_pretrained(
"FastVideo/FastWan2.1-T2V-1.3B-Diffusers",
num_gpus=1, # Adjust based on your hardware
)
# Define a prompt for your videoprompt="A curious raccoon peers through a vibrant field of yellow sunflowers, its eyes wide with interest."# Generate the videovideo=generator.generate_video(
prompt,
return_frames=True, # Also return frames from this call (defaults to False)output_path="my_videos/", # Controls where videos are savedsave_video=True
)
if__name__=='__main__':
main()

Run the script with:

python example.py

For a more detailed guide, please see our inference quick start.

Other docs:

Distillation and Finetuning

📑 Development Plan

More FastWan Models Coming Soon!

  • Add FastWan2.1-T2V-14B
  • Add FastWan2.2-T2V-14B
  • Add FastWan2.2-I2V-14B

See details in development roadmap.

🤝 Contributing

We welcome all contributions. Please check out our guide here

Acknowledgement

We learned and reused code from the following projects:

We thank MBZUAI, Anyscale, and GMI Cloud for their support throughout this project.

Citation

If you find FastVideo useful, please considering citing our work:

@software{fastvideo2024,
title = {FastVideo: A Unified Framework for Accelerated Video Generation},
author = {The FastVideo Team},
url = {https://github.com/hao-ai-lab/FastVideo},
month = apr,
year = {2024},
}
@article{zhang2025vsa,
title={VSA: Faster Video Diffusion with Trainable Sparse Attention},
author={Zhang, Peiyuan and Huang, Haofeng and Chen, Yongqi 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}
}

About

A unified inference and post-training framework for accelerated video generation.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

FastVideo is a unified post-training and inference framework for accelerated video generation.

FastVideo features an end-to-end unified pipeline for accelerating diffusion models, starting from data preprocessing to model training, finetuning, distillation, and inference. FastVideo is designed to be modular and extensible, allowing users to easily add new optimizations and techniques. Whether it is training-free optimizations or post-training optimizations, FastVideo has you covered.

| 🕹️ Online Demo | Documentation | Quick Start | 🤗 FastWan | 🟣💬 Slack | 🟣💬 WeChat |

NEWS

Key Features

FastVideo has the following features:

  • End-to-end post-training support:
    • Sparse distillation for Wan2.1 and Wan2.2 to achineve >50x denoising speedup
    • Data preprocessing pipeline for video data
    • Support full finetuning and LoRA finetuning for state-of-the-art open video DiTs
    • Scalable training with FSDP2, sequence parallelism, and selective activation checkpointing, with near linear scaling to 64 GPUs
  • State-of-the-art performance optimizations for inference
  • Diverse hardware and OS support
    • Support H100, A100, 4090
    • Support Linux, Windows, MacOS

Getting Started

We recommend using an environment manager such as Conda to create a clean environment:

# Create and activate a new conda environment
conda create -n fastvideo python=3.12
conda activate fastvideo
# Install FastVideo
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:

ModelSparse DistillationDataset
FastWan2.1-T2V-1.3BRecipeFastVideo Synthetic Wan2.1 480P
FastWan2.1-T2V-14B-PreviewComing soon!FastVideo Synthetic Wan2.1 720P
FastWan2.2-TI2V-5BRecipeFastVideo 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:

importosfromfastvideoimportVideoGeneratordefmain():
os.environ["FASTVIDEO_ATTENTION_BACKEND"] ="VIDEO_SPARSE_ATTN"# Create a video generator with a pre-trained modelgenerator=VideoGenerator.from_pretrained(
"FastVideo/FastWan2.1-T2V-1.3B-Diffusers",
num_gpus=1, # Adjust based on your hardware
)
# Define a prompt for your videoprompt="A curious raccoon peers through a vibrant field of yellow sunflowers, its eyes wide with interest."# Generate the videovideo=generator.generate_video(
prompt,
return_frames=True, # Also return frames from this call (defaults to False)output_path="my_videos/", # Controls where videos are savedsave_video=True
)
if__name__=='__main__':
main()

Run the script with:

python example.py

For a more detailed guide, please see our inference quick start.

Other docs:

Distillation and Finetuning

📑 Development Plan

More FastWan Models Coming Soon!

  • Add FastWan2.1-T2V-14B
  • Add FastWan2.2-T2V-14B
  • Add FastWan2.2-I2V-14B

See details in development roadmap.

🤝 Contributing

We welcome all contributions. Please check out our guide here

Acknowledgement

We learned and reused code from the following projects:

We thank MBZUAI, Anyscale, and GMI Cloud for their support throughout this project.

Citation

If you find FastVideo useful, please considering citing our work:

@software{fastvideo2024,
title = {FastVideo: A Unified Framework for Accelerated Video Generation},
author = {The FastVideo Team},
url = {https://github.com/hao-ai-lab/FastVideo},
month = apr,
year = {2024},
}
@article{zhang2025vsa,
title={VSA: Faster Video Diffusion with Trainable Sparse Attention},
author={Zhang, Peiyuan and Huang, Haofeng and Chen, Yongqi 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}
}

About

A unified inference and post-training framework for accelerated video generation.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

FastVideo is a unified post-training and inference framework for accelerated video generation.

FastVideo features an end-to-end unified pipeline for accelerating diffusion models, starting from data preprocessing to model training, finetuning, distillation, and inference. FastVideo is designed to be modular and extensible, allowing users to easily add new optimizations and techniques. Whether it is training-free optimizations or post-training optimizations, FastVideo has you covered.

| 🕹️ Online Demo | Documentation | Quick Start | 🤗 FastWan | 🟣💬 Slack | 🟣💬 WeChat |

NEWS

Key Features

FastVideo has the following features:

  • End-to-end post-training support:
    • Sparse distillation for Wan2.1 and Wan2.2 to achineve >50x denoising speedup
    • Data preprocessing pipeline for video data
    • Support full finetuning and LoRA finetuning for state-of-the-art open video DiTs
    • Scalable training with FSDP2, sequence parallelism, and selective activation checkpointing, with near linear scaling to 64 GPUs
  • State-of-the-art performance optimizations for inference
  • Diverse hardware and OS support
    • Support H100, A100, 4090
    • Support Linux, Windows, MacOS

Getting Started

We recommend using an environment manager such as Conda to create a clean environment:

# Create and activate a new conda environment
conda create -n fastvideo python=3.12
conda activate fastvideo
# Install FastVideo
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:

ModelSparse DistillationDataset
FastWan2.1-T2V-1.3BRecipeFastVideo Synthetic Wan2.1 480P
FastWan2.1-T2V-14B-PreviewComing soon!FastVideo Synthetic Wan2.1 720P
FastWan2.2-TI2V-5BRecipeFastVideo 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:

importosfromfastvideoimportVideoGeneratordefmain():
os.environ["FASTVIDEO_ATTENTION_BACKEND"] ="VIDEO_SPARSE_ATTN"# Create a video generator with a pre-trained modelgenerator=VideoGenerator.from_pretrained(
"FastVideo/FastWan2.1-T2V-1.3B-Diffusers",
num_gpus=1, # Adjust based on your hardware
)
# Define a prompt for your videoprompt="A curious raccoon peers through a vibrant field of yellow sunflowers, its eyes wide with interest."# Generate the videovideo=generator.generate_video(
prompt,
return_frames=True, # Also return frames from this call (defaults to False)output_path="my_videos/", # Controls where videos are savedsave_video=True
)
if__name__=='__main__':
main()

Run the script with:

python example.py

For a more detailed guide, please see our inference quick start.

Other docs:

Distillation and Finetuning

📑 Development Plan

More FastWan Models Coming Soon!

  • Add FastWan2.1-T2V-14B
  • Add FastWan2.2-T2V-14B
  • Add FastWan2.2-I2V-14B

See details in development roadmap.

🤝 Contributing

We welcome all contributions. Please check out our guide here

Acknowledgement

We learned and reused code from the following projects:

We thank MBZUAI, Anyscale, and GMI Cloud for their support throughout this project.

Citation

If you find FastVideo useful, please considering citing our work:

@software{fastvideo2024,
title = {FastVideo: A Unified Framework for Accelerated Video Generation},
author = {The FastVideo Team},
url = {https://github.com/hao-ai-lab/FastVideo},
month = apr,
year = {2024},
}
@article{zhang2025vsa,
title={VSA: Faster Video Diffusion with Trainable Sparse Attention},
author={Zhang, Peiyuan and Huang, Haofeng and Chen, Yongqi 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}
}

About

A unified inference and post-training framework for accelerated video generation.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

FastVideo is a unified post-training and inference framework for accelerated video generation.

FastVideo features an end-to-end unified pipeline for accelerating diffusion models, starting from data preprocessing to model training, finetuning, distillation, and inference. FastVideo is designed to be modular and extensible, allowing users to easily add new optimizations and techniques. Whether it is training-free optimizations or post-training optimizations, FastVideo has you covered.

| 🕹️ Online Demo | Documentation | Quick Start | 🤗 FastWan | 🟣💬 Slack | 🟣💬 WeChat |

NEWS

Key Features

FastVideo has the following features:

  • End-to-end post-training support:
    • Sparse distillation for Wan2.1 and Wan2.2 to achineve >50x denoising speedup
    • Data preprocessing pipeline for video data
    • Support full finetuning and LoRA finetuning for state-of-the-art open video DiTs
    • Scalable training with FSDP2, sequence parallelism, and selective activation checkpointing, with near linear scaling to 64 GPUs
  • State-of-the-art performance optimizations for inference
  • Diverse hardware and OS support
    • Support H100, A100, 4090
    • Support Linux, Windows, MacOS

Getting Started

We recommend using an environment manager such as Conda to create a clean environment:

# Create and activate a new conda environment
conda create -n fastvideo python=3.12
conda activate fastvideo
# Install FastVideo
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:

ModelSparse DistillationDataset
FastWan2.1-T2V-1.3BRecipeFastVideo Synthetic Wan2.1 480P
FastWan2.1-T2V-14B-PreviewComing soon!FastVideo Synthetic Wan2.1 720P
FastWan2.2-TI2V-5BRecipeFastVideo 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:

importosfromfastvideoimportVideoGeneratordefmain():
os.environ["FASTVIDEO_ATTENTION_BACKEND"] ="VIDEO_SPARSE_ATTN"# Create a video generator with a pre-trained modelgenerator=VideoGenerator.from_pretrained(
"FastVideo/FastWan2.1-T2V-1.3B-Diffusers",
num_gpus=1, # Adjust based on your hardware
)
# Define a prompt for your videoprompt="A curious raccoon peers through a vibrant field of yellow sunflowers, its eyes wide with interest."# Generate the videovideo=generator.generate_video(
prompt,
return_frames=True, # Also return frames from this call (defaults to False)output_path="my_videos/", # Controls where videos are savedsave_video=True
)
if__name__=='__main__':
main()

Run the script with:

python example.py

For a more detailed guide, please see our inference quick start.

Other docs:

Distillation and Finetuning

📑 Development Plan

More FastWan Models Coming Soon!

  • Add FastWan2.1-T2V-14B
  • Add FastWan2.2-T2V-14B
  • Add FastWan2.2-I2V-14B

See details in development roadmap.

🤝 Contributing

We welcome all contributions. Please check out our guide here

Acknowledgement

We learned and reused code from the following projects:

We thank MBZUAI, Anyscale, and GMI Cloud for their support throughout this project.

Citation

If you find FastVideo useful, please considering citing our work:

@software{fastvideo2024,
title = {FastVideo: A Unified Framework for Accelerated Video Generation},
author = {The FastVideo Team},
url = {https://github.com/hao-ai-lab/FastVideo},
month = apr,
year = {2024},
}
@article{zhang2025vsa,
title={VSA: Faster Video Diffusion with Trainable Sparse Attention},
author={Zhang, Peiyuan and Huang, Haofeng and Chen, Yongqi 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}
}

About

A unified inference and post-training framework for accelerated video generation.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

FastVideo is a unified post-training and inference framework for accelerated video generation.

FastVideo features an end-to-end unified pipeline for accelerating diffusion models, starting from data preprocessing to model training, finetuning, distillation, and inference. FastVideo is designed to be modular and extensible, allowing users to easily add new optimizations and techniques. Whether it is training-free optimizations or post-training optimizations, FastVideo has you covered.

| 🕹️ Online Demo | Documentation | Quick Start | 🤗 FastWan | 🟣💬 Slack | 🟣💬 WeChat |

NEWS

Key Features

FastVideo has the following features:

  • End-to-end post-training support:
    • Sparse distillation for Wan2.1 and Wan2.2 to achineve >50x denoising speedup
    • Data preprocessing pipeline for video data
    • Support full finetuning and LoRA finetuning for state-of-the-art open video DiTs
    • Scalable training with FSDP2, sequence parallelism, and selective activation checkpointing, with near linear scaling to 64 GPUs
  • State-of-the-art performance optimizations for inference
  • Diverse hardware and OS support
    • Support H100, A100, 4090
    • Support Linux, Windows, MacOS

Getting Started

We recommend using an environment manager such as Conda to create a clean environment:

# Create and activate a new conda environment
conda create -n fastvideo python=3.12
conda activate fastvideo
# Install FastVideo
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:

ModelSparse DistillationDataset
FastWan2.1-T2V-1.3BRecipeFastVideo Synthetic Wan2.1 480P
FastWan2.1-T2V-14B-PreviewComing soon!FastVideo Synthetic Wan2.1 720P
FastWan2.2-TI2V-5BRecipeFastVideo 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:

importosfromfastvideoimportVideoGeneratordefmain():
os.environ["FASTVIDEO_ATTENTION_BACKEND"] ="VIDEO_SPARSE_ATTN"# Create a video generator with a pre-trained modelgenerator=VideoGenerator.from_pretrained(
"FastVideo/FastWan2.1-T2V-1.3B-Diffusers",
num_gpus=1, # Adjust based on your hardware
)
# Define a prompt for your videoprompt="A curious raccoon peers through a vibrant field of yellow sunflowers, its eyes wide with interest."# Generate the videovideo=generator.generate_video(
prompt,
return_frames=True, # Also return frames from this call (defaults to False)output_path="my_videos/", # Controls where videos are savedsave_video=True
)
if__name__=='__main__':
main()

Run the script with:

python example.py

For a more detailed guide, please see our inference quick start.

Other docs:

Distillation and Finetuning

📑 Development Plan

More FastWan Models Coming Soon!

  • Add FastWan2.1-T2V-14B
  • Add FastWan2.2-T2V-14B
  • Add FastWan2.2-I2V-14B

See details in development roadmap.

🤝 Contributing

We welcome all contributions. Please check out our guide here

Acknowledgement

We learned and reused code from the following projects:

We thank MBZUAI, Anyscale, and GMI Cloud for their support throughout this project.

Citation

If you find FastVideo useful, please considering citing our work:

@software{fastvideo2024,
title = {FastVideo: A Unified Framework for Accelerated Video Generation},
author = {The FastVideo Team},
url = {https://github.com/hao-ai-lab/FastVideo},
month = apr,
year = {2024},
}
@article{zhang2025vsa,
title={VSA: Faster Video Diffusion with Trainable Sparse Attention},
author={Zhang, Peiyuan and Huang, Haofeng and Chen, Yongqi 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}
}

About

A unified inference and post-training framework for accelerated video generation.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

FastVideo is a unified post-training and inference framework for accelerated video generation.

FastVideo features an end-to-end unified pipeline for accelerating diffusion models, starting from data preprocessing to model training, finetuning, distillation, and inference. FastVideo is designed to be modular and extensible, allowing users to easily add new optimizations and techniques. Whether it is training-free optimizations or post-training optimizations, FastVideo has you covered.

| 🕹️ Online Demo | Documentation | Quick Start | 🤗 FastWan | 🟣💬 Slack | 🟣💬 WeChat |

NEWS

Key Features

FastVideo has the following features:

  • End-to-end post-training support:
    • Sparse distillation for Wan2.1 and Wan2.2 to achineve >50x denoising speedup
    • Data preprocessing pipeline for video data
    • Support full finetuning and LoRA finetuning for state-of-the-art open video DiTs
    • Scalable training with FSDP2, sequence parallelism, and selective activation checkpointing, with near linear scaling to 64 GPUs
  • State-of-the-art performance optimizations for inference
  • Diverse hardware and OS support
    • Support H100, A100, 4090
    • Support Linux, Windows, MacOS

Getting Started

We recommend using an environment manager such as Conda to create a clean environment:

# Create and activate a new conda environment
conda create -n fastvideo python=3.12
conda activate fastvideo
# Install FastVideo
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:

ModelSparse DistillationDataset
FastWan2.1-T2V-1.3BRecipeFastVideo Synthetic Wan2.1 480P
FastWan2.1-T2V-14B-PreviewComing soon!FastVideo Synthetic Wan2.1 720P
FastWan2.2-TI2V-5BRecipeFastVideo 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:

importosfromfastvideoimportVideoGeneratordefmain():
os.environ["FASTVIDEO_ATTENTION_BACKEND"] ="VIDEO_SPARSE_ATTN"# Create a video generator with a pre-trained modelgenerator=VideoGenerator.from_pretrained(
"FastVideo/FastWan2.1-T2V-1.3B-Diffusers",
num_gpus=1, # Adjust based on your hardware
)
# Define a prompt for your videoprompt="A curious raccoon peers through a vibrant field of yellow sunflowers, its eyes wide with interest."# Generate the videovideo=generator.generate_video(
prompt,
return_frames=True, # Also return frames from this call (defaults to False)output_path="my_videos/", # Controls where videos are savedsave_video=True
)
if__name__=='__main__':
main()

Run the script with:

python example.py

For a more detailed guide, please see our inference quick start.

Other docs:

Distillation and Finetuning

📑 Development Plan

More FastWan Models Coming Soon!

  • Add FastWan2.1-T2V-14B
  • Add FastWan2.2-T2V-14B
  • Add FastWan2.2-I2V-14B

See details in development roadmap.

🤝 Contributing

We welcome all contributions. Please check out our guide here

Acknowledgement

We learned and reused code from the following projects:

We thank MBZUAI, Anyscale, and GMI Cloud for their support throughout this project.

Citation

If you find FastVideo useful, please considering citing our work:

@software{fastvideo2024,
title = {FastVideo: A Unified Framework for Accelerated Video Generation},
author = {The FastVideo Team},
url = {https://github.com/hao-ai-lab/FastVideo},
month = apr,
year = {2024},
}
@article{zhang2025vsa,
title={VSA: Faster Video Diffusion with Trainable Sparse Attention},
author={Zhang, Peiyuan and Huang, Haofeng and Chen, Yongqi 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}
}

About

A unified inference and post-training framework for accelerated video generation.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

FastVideo is a unified post-training and inference framework for accelerated video generation.

FastVideo features an end-to-end unified pipeline for accelerating diffusion models, starting from data preprocessing to model training, finetuning, distillation, and inference. FastVideo is designed to be modular and extensible, allowing users to easily add new optimizations and techniques. Whether it is training-free optimizations or post-training optimizations, FastVideo has you covered.

| 🕹️ Online Demo | Documentation | Quick Start | 🤗 FastWan | 🟣💬 Slack | 🟣💬 WeChat |

NEWS

Key Features

FastVideo has the following features:

  • End-to-end post-training support:
    • Sparse distillation for Wan2.1 and Wan2.2 to achineve >50x denoising speedup
    • Data preprocessing pipeline for video data
    • Support full finetuning and LoRA finetuning for state-of-the-art open video DiTs
    • Scalable training with FSDP2, sequence parallelism, and selective activation checkpointing, with near linear scaling to 64 GPUs
  • State-of-the-art performance optimizations for inference
  • Diverse hardware and OS support
    • Support H100, A100, 4090
    • Support Linux, Windows, MacOS

Getting Started

We recommend using an environment manager such as Conda to create a clean environment:

# Create and activate a new conda environment
conda create -n fastvideo python=3.12
conda activate fastvideo
# Install FastVideo
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:

ModelSparse DistillationDataset
FastWan2.1-T2V-1.3BRecipeFastVideo Synthetic Wan2.1 480P
FastWan2.1-T2V-14B-PreviewComing soon!FastVideo Synthetic Wan2.1 720P
FastWan2.2-TI2V-5BRecipeFastVideo 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:

importosfromfastvideoimportVideoGeneratordefmain():
os.environ["FASTVIDEO_ATTENTION_BACKEND"] ="VIDEO_SPARSE_ATTN"# Create a video generator with a pre-trained modelgenerator=VideoGenerator.from_pretrained(
"FastVideo/FastWan2.1-T2V-1.3B-Diffusers",
num_gpus=1, # Adjust based on your hardware
)
# Define a prompt for your videoprompt="A curious raccoon peers through a vibrant field of yellow sunflowers, its eyes wide with interest."# Generate the videovideo=generator.generate_video(
prompt,
return_frames=True, # Also return frames from this call (defaults to False)output_path="my_videos/", # Controls where videos are savedsave_video=True
)
if__name__=='__main__':
main()

Run the script with:

python example.py

For a more detailed guide, please see our inference quick start.

Other docs:

Distillation and Finetuning

📑 Development Plan

More FastWan Models Coming Soon!

  • Add FastWan2.1-T2V-14B
  • Add FastWan2.2-T2V-14B
  • Add FastWan2.2-I2V-14B

See details in development roadmap.

🤝 Contributing

We welcome all contributions. Please check out our guide here

Acknowledgement

We learned and reused code from the following projects:

We thank MBZUAI, Anyscale, and GMI Cloud for their support throughout this project.

Citation

If you find FastVideo useful, please considering citing our work:

@software{fastvideo2024,
title = {FastVideo: A Unified Framework for Accelerated Video Generation},
author = {The FastVideo Team},
url = {https://github.com/hao-ai-lab/FastVideo},
month = apr,
year = {2024},
}
@article{zhang2025vsa,
title={VSA: Faster Video Diffusion with Trainable Sparse Attention},
author={Zhang, Peiyuan and Huang, Haofeng and Chen, Yongqi 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}
}

About

A unified inference and post-training framework for accelerated video generation.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

FastVideo is a unified post-training and inference framework for accelerated video generation.

FastVideo features an end-to-end unified pipeline for accelerating diffusion models, starting from data preprocessing to model training, finetuning, distillation, and inference. FastVideo is designed to be modular and extensible, allowing users to easily add new optimizations and techniques. Whether it is training-free optimizations or post-training optimizations, FastVideo has you covered.

| 🕹️ Online Demo | Documentation | Quick Start | 🤗 FastWan | 🟣💬 Slack | 🟣💬 WeChat |

NEWS

Key Features

FastVideo has the following features:

  • End-to-end post-training support:
    • Sparse distillation for Wan2.1 and Wan2.2 to achineve >50x denoising speedup
    • Data preprocessing pipeline for video data
    • Support full finetuning and LoRA finetuning for state-of-the-art open video DiTs
    • Scalable training with FSDP2, sequence parallelism, and selective activation checkpointing, with near linear scaling to 64 GPUs
  • State-of-the-art performance optimizations for inference
  • Diverse hardware and OS support
    • Support H100, A100, 4090
    • Support Linux, Windows, MacOS

Getting Started

We recommend using an environment manager such as Conda to create a clean environment:

# Create and activate a new conda environment
conda create -n fastvideo python=3.12
conda activate fastvideo
# Install FastVideo
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:

ModelSparse DistillationDataset
FastWan2.1-T2V-1.3BRecipeFastVideo Synthetic Wan2.1 480P
FastWan2.1-T2V-14B-PreviewComing soon!FastVideo Synthetic Wan2.1 720P
FastWan2.2-TI2V-5BRecipeFastVideo 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:

importosfromfastvideoimportVideoGeneratordefmain():
os.environ["FASTVIDEO_ATTENTION_BACKEND"] ="VIDEO_SPARSE_ATTN"# Create a video generator with a pre-trained modelgenerator=VideoGenerator.from_pretrained(
"FastVideo/FastWan2.1-T2V-1.3B-Diffusers",
num_gpus=1, # Adjust based on your hardware
)
# Define a prompt for your videoprompt="A curious raccoon peers through a vibrant field of yellow sunflowers, its eyes wide with interest."# Generate the videovideo=generator.generate_video(
prompt,
return_frames=True, # Also return frames from this call (defaults to False)output_path="my_videos/", # Controls where videos are savedsave_video=True
)
if__name__=='__main__':
main()

Run the script with:

python example.py

For a more detailed guide, please see our inference quick start.

Other docs:

Distillation and Finetuning

📑 Development Plan

More FastWan Models Coming Soon!

  • Add FastWan2.1-T2V-14B
  • Add FastWan2.2-T2V-14B
  • Add FastWan2.2-I2V-14B

See details in development roadmap.

🤝 Contributing

We welcome all contributions. Please check out our guide here

Acknowledgement

We learned and reused code from the following projects:

We thank MBZUAI, Anyscale, and GMI Cloud for their support throughout this project.

Citation

If you find FastVideo useful, please considering citing our work:

@software{fastvideo2024,
title = {FastVideo: A Unified Framework for Accelerated Video Generation},
author = {The FastVideo Team},
url = {https://github.com/hao-ai-lab/FastVideo},
month = apr,
year = {2024},
}
@article{zhang2025vsa,
title={VSA: Faster Video Diffusion with Trainable Sparse Attention},
author={Zhang, Peiyuan and Huang, Haofeng and Chen, Yongqi 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}
}

About

A unified inference and post-training framework for accelerated video generation.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages