---
language:
- en
- zh
inference: false
license: other
license_name: nanoavatar-model-licenses
license_link: LICENSE
tags:
- nanoavatar
- talking-head
- lip-sync
- audio-driven
- audio-to-video
- real-time
- streaming
---
**Generate high-fidelity talking-avatar videos directly on your phone, without a cloud GPU.**
## 🎬 Demos
> **Generalization demo:** The examples below were not used to train the model, nor was it specifically fine-tuned for them.
| English demo |
Chinese demo |
|
|
|
**Try the on-device avatar generation model offline.** The app includes the models and an avatar. Record your voice to animate it. [Android guide](https://github.com/wpydcr/NanoAvatar#run-on-android).
## 📊 Performance
| Model | Device | Model FPS | First frame | Memory / VRAM estimate |
| --- | --- | ---: | ---: | ---: |
| 📱 NanoAvatar | **2023 · Snapdragon 8 Gen 3**
Android 14 | **39 FPS** | **115 ms** | **834 MiB** |
| 📱 NanoAvatar Lite | **2023 · Snapdragon 8 Gen 3**
Android 14 | **41 FPS** | **103 ms** | **700 MiB** |
| 📱 NanoAvatar Lite | **2021 · Snapdragon 8 Gen 1**
Android 15 | **18 FPS** | **183 ms** | **693 MiB** |
| ⚡ Quantized | **RTX 4090**
Windows CUDA | **333 FPS** | **18 ms** | **834 MiB** |
| 🖥️ Full precision | **RTX 4090**
Windows CUDA | **224 FPS** | **37 ms** | **1119 MiB** |
Android first-frame timing runs from audio feature extraction to the first generated image.
The model generates a **256 × 256 face region**, composited at the source video's original resolution.
🌊 **Streaming generation: start speaking as audio arrives.** With a streaming LLM and streaming TTS, NanoAvatar starts speaking in **about 0.3 seconds in our tests**, without waiting for the complete audio.
## 📦 Choose and download a model
| Model | Files | Contents |
| --- | --- | --- |
| ⚡ Quantized | [`quantized/`](https://huggingface.co/wpydcr/NanoAvatar/tree/main/quantized) | PyTorch/CUDA: HuBERT W8A16, mixed INT8 lip-sync model and CUDA DLL |
| 🖥️ Full precision | `full-precision/`(come soon) | PyTorch: HuBERT FP16 and lip-sync model FP32 |
| 📱 Android compiled | [`android-qnn/`](https://huggingface.co/wpydcr/NanoAvatar/tree/main/android-qnn) | CPU: original FP32 face/audio encoders. QNN: HuBERT W8A16 and HTP FP16 generator |
The quantized CUDA runtime targets **Windows CUDA SM89 (RTX 4090)**. The Android package targets **Snapdragon 8 Gen 3 / HTP v75**.
Install the Hugging Face CLI, then download the package you need:
```shell
python -m pip install huggingface_hub
```
### ⚡ Quantized
```shell
hf download wpydcr/NanoAvatar --include "quantized/*" --local-dir models
```
### 🖥️ Full precision
```shell
hf download wpydcr/NanoAvatar --include "full-precision/*" --local-dir models
```
### 📱 Android compiled
```shell
hf download wpydcr/NanoAvatar --include "android-qnn/*" --local-dir models
```
Keep the complete directory structure when downloading.
Running the models and integrating them: [NanoAvatar on GitHub](https://github.com/wpydcr/NanoAvatar).
## License
[chinese-hubert-large](https://huggingface.co/TencentGameMate/chinese-hubert-large) and its quantized and compiled versions retain the upstream MIT license.
Our lip-sync model and its quantized and compiled versions use [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/). Academic research and other noncommercial uses are permitted, subject to attribution and the other license terms.
**Commercial licensing:** [wupingyu@mail.ustc.edu.cn](mailto:wupingyu@mail.ustc.edu.cn).
See [LICENSE](LICENSE) for the full terms.