← Open Source
antgroup

ditto-talkinghead

[ACM MM 2025] Ditto: Motion-Space Diffusion for Controllable Realtime Talking Head Synthesis.

ModelsAudio/Speech modelsPython
Open on GitHub
Momentum
+1stars in 24 hours+0.1%
908
Stars
167
Forks
+2
This week
1
Contributors
Created 2025-01-10 · Updated 2026-10-16 · #6055 today
Top developers
digital-avatar

antgroup/ditto-talkinghead is ranked 6,055 with 908 stars.

Same-category comparison

antgroup/ditto-talkinghead is ranked 6,055 among these 8 peers; ibm-granite/granite-tsfm is ranked 6,051.

Same-category comparison
NameRankMetrics
NVIDIA-AI-IOT/nanosam6,040
Language:
Python
Stars:
921
Forks:
81
Description:
A distilled Segment Anything (SAM) model capable of running real-time with NVIDIA TensorRT.
facebookresearch/SONAR6,049
Language:
Python
Stars:
913
Forks:
103
Description:
SONAR, a new multilingual and multimodal fixed-size sentence embedding space, with a full suite of speech and text encoders and decoders.
huawei-bayerlab/marigold-v26,050
Language:
Python
Stars:
913
Forks:
75
Description:
Marigold V2: Revisiting Diffusion Transformers for Monocular Depth Estimation.
ibm-granite/granite-tsfm6,051
Language:
Jupyter Notebook
Stars:
912
Forks:
283
Description:
Foundation Models for Time Series.
The-FinAI/PIXIU6,075
Language:
Jupyter Notebook
Stars:
894
Forks:
126
Description:
This repository introduces PIXIU, an open-source resource featuring the first financial large language models (LLMs), instruction tuning data, and evaluation benchmarks to holistically assess financial LLMs. Our goal is to continually push forward the open-source development of financial artificial intelligence (AI).
neuralmind-ai/portuguese-bert6,091
Language:
Python
Stars:
887
Forks:
139
Description:
Portuguese pre-trained BERT models.
Tencent-Hunyuan/HY-Embodied6,110
Language:
Python
Stars:
875
Forks:
17
Description:
HY-Embodied: Embodied Foundation Models for Real-World Agents.
facebookresearch/MHR6,116
Language:
Python
Stars:
872
Forks:
79
Description:
Momentum Human Rig is an anatomically-inspired parametric full-body digital human model developed at Meta. It includes: A parametric body skeletal model; A realistic 3D mesh skinned to the skeleton with levels of detail;A body blendshape and pose corrective model; A facial blendshape model.Its design is friendly for both CG and CV communities.
Key parameters and specifications
Key parameters and specifications
ParameterValue
LanguagePython
CategoryModels
SubcategoryAudio/Speech models
KeywordsAI character, TTS, Video production
Stars908
Forks167
Contributors1
Created date2025-01-10
Updated date2026-10-16
Stars in 1 day1
Stars in 7 days2
Rank6,055
Previous rank18,859
Rank change12,804
7-day stars rank8,381
Previous 7-day stars rank6,297
7-day stars rank change-2,084
Total stars rank11,987
Previous total stars rank11,983
Total stars rank change-4
CountryChina
README summary

Ditto: Motion-Space Diffusion for Controllable Realtime Talking Head Synthesis Ant Group 📌 Updates [2025. 12] 🔥🔥 We noticed the community's enthusiasm for open-source training code. Training code is now available, since there have been multiple versions and limited time to organize, it may differ slightly from the paper version. 11] 🔥 The PyTorch model is now available. 07] 🔥 Ditto is accepted by ACM MM 2025. 21] 🔥 We update the Colab demo, welcome to try it. 10] 🔥 We release our inference codes

and models. 🔍 Overview This is the **inference branch**. For training code, please switch to the branch. 🛠️ Installation Tested Environment System: Centos 7. 1 Clone the codes from GitHub: Conda Create environment: Pip If you have problems creating a conda environment, you can also refer to our Colab. After correctly installing , and , you only need to install a few packages using pip: If you don't use , you may also need to install according to the official website. 📥 Download Checkpoints Download checkpoints

from HuggingFace and put them in dir: The should be like: The is online config The is offline config 🚀 Inference Run : For example: ❗Note: We have provided the tensorRT model with ( ). If your GPU does not support it, please execute the script to convert from the general onnx model ( ) to the tensorRT model. ⚡ PyTorch Model *Based on community interest and to better support further development, we are now open-sourcing the PyTorch version of the model. * We have added the

PyTorch model and corresponding configuration files to the HuggingFace. Please refer to Download Checkpoints to prepare the model files. The should be like: To run inference, execute the following command: 📧 Acknowledgement Our implementation is based on S2G-MDDiffusion and LivePortrait. Thanks for their remarkable contribution and released code! If we missed any open-source projects or related articles, we would like to complement the acknowledgement of this specific work immediately. ⚖️ License This repository is released under the Apache-2. 📚 Citation

If you find this codebase useful for your research, please use the following entry.

Frequently asked questions

How many stars and forks are recorded?

antgroup/ditto-talkinghead has 908 stars and 167 forks.

What is the repository rank?

antgroup/ditto-talkinghead is ranked 6,055.

What language and category are recorded?

antgroup/ditto-talkinghead has 908 stars, uses Python and belongs to Models.

Which repository is closest in rank?

antgroup/ditto-talkinghead is compared with ibm-granite/granite-tsfm, ranked 6,051 with 912 stars.

README

Ditto: Motion-Space Diffusion for Controllable Realtime Talking Head Synthesis

Tianqi Li
·
Ruobing Zheng†
·
Minghui Yang
·
Jingdong Chen
·
Ming Yang

Ant Group

[![](https://img.shields.io/badge/Paper-arXiv-red)](https://arxiv.org/abs/2411.19509)
[![](https://img.shields.io/badge/Project-Page-blue)](https://digital-avatar.github.io/ai/Ditto/)
[![](https://img.shields.io/badge/Model-HuggingFace-yellow)](https://huggingface.co/digital-avatar/ditto-talkinghead)
[![](https://img.shields.io/badge/Code-GitHub-purple)](https://github.com/antgroup/ditto-talkinghead)

[![](https://img.shields.io/badge/Demo-Colab-orange)](https://colab.research.google.com/drive/19SUi1TiO32IS-Crmsu9wrkNspWE8tFbs?usp=sharing)









✨  For more results, visit our [Project Page](https://digital-avatar.github.io/ai/Ditto/) ✨ 

📌 Updates

  • [2025.11.12] 🔥🔥 We noticed the community's enthusiasm for open-source training code. Training code is now available, since there have been multiple versions and limited time to organize, it may differ slightly from the paper version.
  • [2025.07.11] 🔥 The PyTorch model is now available.
  • [2025.07.07] 🔥 Ditto is accepted by ACM MM 2025.
  • [2025.01.21] 🔥 We update the Colab demo, welcome to try it.
  • [2025.01.10] 🔥 We release our inference codes and models.
  • [2024.11.29] 🔥 Our paper is in public on arxiv.

🔍 Overview

This is the inference branch. For training code, please switch to the train branch.

🛠️ Installation

Tested Environment

  • System: Centos 7.2
  • GPU: A100
  • Python: 3.10
  • tensorRT: 8.6.1

Clone the codes from GitHub:

git clone https://github.com/antgroup/ditto-talkinghead
cd ditto-talkinghead

Conda

Create conda environment:

conda env create -f environment.yaml
conda activate ditto

Pip

If you have problems creating a conda environment, you can also refer to our Colab. After correctly installing pytorch, cuda and cudnn, you only need to install a few packages using pip:

pip install \
    tensorrt==8.6.1 \
    librosa \
    tqdm \
    filetype \
    imageio \
    opencv_python_headless \
    scikit-image \
    cython \
    cuda-python \
    imageio-ffmpeg \
    colored \
    polygraphy \
    numpy==2.0.1

If you don't use conda, you may also need to install ffmpeg according to the official website.

📥 Download Checkpoints

Download checkpoints from HuggingFace and put them in checkpoints dir:

git lfs install
git clone https://huggingface.co/digital-avatar/ditto-talkinghead checkpoints

The checkpoints should be like:

./checkpoints/
├── ditto_cfg
│   ├── v0.4_hubert_cfg_trt.pkl
│   └── v0.4_hubert_cfg_trt_online.pkl
├── ditto_onnx
│   ├── appearance_extractor.onnx
│   ├── blaze_face.onnx
│   ├── decoder.onnx
│   ├── face_mesh.onnx
│   ├── hubert.onnx
│   ├── insightface_det.onnx
│   ├── landmark106.onnx
│   ├── landmark203.onnx
│   ├── libgrid_sample_3d_plugin.so
│   ├── lmdm_v0.4_hubert.onnx
│   ├── motion_extractor.onnx
│   ├── stitch_network.onnx
│   └── warp_network.onnx
└── ditto_trt_Ampere_Plus
    ├── appearance_extractor_fp16.engine
    ├── blaze_face_fp16.engine
    ├── decoder_fp16.engine
    ├── face_mesh_fp16.engine
    ├── hubert_fp32.engine
    ├── insightface_det_fp16.engine
    ├── landmark106_fp16.engine
    ├── landmark203_fp16.engine
    ├── lmdm_v0.4_hubert_fp32.engine
    ├── motion_extractor_fp32.engine
    ├── stitch_network_fp16.engine
    └── warp_network_fp16.engine
  • The ditto_cfg/v0.4_hubert_cfg_trt_online.pkl is online config
  • The ditto_cfg/v0.4_hubert_cfg_trt.pkl is offline config

🚀 Inference

Run inference.py:

python inference.py \
    --data_root "" \
    --cfg_pkl "" \
    --audio_path "" \
    --source_path "" \
    --output_path "" 

For example:

python inference.py \
    --data_root "./checkpoints/ditto_trt_Ampere_Plus" \
    --cfg_pkl "./checkpoints/ditto_cfg/v0.4_hubert_cfg_trt.pkl" \
    --audio_path "./example/audio.wav" \
    --source_path "./example/image.png" \
    --output_path "./tmp/result.mp4" 

❗Note:

We have provided the tensorRT model with hardware-compatibility-level=Ampere_Plus (checkpoints/ditto_trt_Ampere_Plus/). If your GPU does not support it, please execute the cvt_onnx_to_trt.py script to convert from the general onnx model (checkpoints/ditto_onnx/) to the tensorRT model.

python scripts/cvt_onnx_to_trt.py --onnx_dir "./checkpoints/ditto_onnx" --trt_dir "./checkpoints/ditto_trt_custom"

Then run inference.py with --data_root=./checkpoints/ditto_trt_custom.

⚡ PyTorch Model

Based on community interest and to better support further development, we are now open-sourcing the PyTorch version of the model.

We have added the PyTorch model and corresponding configuration files to the HuggingFace. Please refer to Download Checkpoints to prepare the model files.

The checkpoints should be like:

./checkpoints/
├── ditto_cfg
│   ├── ...
│   └── v0.4_hubert_cfg_pytorch.pkl
├── ...
└── ditto_pytorch
    ├── aux_models
    │   ├── 2d106det.onnx
    │   ├── det_10g.onnx
    │   ├── face_landmarker.task
    │   ├── hubert_streaming_fix_kv.onnx
    │   └── landmark203.onnx
    └── models
        ├── appearance_extractor.pth
        ├── decoder.pth
        ├── lmdm_v0.4_hubert.pth
        ├── motion_extractor.pth
        ├── stitch_network.pth
        └── warp_network.pth

To run inference, execute the following command:

python inference.py \
    --data_root "./checkpoints/ditto_pytorch" \
    --cfg_pkl "./checkpoints/ditto_cfg/v0.4_hubert_cfg_pytorch.pkl" \
    --audio_path "./example/audio.wav" \
    --source_path "./example/image.png" \
    --output_path "./tmp/result.mp4" 

📧 Acknowledgement

Our implementation is based on S2G-MDDiffusion and LivePortrait. Thanks for their remarkable contribution and released code! If we missed any open-source projects or related articles, we would like to complement the acknowledgement of this specific work immediately.

⚖️ License

This repository is released under the Apache-2.0 license as found in the LICENSE file.

📚 Citation

If you find this codebase useful for your research, please use the following entry.

@article{li2024ditto,
    title={Ditto: Motion-Space Diffusion for Controllable Realtime Talking Head Synthesis},
    author={Li, Tianqi and Zheng, Ruobing and Yang, Minghui and Chen, Jingdong and Yang, Ming},
    journal={arXiv preprint arXiv:2411.19509},
    year={2024}
}

🌟 Star History

Nearby in the ranking
Similar items