LiveWan / README.md
JonathanColetti's picture
LiveWan streaming demo on ZeroGPU
36cdb93 verified
|
Raw
History Blame
2.01 kB
---
title: LiveWan
emoji: 🎞️
colorFrom: blue
colorTo: indigo
sdk: gradio
sdk_version: 6.24.0
app_file: app.py
python_version: "3.10"
short_description: Streaming text-to-video you can steer mid-stream
startup_duration_timeout: 1h
pinned: false
license: apache-2.0
models:
- JonathanColetti/LiveWan
- Wan-AI/Wan2.1-T2V-1.3B
tags:
- text-to-video
- streaming
- real-time
- wan2.1
---
# LiveWan
Streaming, steerable text-to-video from a 1.3B student distilled out of
Wan2.1-T2V-14B with SF-DMD. It generates video continuously rather than as a fixed
clip β€” 750 ms of 640Γ—368 at a time, extended block by block β€” and the text
conditioning can be swapped mid-stream without clearing the K/V cache, so the scene
continues instead of cutting.
- Code: https://github.com/JonathanColetti/LiveWan
- Weights and data: https://huggingface.co/JonathanColetti/LiveWan
## What this Space runs
`app.py` drives the project's own serving engine, `wanstreamer.serve.engine.Engine`
β€” the same code path `livewan-serve` runs locally. `wanstreamer/` and
`wan21_patches/` here are copies of the GitHub repo's; the Wan2.1 reference code is
cloned and patched at startup exactly as `setup.sh` does.
Two differences from running it locally, both forced by ZeroGPU:
- **Steering is a schedule, not a button.** A GPU worker is forked per request and
cannot be steered from outside while it runs, so the demo takes the swap up front
("switch to this prompt at t = N seconds"). The swap itself is the live one:
`Engine.steer` replaces the cross-attention conditioning and leaves the cache in
place.
- **No free text.** Encoding it needs umt5-xxl, 11 GB on top of the 18 GB this
Space already pulls at startup, so the selectors are the project's 96-prompt bank
β€” which is the conditioning every published number refers to. Run the GitHub repo
locally for free text.
`torch.compile` of the VAE decoder is also off, since it cannot run in a ZeroGPU
worker. That costs roughly 50 ms per block.