File size: 5,030 Bytes
a49ab67
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
07badfe
 
 
 
 
 
 
 
 
 
 
a49ab67
 
 
 
 
07badfe
a49ab67
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
---
license: apache-2.0
language:
- en
base_model:
- Wan-AI/Wan2.1-T2V-14B
pipeline_tag: image-to-video
tags:
- Talking Avatar
- Audio-Driven Video Generation
- Video Reference
---

<div style="display:flex;align-items:center;justify-content:space-between;gap:16px"><span style="font-size:2em;font-weight:600;line-height:1.25">TAVR</span><picture style="flex:none"><source media="(prefers-color-scheme: dark)" srcset="https://huggingface.co/HeyGenAI/TAVR/resolve/main/assets/heygen-logo-white.png"><img src="https://huggingface.co/HeyGenAI/TAVR/resolve/main/assets/heygen-logo-black.png" alt="HeyGen Research" style="height:44px;display:block"></picture></div>

<p align="center">
  <a href="https://arxiv.org/abs/2604.27918"><img src="https://img.shields.io/badge/arXiv-2604.27918-b31b1b.svg" alt="arXiv"></a>
  <a href="https://gseancdat.github.io/projects/TAVR.html"><img src="https://img.shields.io/badge/Project-Page-1f6feb.svg" alt="Project Page"></a>
  <a href="https://github.com/heygen-com/TAVR"><img src="https://img.shields.io/badge/GitHub-heygen--com%2FTAVR-181717.svg" alt="GitHub"></a>
  <a href="https://www.apache.org/licenses/LICENSE-2.0"><img src="https://img.shields.io/badge/License-Apache%202.0-3da639.svg" alt="License"></a>
</p>

<p align="center">
  <b>Generate Your Talking Avatar from Video Reference</b>
</p>

<p align="center">
  <b>Accepted to SIGGRAPH Asia 2026</b>
</p>

> [!IMPORTANT]
> **This is not a drop-in Wan2.1 checkpoint.** It is a TAVR transformer with 18 input channels
> and its own reference and audio conditioning, and it needs four companion models at inference
> time (Wan VAE, umT5, wav2vec 2.0, and a person detector plus a pose model) that are not bundled
> here. A stock `diffusers` Wan2.1 pipeline will not produce correct results.
>
> Run it through the released inference code: **https://github.com/heygen-com/TAVR**

## Model Description

TAVR replaces single-image avatar references with short video clips, enabling cross-scene
generation with significantly better identity preservation. A three-stage training strategy
bridges the domain gap between reference and target scenes.

## Model Details

| | |
|---|---|
| Base model | [Wan-AI/Wan2.1-T2V-14B](https://huggingface.co/Wan-AI/Wan2.1-T2V-14B) |
| Input | reference video, target still, caption, driving audio |
| Output | 896x480, 25 fps, driving audio muxed in |
| Sampler | UniPC, 24 steps, flow shift 5.0; text guidance 5.0, audio guidance 1.8 |
| Reference frames | Flexible (default 20) |
| Precision | `bfloat16` |
| Hardware | one Hopper-class CUDA GPU with at least 80 GB of memory |

## Usage

```bash
git clone https://github.com/heygen-com/TAVR
cd TAVR

python3.10 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu126

hf download HeyGenAI/TAVR --local-dir ./ckpt

PYTHONPATH=. python infer.py \
  --sample-dir samples/example1 \
  --dit-ckpt ckpt/tavr_transformer.safetensors \
  --ckpt-dir . \
  --output-dir outputs
```

`flash_attn_3` has no PyPI wheel and is the only attention backend; it and the companion models
are set up as described in the
[repository README](https://github.com/heygen-com/TAVR).

## Evaluation

Qualitative results and comparisons against baselines are on the
[project page](https://gseancdat.github.io/projects/TAVR.html).

On the cross-scene benchmark, TAVR yields the best identity similarity and an overall quality
score of 16.42 against 14.13 for the next best method.

### Cross-scene benchmark data

`benchmark_data.json` lists the 158 reference/target pairs of the cross-scene benchmark. The clips
come from the public [TalkVid](https://github.com/FreedomIntelligence/TalkVid) dataset. Each sample has:

| field | content |
|---|---|
| `reference`, `target` | `video_id`, `video_url`, `start_time` / `end_time` (seconds), `start_frame` / `end_frame` at the source `fps`, `width`, `height` |
| `target_caption` | scene caption used as the text prompt |

## Release Progress

- [x] Model weights
- [x] Inference code
- [x] Cross-scene benchmark data

## Citation

```bibtex
@inproceedings{guo2026generate,
     title={Generate Your Talking Avatar from Video Reference},
     author={Guo, Zujin and Ye, Zhenhui and Ren, Yi and Li, Yuanming and Chen, Ce and Hong, Zhibin and Loy, Chen Change},
      booktitle={SIGGRAPH Asia 2026 Conference Papers},
     year={2026}
}
```

## License

Apache License 2.0, inherited from [Wan2.1-T2V-14B](https://huggingface.co/Wan-AI/Wan2.1-T2V-14B).

### Third-party weights at inference time

<sub>Running TAVR additionally requires
<a href="https://github.com/IDEA-Research/DWPose">DWPose</a> pose weights (Apache-2.0) and
<a href="https://github.com/ultralytics/ultralytics">Ultralytics YOLO</a> weights
(<b>AGPL-3.0</b>). Neither is redistributed here, and neither is contained in these weights;
obtain them from their own channels and observe their terms.</sub>

<sub>All videos and results shown here are for research demonstration purposes only.</sub>