← 开源
jdh-algo

JoyVASA

Diffusion-based Portrait and Animal Animation

ApplicationsContent creationPython
在 GitHub 打开
增长势头
+024 小时新增 Star0.0%
880
Star
90
Fork
+0
本周
3
贡献者
创建于 2024-11-14 · 更新于 2026-10-15 · 今日第 12948 名
主要开发者
xuyangcaoDBDXSSnewgenai79

jdh-algo/JoyVASA 排名第 12,948,有 880 个星标。

同类别比较

jdh-algo/JoyVASA 排名第 12,948,此处有 8 个同类条目;NVIDIA-AI-Blueprints/pdf-to-podcast 排名第 12,945。

同类别比较
名称排名指标
ghostsecurity/reaper12,931
语言:
Go
星标数:
882
分叉数:
93
简介:
Live validation proxy tool for testing web app vulnerabilities
th1nhhdk/local_ai_ocr12,935
语言:
Python
星标数:
882
分叉数:
210
简介:
An local, offline (after initial setup), portable OCR software that can process images and PDF files, using DeepSeek-OCR-2 AI (running directly on your machine).
huggingface/llm-ls12,937
语言:
Rust
星标数:
881
分叉数:
72
简介:
LSP server leveraging LLMs for code completion (and more?)
NVIDIA-AI-Blueprints/pdf-to-podcast12,945
语言:
Python
星标数:
880
分叉数:
241
简介:
Transform PDFs into AI podcasts for engaging on-the-go audio content.
vinhnx/VTCode12,951
语言:
Rust
星标数:
880
分叉数:
92
简介:
VT Code is an open-source Rust terminal coding agent.
LuoGen-AI/LuoGen-agent12,953
语言:
Python
星标数:
879
分叉数:
134
简介:
一键产出爆款视频:1.自动提取对标文案 2.自动进行文案仿写 3.自动根据文案声音克隆 4.自动生成数字人口播 5.自动添加字幕 6.自动添加背景音乐 7.自动添加视频标题 8.自动生成视频封面 9.自动将视频发布到各平台
MolecularAI/REINVENT412,954
语言:
Python
星标数:
879
分叉数:
235
简介:
AI molecular design tool for de novo design, scaffold hopping, R-group replacement, linker design and molecule optimization.
eli-labz/Third-Eye12,967
语言:
TypeScript
星标数:
877
分叉数:
29
简介:
A production-grade OSINT platform that provides situational awareness across multiple intelligence domains.
关键参数与规格
关键参数与规格
参数值
语言Python
类别Applications
子类别Content creation
关键词Video production
星标数880
分叉数90
贡献者3
创建日期2024-11-14
更新日期2026-10-15
1 天星标数0
7 天星标数0
排名12,948
上次排名18,874
排名变化5,926
7 天星标排名13,685
上次 7 天星标排名13,699
7 天星标排名变化14
总星标排名12,315
上次总星标排名12,295
总星标排名变化-20
README 摘录

JoyVASA: Portrait and Animal Image Animation with Diffusion-Based Audio-Driven Facial Dynamics and Head Motion Generation 📖 Introduction Audio-driven portrait animation has made significant advances with diffusion-based models, improving video quality and lipsync accuracy. However, the increasing complexity of these models has led to inefficiencies in training and inference, as well as constraints on video length and inter-frame continuity. In this paper, we propose JoyVASA, a diffusion-based method for generating facial dynamics and head motion in

audio-driven facial animation. Specifically, in the first stage, we introduce a decoupled facial representation framework that separates dynamic facial expressions from static 3D facial representations. This decoupling allows the system to generate longer videos by combining any static 3D facial representation with dynamic motion sequences. Then, in the second stage, a diffusion transformer is trained to generate motion sequences directly from audio cues, independent of character identity. Finally, a generator trained in the first stage uses the 3D facial

representation and the generated motion sequences as inputs to render high-quality animations. With the decoupled facial representation and the identity-independent motion generation process, JoyVASA extends beyond human portraits to animate animal faces seamlessly. The model is trained on a hybrid dataset of private Chinese and public English data, enabling multilingual support. Experimental results validate the effectiveness of our approach. Future work will focus on improving real-time performance and refining expression control, further expanding the framework’s applications

in portrait animation. 🧳 Framework **Inference Pipeline of the proposed JoyVASA. ** Given a reference image, we first extract the 3D facial appearance feature using the appearance encoder in LivePortrait, and also a series of learned 3D keypoints using the motion encoder. For the input speech, the audio features are initially extracted using the wav2vec2 encoder. The audio-driven motion sequences are then sampled using a diffusion model trained in the second stage in a sliding window fashion. Using the 3D keypoints

of reference image, and the sampled target motion sequences, the target keypoints are computed. Finally, the 3D facial appearance feature is warped based on the source and target keypoints and rendered by a generator to produce the final output video. ⚙️ Installation **System requirements:** Ubuntu: Tested on Ubuntu 20. 1 Tested GPUs: A100 Windows: Tested on Windows 11, CUDA 12. 1 Tested GPUs: RTX 4060 Laptop 8GB VRAM GPU **Create environment:** 🎒 Prepare model checkpoints Make sure you have git-lfs installed

and download all the following checkpoints to : 1. Download JoyVASA motion generator checkpoints 2. Download audio encoder checkpoints We suport two types of audio encoders, including wav2vec2-base, and hubert-chinese. Run the following commands to download hubert-chinese pretrained weights: To get the wav2vec2-base pretrained weights, run the following commands: [! NOTE] The motion generation model with wav2vec2 encoder will be supported later. Download LivePortraits checkpoints Refering to Liveportrait for more download methods. contents The final directory should look

like this: [! NOTE] The folder in Windows should be renamed . Inference with command line Animal: Human: You can change cfg

常见问题

记录了多少星标和分叉?

jdh-algo/JoyVASA 有 880 个星标和 90 个分叉。

仓库排名是多少?

jdh-algo/JoyVASA 排名第 12,948。

记录的语言和类别是什么?

jdh-algo/JoyVASA 有 880 个星标,语言为 Python,类别为 Applications。

哪个仓库排名最接近?

jdh-algo/JoyVASA 与 NVIDIA-AI-Blueprints/pdf-to-podcast 比较,后者排名第 12,945,有 880 个星标。

README

JoyVASA: Portrait and Animal Image Animation with Diffusion-Based Audio-Driven Facial Dynamics and Head Motion Generation

[Xuyang Cao](https://github.com/xuyangcao)1* 
Guoxin Wang12* 
[Sheng Shi](https://github.com/DBDXSS)1* 
[Jun Zhao](https://github.com/zhaojun060708)1 
Yang Yao1




Jintao Fei1 
Minyu Gao1 
Pei Xie1




1JD Health International Inc.  2Zhejiang University







[![](https://img.shields.io/github/stars/jdh-algo/JoyVASA?style=social)](https://github.com/jdh-algo/JoyVASA)
[![](https://img.shields.io/badge/Project-HomePage-Green)](https://jdh-algo.github.io/JoyVASA)
[![](https://img.shields.io/badge/Paper-Arxiv-red)](https://arxiv.org/abs/2411.09209)
[![](https://img.shields.io/badge/%F0%9F%A4%97%20HuggingFace-Model-yellow)](https://huggingface.co/jdh-algo/JoyVASA)

📖 Introduction

Audio-driven portrait animation has made significant advances with diffusion-based models, improving video quality and lipsync accuracy. However, the increasing complexity of these models has led to inefficiencies in training and inference, as well as constraints on video length and inter-frame continuity. In this paper, we propose JoyVASA, a diffusion-based method for generating facial dynamics and head motion in audio-driven facial animation. Specifically, in the first stage, we introduce a decoupled facial representation framework that separates dynamic facial expressions from static 3D facial representations. This decoupling allows the system to generate longer videos by combining any static 3D facial representation with dynamic motion sequences. Then, in the second stage, a diffusion transformer is trained to generate motion sequences directly from audio cues, independent of character identity. Finally, a generator trained in the first stage uses the 3D facial representation and the generated motion sequences as inputs to render high-quality animations. With the decoupled facial representation and the identity-independent motion generation process, JoyVASA extends beyond human portraits to animate animal faces seamlessly. The model is trained on a hybrid dataset of private Chinese and public English data, enabling multilingual support. Experimental results validate the effectiveness of our approach. Future work will focus on improving real-time performance and refining expression control, further expanding the framework’s applications in portrait animation.

🧳 Framework

Inference Pipeline of the proposed JoyVASA. Given a reference image, we first extract the 3D facial appearance feature using the appearance encoder in LivePortrait, and also a series of learned 3D keypoints using the motion encoder. For the input speech, the audio features are initially extracted using the wav2vec2 encoder. The audio-driven motion sequences are then sampled using a diffusion model trained in the second stage in a sliding window fashion. Using the 3D keypoints of reference image, and the sampled target motion sequences, the target keypoints are computed. Finally, the 3D facial appearance feature is warped based on the source and target keypoints and rendered by a generator to produce the final output video.

⚙️ Installation

System requirements:

Ubuntu:

  • Tested on Ubuntu 20.04, CUDA 12.1
  • Tested GPUs: A100

Windows:

  • Tested on Windows 11, CUDA 12.1
  • Tested GPUs: RTX 4060 Laptop 8GB VRAM GPU

Create environment:

# 1. Create base environment
conda create -n joyvasa python=3.10 -y
conda activate joyvasa 

# 2. Install requirements
pip install -r requirements.txt

# 3. Install ffmpeg
sudo apt-get update  
sudo apt-get install ffmpeg -y

# 4. Optional: Install MultiScaleDeformableAttention for animal image animation
cd src/utils/dependencies/XPose/models/UniPose/ops
python setup.py build install
cd - # equal to cd ../../../../../../../

🎒 Prepare model checkpoints

Make sure you have git-lfs installed and download all the following checkpoints to pretrained_weights:

1. Download JoyVASA motion generator checkpoints

git lfs install
git clone https://huggingface.co/jdh-algo/JoyVASA

2. Download audio encoder checkpoints

We suport two types of audio encoders, including wav2vec2-base, and hubert-chinese.

Run the following commands to download hubert-chinese pretrained weights:

git lfs install
git clone https://huggingface.co/TencentGameMate/chinese-hubert-base

To get the wav2vec2-base pretrained weights, run the following commands:

git lfs install
git clone https://huggingface.co/facebook/wav2vec2-base-960h

[!NOTE] The motion generation model with wav2vec2 encoder will be supported later.

3. Download LivePortraits checkpoints

# !pip install -U "huggingface_hub[cli]"
huggingface-cli download KwaiVGI/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"

Refering to Liveportrait for more download methods.

4. pretrained_weights contents

The final pretrained_weights directory should look like this:

./pretrained_weights/
├── insightface                                                                                                                                                 
│   └── models                                                                                                                                                  
│       └── buffalo_l                                                                                                                                           
│           ├── 2d106det.onnx                                                                                                                                   
│           └── det_10g.onnx   
├── JoyVASA
│   ├── motion_generator
│   │   └── iter_0020000.pt
│   └── motion_template
│       └── motion_template.pkl
├── liveportrait
│   ├── base_models
│   │   ├── appearance_feature_extractor.pth
│   │   ├── motion_extractor.pth
│   │   ├── spade_generator.pth
│   │   └── warping_module.pth
│   ├── landmark.onnx
│   └── retargeting_models
│       └── stitching_retargeting_module.pth
├── liveportrait_animals
│   ├── base_models
│   │   ├── appearance_feature_extractor.pth
│   │   ├── motion_extractor.pth
│   │   ├── spade_generator.pth
│   │   └── warping_module.pth
│   ├── retargeting_models
│   │   └── stitching_retargeting_module.pth
│   └── xpose.pth
├── TencentGameMate:chinese-hubert-base
│   ├── chinese-hubert-base-fairseq-ckpt.pt
│   ├── config.json
│   ├── gitattributes
│   ├── preprocessor_config.json
│   ├── pytorch_model.bin
│   └── README.md
└── wav2vec2-base-960h               
    ├── config.json                  
    ├── feature_extractor_config.json
    ├── model.safetensors
    ├── preprocessor_config.json
    ├── pytorch_model.bin
    ├── README.md
    ├── special_tokens_map.json
    ├── tf_model.h5
    ├── tokenizer_config.json
    └── vocab.json

[!NOTE] The folder TencentGameMate:chinese-hubert-base in Windows should be renamed chinese-hubert-base.

🚀 Inference

1. Inference with command line

Animal:

python inference.py -r assets/examples/imgs/joyvasa_001.png -a assets/examples/audios/joyvasa_001.wav --animation_mode animal --cfg_scale 2.0

Human:

python inference.py -r assets/examples/imgs/joyvasa_003.png -a assets/examples/audios/joyvasa_003.wav --animation_mode human --cfg_scale 2.0

You can change cfg_scale to get results with different expressions and poses.

[!NOTE] Mismatching Animation Mode and Reference Image may result in incorrect results.

2. Inference with web demo

Use the following command to start web demo:

python app.py

The demo will be create at http://127.0.0.1:7862.

⚓️ Train Motion Generator with Your Own Data

The motion generater should be trained using human talking face videos.

1. Prepare train and validation data

Chnage the root_dir in 01_extract_motions.py with you own dataset path, then run the following commands to generate training and validation data:

cd src/prepare_data
python 01_extract_motions.py
python 05_extract_audio.py
python 02_gen_labels.py
pyhton 03_merge_motions.py
python 04_gen_template.py

mv motion_templete.pkl motions.pkl train.json test.json ../../data
cd ../..

2. Train

python train.py

The experimental results is located in experiments/.

📝 Citations

If you find our work helpful, please consider citing us:

@misc{cao2024joyvasaportraitanimalimage,
      title={JoyVASA: Portrait and Animal Image Animation with Diffusion-Based Audio-Driven Facial Dynamics and Head Motion Generation}, 
      author={Xuyang Cao and Guoxin Wang and Sheng Shi and Jun Zhao and Yang Yao and Jintao Fei and Minyu Gao},
      year={2024},
      eprint={2411.09209},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2411.09209}, 
}

🤝 Acknowledgments

We would like to thank the contributors to the LivePortrait, Open Facevid2vid, InsightFace, X-Pose, DiffPoseTalk, Hallo, wav2vec 2.0, Chinese Speech Pretrain, Q-Align, Syncnet, and VBench repositories, for their open research and extraordinary work.

排名相邻
同类项目