JinhyukJang commited on
Commit
130be5f
·
verified ·
1 Parent(s): e9f35a8

Upload folder using huggingface_hub

Browse files
Files changed (3) hide show
  1. README.md +91 -0
  2. lipforcing_14b.pth +3 -0
  3. teacher/omniavatar_ls_14b.pt +3 -0
README.md ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ base_model: Wan-AI/Wan2.1-T2V-14B
4
+ tags:
5
+ - lip-sync
6
+ - talking-head
7
+ - video-to-video
8
+ - video-generation
9
+ - diffusion
10
+ - autoregressive
11
+ - distillation
12
+ - wan2.1
13
+ ---
14
+
15
+ # Lip Forcing: Few-Step Autoregressive Diffusion for Real-time Lip Synchronization
16
+
17
+ [Paper (arXiv:2606.11180)](https://arxiv.org/abs/2606.11180) ·
18
+ [Project page](https://cvlab-kaist.github.io/LipForcing/) ·
19
+ [Code (GitHub)](https://github.com/cvlab-kaist/LipForcing)
20
+
21
+ <p align="center"><img src="https://cvlab-kaist.github.io/LipForcing/assets/main_arch.png" width="95%" alt="Lip Forcing architecture"></p>
22
+
23
+ **Lip Forcing** is, to our knowledge, the first autoregressive diffusion method for
24
+ video-to-video (V2V) lip synchronization. It distills a high-fidelity bidirectional 14B
25
+ audio-conditioned teacher (*OmniAvatar-LS*, our lip-sync finetune of OmniAvatar) into causal
26
+ few-step students that generate each chunk in just **two denoising steps with no
27
+ inference-time CFG** - enabling real-time, streaming lip-sync on a reference video with
28
+ sub-millisecond time-to-first-frame.
29
+
30
+ ## Files in this repository
31
+
32
+ | File | What | For |
33
+ |------|------|-----|
34
+ | `lipforcing_14b.pth` | 14B student - merged, self-contained (base Wan + OmniAvatar-LS adapter + Self-Forcing student baked into one file) | inference |
35
+ | `teacher/omniavatar_ls_14b.pt` | OmniAvatar-LS 14B V2V adapter (frozen distillation teacher + student init) | training |
36
+ | *1.3B student* | *coming soon (same repo)* | |
37
+
38
+ ## Quickstart
39
+
40
+ Install the code from [GitHub](https://github.com/cvlab-kaist/LipForcing):
41
+
42
+ ```bash
43
+ git clone https://github.com/cvlab-kaist/LipForcing.git && cd LipForcing
44
+ conda create -y -n lipforcing python=3.12 && conda activate lipforcing
45
+ pip install -e .
46
+ ```
47
+
48
+ Download this checkpoint plus the small external encoders/decoders (commands for every
49
+ component are in the repo README's *Weights* section), then:
50
+
51
+ ```bash
52
+ python scripts/inference/inference_streaming.py \
53
+ --ckpt_path weights/lipforcing_14b.pth \
54
+ --vae_path weights/Wan2.1-T2V-14B/Wan2.1_VAE.pth \
55
+ --wav2vec_path weights/wav2vec2-base-960h \
56
+ --mask_path weights/mask.png \
57
+ --taehv_ckpt weights/taew2_1.pth \
58
+ --text_encoder_path weights/Wan2.1-T2V-14B/models_t5_umt5-xxl-enc-bf16.pth \
59
+ --video_path ref.mp4 --audio_path speech.wav --output_path out.mp4
60
+ ```
61
+
62
+ Streaming inference encodes, denoises, decodes, and composites each AR chunk on the fly -
63
+ first frames arrive before the clip finishes, GPU memory stays constant for any clip length
64
+ (**~37 GB** peak at 14B with precomputed text embeddings; ~50 GB with runtime T5 encoding),
65
+ and face detection + 512×512 alignment + paste-back run automatically, so any talking-head
66
+ video works as input.
67
+
68
+ Training (two stages: Diffusion-Forcing init, then Self-Forcing DMD distillation with the
69
+ SyncNet reward) is documented in the repo's
70
+ [README](https://github.com/cvlab-kaist/LipForcing#training) and
71
+ [DATA.md](https://github.com/cvlab-kaist/LipForcing/blob/master/DATA.md).
72
+
73
+ ## Acknowledgements
74
+
75
+ Builds on [NVIDIA FastGen](https://github.com/NVlabs/FastGen),
76
+ [Self Forcing](https://github.com/guandeh17/Self-Forcing),
77
+ [Reward-Forcing](https://github.com/JaydenLyh/Reward-Forcing),
78
+ [OmniAvatar](https://github.com/Omni-Avatar/OmniAvatar), and
79
+ [Wan2.1](https://github.com/Wan-Video/Wan2.1). Third-party licenses ship in the
80
+ [code repository](https://github.com/cvlab-kaist/LipForcing/tree/master/licenses).
81
+
82
+ ## Citation
83
+
84
+ ```bibtex
85
+ @article{cho2026lipforcing,
86
+ title = {Lip Forcing: Few-Step Autoregressive Diffusion for Real-time Lip Synchronization},
87
+ author = {Cho, Paul Hyunbin and Jang, Jinhyuk and Lee, SeokYoung and Lee, Joungbin and Jin, Siyoon and Shin, Heeseong and Yi, Jung and Park, Yunjin and Park, Chulmin and Kim, Seungryong},
88
+ journal = {arXiv preprint arXiv:2606.11180},
89
+ year = {2026},
90
+ }
91
+ ```
lipforcing_14b.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ea9f111f374a208a80b6604e2c698639f03ad666bb7cda72c727a93cd43e4307
3
+ size 28588528943
teacher/omniavatar_ls_14b.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b7e2d22592fa20d5622e82fdd2c3cc9fab9ca5c2fb080306ccd877d9e6b9fa45
3
+ size 1238964875