Unofficial community project. Not affiliated with, endorsed by, or produced by Alibaba Group or the Wan-Video team. Built on their Apache-2.0 Wan2.1 release.
A 1.3 B student distilled from a Wan2.1-14B teacher that generates video continuously rather than as a fixed clip: 750 ms of 640x368 video per block, generated in 428 ms on one A100 80GB, extended block by block for as long as you let it run. The text conditioning can be changed mid-stream without clearing the K/V cache, so the scene continues instead of cutting.
Code, setup and documentation: JonathanColetti/LiveWan. This repository holds weights and data only. It is not usable on its own.
The model is text-to-video and was never trained to articulate speech. There is no audio, no lip sync and no speech anywhere in this project. Text steers the scene. A face that appears to talk is generating plausible mouth motion, not saying your sentence.
To run the model — 6.0 GB. This is what setup.sh fetches.
| path | size | what |
|---|---|---|
checkpoints/t14b_b64/milestones/step002250_noema.pt |
5.3 GB | the model — 825 tensors, bf16, no EMA copy |
checkpoints/t14b_b64/history.json |
100 KB | the full training history of the run |
data/prompts.pt |
388 MB | umt5-xxl embeddings for 96 prompts, indices 0–95 |
out/world_p{0,44,60,82}.pt |
4 × 59 MB | the four cached evaluation worlds — skip base-model generation entirely |
samples/ |
16 MB | reference clips and analysis filmstrips from those worlds |
To continue the run Not needed for inference. do not download these unless you intend to train.
| path | size | what |
|---|---|---|
checkpoints/t14b_b64/latest.pt |
10.6 GB | step 3000, carries its EMA copy. The comparison arm, and the weights a resume starts from |
checkpoints/t14b_b64/opt_rank00{0..7}.pt |
8 × 2.2 GB | FSDP-sharded AdamW state at step 3000, one shard per rank |
Nothing here duplicates a public download. The Wan2.1 base model, its VAE and the
umt5-xxl encoder are not mirrored in this repository. setup.sh pulls
Wan-AI/Wan2.1-T2V-1.3B (17 GB)
from its own repo, and the 14B teacher is only needed if you are distilling.
The layout mirrors the code repository, so setup.sh downloads straight into place.
To take only part of it:
hf download JonathanColetti/LiveWan --local-dir . \
--exclude "checkpoints/t14b_b64/latest.pt" "checkpoints/t14b_b64/opt_rank*"
git clone https://github.com/JonathanColetti/LiveWan && cd LiveWan
pip install torch==2.8.0 torchvision==0.23.0 --index-url https://download.pytorch.org/whl/cu128
./setup.sh # pulls this repo, checksum-verified
python scripts/demo.py \
--weights checkpoints/t14b_b64/milestones/step002250_noema.pt \
--world-cache out/world_p60.pt --prompt-idx 60 \
--latent-norm 1.0 --block 3 --steps 2 --window 6 --units 60 --fps 16 \
--out out/demo_w60
Needs ~10 GiB of VRAM. scripts/live_demo.py serves the same model as a steerable
browser stream.
--prompt-idx must match the world: world_p60.pt goes with --prompt-idx 60.
Indices run 0–95; anything above fails.
3000 iterations of SF-DMD distillation from a Wan2.1-T2V-14B teacher into a Wan2.1-T2V-1.3B student, effective batch 64 (8×H200, accum 8, FSDP), 41.6 hours at 66.5 s/it, zero interventions. Losses do not decrease in this trainer and should not (the critic is retrained every step, so the generator holds position against a strengthening opponent).
The optimizer shards make extending the run a resume rather than a restart.
Put latest.pt, all eight opt_rank*.pt and history.json in the same run
directory and:
ITERS=4000 ./run_b64_resume.sh
Four things decide whether this works:
run_b64_resume.sh checks for all eight up front and refuses rather
than half-starting._noema and its
EMA is gone. The released checkpoint is the better model; latest.pt is the
only resumable one.--resume overwrites the checkpoint it resumed from. It reads
OUT/latest.pt and writes that same path at the first save.
run_b64_resume.sh preserves it as step003000.pt first — if you drive the
trainer directly instead, copy it aside yourself..tmp and renamed, so old and new coexist. Prune before the save,
not after; a post-save janitor cannot help, since the save is what runs out of
space.The resume path is verified rather than assumed: killing a run at step 12 brought
AdamW's internal counters back as 16/18 rather than reset, and the real 750→3000
resume held loss_gen, loss_critic, dmd_grad_norm and gn_gen within one
standard deviation of the 60-point pre-crash reference. A subtly broken restore
shows up as a shifted mean or changed variance; neither appeared.
WanModel.freqs.Apache-2.0. Derived from Wan2.1 (Apache-2.0, Alibaba Group).
checkpoints/t14b_b64/latest.pt 11 GBcheckpoints/t14b_b64/milestones/step002250_noema.pt 5.7 GBcheckpoints/t14b_b64/opt_rank000.pt 2.4 GBcheckpoints/t14b_b64/opt_rank001.pt 2.4 GBcheckpoints/t14b_b64/opt_rank002.pt 2.4 GBcheckpoints/t14b_b64/opt_rank003.pt 2.4 GBcheckpoints/t14b_b64/opt_rank004.pt 2.4 GBcheckpoints/t14b_b64/opt_rank005.pt 2.4 GBcheckpoints/t14b_b64/opt_rank006.pt 2.4 GBcheckpoints/t14b_b64/opt_rank007.pt 2.4 GBdata/prompts.pt 407 MBout/world_p44.pt 62 MBout/world_p60.pt 62 MBout/world_p82.pt 62 MBout/world_p0.pt 62 MB有文件?提交种子。
提交种子Wan-AI/Wan2.1-T2V-1.3B