Self-Forcing
Self-Forcing is a text-to-video (T2V) model based on Wan2.1. It uses a training paradigm for autoregressive video diffusion that simulates inference-time rollout during training with KV caching, reducing the train-test gap and enabling efficient streaming generation quality.

Quick Start
T2V
uv sync --package flashdreams-self-forcing --inexact
uv run --no-sync flashdreams-run-v2 \
t2v-self-forcing-wan2.1-t2v-1.3b \
--output-path artifacts/self-forcing.mp4 --timeout unbound -- \
--prompt "A cat surfing" --total-blocks 7
Demo Presets
T2V
| Preset | Description |
|---|---|
t2v-self-forcing-wan2.1-t2v-1.3b |
Official checkpoint and Wan VAE decoder. |
t2v-self-forcing-wan2.1-t2v-1.3b-taehv |
Official checkpoint with the faster TAEHV decoder. |
t2v-self-forcing-wan2.1-t2v-1.3b-sink5-window7-rerope |
Long-rollout preset with static sink 5, rolling window 7, and KV-cache-relative RoPE. |
Developer Details
- Minimum VRAM: about 24 GB.
- PyTorch: 2.9 or newer.
Performance (Outdated)
Here is the profiling benchmark on total DiT runtime for FlashDreams Self-Forcing compared to the official Self-Forcing implementation and the FastVideo implementation under matched settings.
torch.compile for DiT network.
For profiling the official implementation, see
this instruction.
For profiling the FastVideo implementation, see
this instruction.
Citation
If you use Self-Forcing, please cite the original work:
@article{huang2025self,
title={Self Forcing: Bridging the Train-Test Gap in Autoregressive Video Diffusion},
author={Huang, Xun and Li, Zhengqi and He, Guande and Zhou, Mingyuan and Shechtman, Eli},
journal={Advances in Neural Information Processing Systems},
volume={38},
pages={167283--167308},
year={2025}
}