Views
No views yet
The inference environment is identical to Self Forcing, so you can migrate directly using our configs and model.
1conda create -n causal_forcing python=3.10 -y
2conda activate causal_forcing
3pip install -r requirements.txt
4pip install git+https://github.com/openai/CLIP.git
5pip install flash-attn --no-build-isolation
6python setup.py develop1hf download Wan-AI/Wan2.1-T2V-1.3B --local-dir wan_models/Wan2.1-T2V-1.3B
2hf download Wan-AI/Wan2.1-T2V-14B --local-dir wan_models/Wan2.1-T2V-14B
3hf download zhuhz22/Causal-Forcing chunkwise/causal_forcing.pt --local-dir checkpoints
4hf download zhuhz22/Causal-Forcing framewise/causal_forcing.pt --local-dir checkpointsWe open-source both the frame-wise and chunk-wise models; the former is a setting that Self Forcing has chosen not to release.
1python inference.py \
2 --config_path configs/causal_forcing_dmd_framewise.yaml \
3 --output_folder output/framewise \
4 --checkpoint_path checkpoints/framewise/causal_forcing.pt \
5 --data_path prompts/demos.txt \
6 --use_ema
7 # Note: this frame-wise config not in Self Forcing; if using its framework, migrate this config too.1python inference.py \
2 --config_path configs/causal_forcing_dmd_chunkwise.yaml \
3 --output_folder output/chunkwise \
4 --checkpoint_path checkpoints/chunkwise/causal_forcing.pt \
5 --data_path prompts/demos.txt1hf download zhuhz22/Causal-Forcing-data --local-dir dataset
2python utils/merge_and_get_clean.py1 torchrun --nnodes=8 --nproc_per_node=8 --rdzv_id=5235 \
2 --rdzv_backend=c10d \
3 --rdzv_endpoint $MASTER_ADDR \
4 train.py \
5 --config_path configs/ar_diffusion_tf_framewise.yaml \
6 --logdir logs/ar_diffusion_framewise1 torchrun --nnodes=8 --nproc_per_node=8 --rdzv_id=5235 \
2 --rdzv_backend=c10d \
3 --rdzv_endpoint $MASTER_ADDR \
4 train.py \
5 --config_path configs/ar_diffusion_tf_chunkwise.yaml \
6 --logdir logs/ar_diffusion_chunkwise1hf download zhuhz22/Causal-Forcing framewise/ar_diffusion.pt --local-dir checkpoints
2hf download zhuhz22/Causal-Forcing chunkwise/ar_diffusion.pt --local-dir checkpoints1torchrun --nnodes=8 --nproc_per_node=8 --rdzv_id=5235 \
2 --rdzv_backend=c10d \
3 --rdzv_endpoint $MASTER_ADDR \
4 train.py \
5 --config_path configs/causal_ode_framewise.yaml \
6 --logdir logs/causal_ode_framewiseThis stage is compatible with Self Forcing training, so you can migrate seamlessly by using our configs and checkpoints.
1torchrun --nnodes=8 --nproc_per_node=8 --rdzv_id=5235 \
2 --rdzv_backend=c10d \
3 --rdzv_endpoint $MASTER_ADDR \
4 train.py \
5 --config_path configs/causal_forcing_dmd_framewise.yaml \
6 --logdir logs/causal_forcing_dmd_framewise1@article{zhu2026causal,
2 title={Causal Forcing: Autoregressive Diffusion Distillation Done Right for High-Quality Real-Time Interactive Video Generation},
3 author={Zhu, Hongzhou and Zhao, Min and He, Guande and Su, Hang and Li, Chongxuan and Zhu, Jun},
4 journal={arXiv preprint arXiv:2602.02214},
5 year={2026}
6}