Shuang Liang1,4*, Jing He3, Chuanmeizhi Wang1, Lejun Liao2, Guo Zhang1, Ying-Cong Chen3,5 Yuan Yuan2†
1Rama Alpaca Technology Company, 2Boston College, 3HKUST(GZ), 4The University of Hong Kong, 5HKUST
*Work done during an internship at Rama Alpaca Technology. †Corresponding author.
SDPose leverages the powerful visual priors from Stable Diffusion to achieve state-of-the-art performance in:
SDPose demonstrates robust performance on animation videos.
|
|
|
|
💡 Tip: For more interactive demos and real-time inference, check out our 🤗 HuggingFace Spaces!
git clone https://github.com/t-s-liang/SDPose-OOD.git
cd SDPose-OOD
conda create -n SDPose python=3.10
conda activate SDPose
pip install -r requirements.txt
Download the pre-trained Body model checkpoint from our HuggingFace Model repository:
🤗 SDPose-Body Model 🤗 SDPose-Wholebody Model The model repository contains the checkpoint files and detailed usage instructions.
We provide interactive Gradio demos on HuggingFace Spaces:
You can now run the Gradio demo on your local machine!
Since SDPose is a top-down pose estimation method, it requires an object detection model to detect humans in the image first. We recommend using YOLO11-x for robust human detection:
Download YOLO11-x model:
# Download the YOLO11-x pretrained model
wget https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x.pt -P models/
cd gradio_app
bash launch_gradio.sh
The Gradio interface will be available at http://localhost:7860 (or the port specified in the launch script).
Use the provided evaluation script to run inference on standard pose estimation benchmarks.
Edit scripts/eval.sh to configure the evaluation parameters:
# Dataset settings
dataset_name='COCO' # Dataset name: COCO, HumanArt, etc.
keypoint_scheme='body' # 'body' (17 keypoints) or 'wholebody' (133 keypoints)
dataset_root='/path/to/datasets' # Root directory of datasets
ann_file='/path/to/annotation.json' # Annotation file path
# Model settings
checkpoint_path='/path/to/checkpoint' # Path to SDPose checkpoint
# Inference settings
eval_batch_size=16 # Batch size per GPU
dataloader_num_workers=16 # Number of data loading workers
For COCO evaluation, please download the precomputed person detection bounding boxes from: https://huggingface.co/noahcao/sapiens-pose-coco/tree/main/sapiens_host/pose/person_detection_results
These detection results are required for evaluation under the top-down protocol on COCO, COCO-OOD, and COCO-WholeBody.
The expected directory structure is:
${DATASET_ROOT}/
│
├── COCO/
│ ├── annotations/
│ │ ├── person_keypoints_train2017.json
│ │ ├── person_keypoints_val2017.json
│ │ ├── coco_wholebody_train_v1.0.json
│ │ └── coco_wholebody_val_v1.0.json
│ │
│ ├── train2017/
│ ├── val2017/
│ ├── val2017oil/
│ └── person_detection_results/
│ └── COCO_val2017_detections_AP_H_70_person.json
│
└── HumanArt/
├── annotations/
│ └── validation_humanart.json
└── images/
When running evaluation, the dataloader will automatically locate the correct annotation and bounding box files based on the specified dataset name:
- COCO → standard COCO validation
- COCO_OOD → COCO stylized (val2017oil)
- COCOWholebody → COCO-WholeBody validation
- COCO-OOD_Wholebody → COCO-WholeBody OOD validation
- HumanArt → HumanArt validation set
cd scripts
bash eval.sh
This will:
To complement the HumanArt dataset and enable OOD evaluation under matched content and labels, we constructed COCO-OOD by applying artistic style transfer to the original COCO images.
We adopt the official CycleGAN and StyTR2 framework to perform image-to-image translation from the COCO domain (natural photographs) to the target domain of Ukiyo-e and Monet-style paintings. During conversion, all validation images in COCO are processed to produce style-transferred counterparts, while preserving their original human annotations (bounding boxes, keypoints). This yields an OOD variant of COCO in which the underlying scene structure is unchanged, but the texture, color palette, and brushstroke patterns are consistent with oil/ukiyo-e artistic style. We also utilize Nano-banana as a style transfer tool to produce color sketch versions of COCO-OOD.
Importantly, for fair comparison and to avoid introducing priors from large-scale pretrained diffusion models, we intentionally adopt the earlier StyTR2 and CycleGAN framework rather than more recent style transfer methods. Such stylization introduces a significant appearance shift while keeping pose-related geometric information intact, making it suitable for robust pose estimation evaluation.
📥 Download COCO-OOD Monet Dataset from Google Drive
📥 Download COCO-OOD Corruption Dataset from Google Drive
📥 Download COCO-OOD Ukiyoe Dataset from Google Drive
If you find SDPose useful in your research, please consider citing:
@misc{liang2025sdposeexploitingdiffusionpriors,
title={SDPose: Exploiting Diffusion Priors for Out-of-Domain and Robust Pose Estimation},
author={Shuang Liang and Jing He and Chuanmeizhi Wang and Lejun Liao and Guo Zhang and Yingcong Chen and Yuan Yuan},
year={2025},
eprint={2509.24980},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2509.24980},
}
This project is released under the MIT License.
This project is built upon the following excellent open-source projects:
For questions, suggestions, or collaboration inquiries:
⭐ Star us on GitHub - it motivates us a lot!
🌐 Website | 📄 Paper | 🤗 Model-Body | 🤗 Model-Wholebody | 🤗 Demo
48 commits
Python
99.9%
Shuang Liang1,4*, Jing He3, Chuanmeizhi Wang1, Lejun Liao2, Guo Zhang1, Ying-Cong Chen3,5 Yuan Yuan2†
1Rama Alpaca Technology Company, 2Boston College, 3HKUST(GZ), 4The University of Hong Kong, 5HKUST
*Work done during an internship at Rama Alpaca Technology. †Corresponding author.
SDPose leverages the powerful visual priors from Stable Diffusion to achieve state-of-the-art performance in:
SDPose demonstrates robust performance on animation videos.
|
|
|
|
💡 Tip: For more interactive demos and real-time inference, check out our 🤗 HuggingFace Spaces!
git clone https://github.com/t-s-liang/SDPose-OOD.git
cd SDPose-OOD
conda create -n SDPose python=3.10
conda activate SDPose
pip install -r requirements.txt
Download the pre-trained Body model checkpoint from our HuggingFace Model repository:
🤗 SDPose-Body Model 🤗 SDPose-Wholebody Model The model repository contains the checkpoint files and detailed usage instructions.
We provide interactive Gradio demos on HuggingFace Spaces:
You can now run the Gradio demo on your local machine!
Since SDPose is a top-down pose estimation method, it requires an object detection model to detect humans in the image first. We recommend using YOLO11-x for robust human detection:
Download YOLO11-x model:
# Download the YOLO11-x pretrained model
wget https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x.pt -P models/
cd gradio_app
bash launch_gradio.sh
The Gradio interface will be available at http://localhost:7860 (or the port specified in the launch script).
Use the provided evaluation script to run inference on standard pose estimation benchmarks.
Edit scripts/eval.sh to configure the evaluation parameters:
# Dataset settings
dataset_name='COCO' # Dataset name: COCO, HumanArt, etc.
keypoint_scheme='body' # 'body' (17 keypoints) or 'wholebody' (133 keypoints)
dataset_root='/path/to/datasets' # Root directory of datasets
ann_file='/path/to/annotation.json' # Annotation file path
# Model settings
checkpoint_path='/path/to/checkpoint' # Path to SDPose checkpoint
# Inference settings
eval_batch_size=16 # Batch size per GPU
dataloader_num_workers=16 # Number of data loading workers
For COCO evaluation, please download the precomputed person detection bounding boxes from: https://huggingface.co/noahcao/sapiens-pose-coco/tree/main/sapiens_host/pose/person_detection_results
These detection results are required for evaluation under the top-down protocol on COCO, COCO-OOD, and COCO-WholeBody.
The expected directory structure is:
${DATASET_ROOT}/
│
├── COCO/
│ ├── annotations/
│ │ ├── person_keypoints_train2017.json
│ │ ├── person_keypoints_val2017.json
│ │ ├── coco_wholebody_train_v1.0.json
│ │ └── coco_wholebody_val_v1.0.json
│ │
│ ├── train2017/
│ ├── val2017/
│ ├── val2017oil/
│ └── person_detection_results/
│ └── COCO_val2017_detections_AP_H_70_person.json
│
└── HumanArt/
├── annotations/
│ └── validation_humanart.json
└── images/
When running evaluation, the dataloader will automatically locate the correct annotation and bounding box files based on the specified dataset name:
- COCO → standard COCO validation
- COCO_OOD → COCO stylized (val2017oil)
- COCOWholebody → COCO-WholeBody validation
- COCO-OOD_Wholebody → COCO-WholeBody OOD validation
- HumanArt → HumanArt validation set
cd scripts
bash eval.sh
This will:
To complement the HumanArt dataset and enable OOD evaluation under matched content and labels, we constructed COCO-OOD by applying artistic style transfer to the original COCO images.
We adopt the official CycleGAN and StyTR2 framework to perform image-to-image translation from the COCO domain (natural photographs) to the target domain of Ukiyo-e and Monet-style paintings. During conversion, all validation images in COCO are processed to produce style-transferred counterparts, while preserving their original human annotations (bounding boxes, keypoints). This yields an OOD variant of COCO in which the underlying scene structure is unchanged, but the texture, color palette, and brushstroke patterns are consistent with oil/ukiyo-e artistic style. We also utilize Nano-banana as a style transfer tool to produce color sketch versions of COCO-OOD.
Importantly, for fair comparison and to avoid introducing priors from large-scale pretrained diffusion models, we intentionally adopt the earlier StyTR2 and CycleGAN framework rather than more recent style transfer methods. Such stylization introduces a significant appearance shift while keeping pose-related geometric information intact, making it suitable for robust pose estimation evaluation.
📥 Download COCO-OOD Monet Dataset from Google Drive
📥 Download COCO-OOD Corruption Dataset from Google Drive
📥 Download COCO-OOD Ukiyoe Dataset from Google Drive
If you find SDPose useful in your research, please consider citing:
@misc{liang2025sdposeexploitingdiffusionpriors,
title={SDPose: Exploiting Diffusion Priors for Out-of-Domain and Robust Pose Estimation},
author={Shuang Liang and Jing He and Chuanmeizhi Wang and Lejun Liao and Guo Zhang and Yingcong Chen and Yuan Yuan},
year={2025},
eprint={2509.24980},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2509.24980},
}
This project is released under the MIT License.
This project is built upon the following excellent open-source projects:
For questions, suggestions, or collaboration inquiries:
⭐ Star us on GitHub - it motivates us a lot!
🌐 Website | 📄 Paper | 🤗 Model-Body | 🤗 Model-Wholebody | 🤗 Demo
48 commits
Python
99.9%