--- 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 ---

📱 NanoAvatar

Changing how often avatar applications can be used and how many users they can serve

📱 2023 mobile chipset · 41 FPS · ⚡ 103 ms first-frame latency

📱 Android downloads (Full / Lite) · 💻 Code and usage

🎬 Demos · 📊 Benchmarks · English · 简体中文

**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.