SkyReels-A1: Expressive Portrait Animation in Video Diffusion Transformers
🔥 For more results, visit our homepage 🔥
This repo, named SkyReels-A1, contains the official PyTorch implementation of our paper SkyReels-A1: Expressive Portrait Animation in Video Diffusion Transformers.
🔥🔥🔥 News!!
- Feb 18, 2025: 👋 We release the inference code and model weights of SkyReels-A1. Download
- Feb 18, 2025: 🎉 We have made our technical report available as open source. Read
Getting Started 🏁
1. Clone the code and prepare the environment 🛠️
First git clone the repository with code:
git clone https://github.com/SkyworkAI/SkyReels-A1.git
cd SkyReels-A1
# create env using conda
conda create -n skyreels-a1 python=3.10
conda activate skyreels-a1
Then, install the remaining dependencies:
pip install -r requirements.txt
2. Download pretrained weights 📥
You can download the pretrained weights is from HuggingFace:
# !pip install -U "huggingface_hub[cli]"
huggingface-cli download SkyReels-A1 --local-dir local_path --exclude "*.git*" "README.md" "docs"
The FLAME, mediapipe, and smirk models are located in the SkyReels-A1/extra_models folder.
The directory structure of our SkyReels-A1 code is formulated as:
pretrained_weights
├── FLAME
├── SkyReels-A1-5B
│ ├── pose_guider
│ ├── scheduler
│ ├── tokenizer
│ ├── siglip-so400m-patch14-384
│ ├── transformer
│ ├── vae
│ └── text_encoder
├── mediapipe
└── smirk
3. Inference 🚀
You can simply run the inference scripts as:
python inference.py
If the script runs successfully, you will get an output mp4 file. This file includes the following results: driving video, input image or video, and generated result.
Gradio Interface 🤗
We provide a Gradio interface for a better experience, just run by:
python app.py
The graphical interactive interface is shown as below:
Metric Evaluation 👓
We also provide all scripts for automatically calculating the metrics, including SimFace, FID, and L1 distance between expression and motion, reported in the paper.
All codes can be found in the eval folder. After setting the video result path, run the following commands in sequence:
python arc_score.py
python expression_score.py
python pose_score.py
Acknowledgements 💐
We would like to thank the contributors of CogvideoX and finetrainers repositories, for their open research and contributions.
Citation 💖
If you find SkyReels-A1 useful for your research, welcome to 🌟 this repo and cite our work using the following BibTeX:
@misc{qiu2025skyreelsa1expressiveportraitanimation,
title={SkyReels-A1: Expressive Portrait Animation in Video Diffusion Transformers},
author={Di Qiu and Zhengcong Fei and Rui Wang and Jialin Bai and Changqian Yu and Mingyuan Fan and Guibin Chen and Xiang Wen},
year={2025},
eprint={2502.10841},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2502.10841},
}
