SDPose: Exploiting Diffusion Priors for Out-of-Domain and Robust Pose Estimation

Shuang Liang1,5,†, Jing He3,†, Lejun Liao2, Chuanmeizhi Wang1, Guo Zhang1,4, Yingcong Chen3,6, Yuan Yuan2,*
1Rama Alpaca Technology Company   2Boston College   3HKUST (GZ)
4Research Institute of Tsinghua University in Shenzhen   5HKU   6HKUST

*Corresponding author. †Equal contribution.
SDPose versus Sapiens-1B and ViTPose++-H on stylized paintings and a humanoid robot
SDPose for OOD pose estimation. On stylized paintings and images of humanoid robots, SDPose produces more accurate predictions than Sapiens and ViTPose++-H. Baseline failure cases are highlighted in yellow boxes.

Abstract

Pre-trained diffusion models provide rich latent features across U-Net levels and are emerging as powerful vision backbones. While prior works such as Marigold and Lotus repurpose diffusion priors for dense geometric perception tasks such as depth and surface normal estimation, their potential for cross-domain human pose estimation remains largely unexplored. Through a systematic analysis of latent features from different upsampling levels of the Stable Diffusion U-Net, we identify the levels that deliver the strongest robustness and cross-domain generalization for pose estimation. Building on these findings, we propose SDPose, which (i) extracts U-Net features from the selected upsampling blocks, (ii) fuses them with a lightweight feature aggregation module to form a robust representation, and (iii) jointly optimizes keypoint heatmap supervision with an auxiliary latent reconstruction loss to regularize training and preserve the pre-trained generative prior. To evaluate cross-domain generalization and robustness, we construct COCO-OOD, a COCO-based benchmark with four subsets: three style-transferred splits to assess domain shift, and one corruption split (noise, weather, digital artifacts, and blur) to test robustness. With a shorter fine-tuning schedule, SDPose achieves performance comparable to Sapiens on COCO, surpasses Sapiens-1B on COCO-WholeBody, and establishes new state-of-the-art results on HumanArt and COCO-OOD.

Demo: Animation Video Pose Estimation in the Wild

Method

Multi-level SD Latent Features

The input image is encoded by a frozen SD-VAE encoder and fed into the SD U-Net. From the U-Net upsampling hierarchy, we denote candidate features from the last four upsampling blocks as {F1, F2, F3, F4} (from shallower to deeper). Rather than using all levels, a level-wise study identifies the features that are both discriminative for keypoint prediction and stable under style shifts, and SDPose keeps the subset {F1, F2, F3}.

Training pipeline of SDPose
Training pipeline of SDPose. The input image x is encoded by a pre-trained SD-VAE into ZRGB. A shared latent diffusion U-Net fθ is conditioned by a task/class embedding C (text prompt disabled). With CRGB, the model reconstructs ZRGB via an ℓ2 latent reconstruction loss. With CPose, we extract selected multi-level U-Net features, perform feature aggregation, and predict keypoint heatmaps supervised by a heatmap MSE loss.

Feature Aggregation

Deeper features tend to be more stable under style shifts, whereas shallower features retain finer spatial details for localization. A lightweight CSPNeXt-style PAFPN performs top-down and bottom-up fusion across {F1, F2, F3}, and the fused feature is forwarded to a lightweight convolutional head that predicts keypoint heatmaps.

Feature aggregation module
Feature aggregation module. Hierarchical features are fused through a CSP PAFPN block. Deep features are upsampled via PixelShuffle to align with shallow features for final heatmap prediction.

Prior-preserving Auxiliary Reconstruction

To preserve the generative priors and mitigate overfitting to the pose domain, we adopt the Detail Preserver strategy with an auxiliary RGB latent reconstruction objective. A task/class embedding C ∈ {CRGB, CPose} switches the behavior of the shared denoising U-Net fθ. The overall objective is

ℒ = ‖ZRGB − fθ(ZRGB, t, CRGB)‖22 + ‖HPose − HPPose‖22

We adopt a deterministic single-step setting with the timestep fixed to t = 1000. At inference, the image latent ZRGB goes through one U-Net forward pass with the class label CPose and an empty text embedding.

Multi-level Analysis of SD U-Net Features

Using t-SNE and silhouette scores on 1,200 person crops (300 COCO instances with three COCO-OOD style variants), pre-trained Sapiens exhibits strong style-driven clustering, while SD U-Net features show much weaker style separation and increasingly stronger person-instance coherence in deeper upsampling blocks. After pose fine-tuning, the mid-level SDPose blocks (F2–F3) reach the highest instance coherence while keeping style silhouettes close to zero.

t-SNE visualization of Sapiens and SD U-Net features
t-SNE visualization of features from Sapiens ViT, Stable Diffusion U-Net blocks, Sapiens Pose, and SDPose across four visual domains. Each point corresponds to an image sample; colors represent person instances and marker shapes denote artistic styles.

The single-level ablations agree: F1 gives the best in-domain localization, F2 is the most robust under pure style shift, and F4 is too coarse. SDPose therefore fuses {F1, F2, F3}, and the gain from aggregation is largest for whole-body estimation, where hands and face need both global context and local detail.

Model Variant Ablation Setting COCO HumanArt COCO-OOD Monet
APARAPARAPAR
SDPose-Body Single Feature Baseline (Last Block F1) 81.385.271.273.963.568.2
+ Feature Aggregation Module 81.2 (-0.1)85.3 (+0.1)71.8 (+0.6)74.6 (+0.7)64.0 (+0.5)68.7 (+0.5)
w/o RGB Reconstruction 80.8 (-0.5)84.9 (-0.3)69.8 (-1.4)72.6 (-1.3)62.5 (-1.0)67.3 (-0.9)
w/o Diffusion Priors 74.9 (-6.4)79.4 (-5.8)53.8 (-17.4)58.0 (-15.9)52.7 (-10.8)57.9 (-10.3)
Second-to-last Block (F2) 81.185.070.473.364.368.9
Third-to-last Block (F3) 81.085.170.673.363.568.2
Fourth-to-last Block (F4) 79.283.465.068.158.162.8
SDPose-Wholebody Single Feature Baseline (Last Block F1) 70.577.5N/AN/A44.753.0
+ Feature Aggregation Module 72.8 (+2.3)79.4 (+1.9)N/AN/A48.4 (+3.7)56.0 (+3.0)
Second-to-last Block (F2) 71.578.4N/AN/A46.654.8
Third-to-last Block (F3) 70.477.6N/AN/A45.553.8
Fourth-to-last Block (F4) 64.672.1N/AN/A37.145.4

Ablation studies on diffusion priors, RGB reconstruction, U-Net feature selection, and representation aggregation. All experiments are trained on COCO with 40 epochs (body, 17 keypoints) or 42 epochs (wholebody, 133 keypoints).

COCO-OOD Benchmark

To complement HumanArt and enable OOD evaluation with matched content and labels, we translate all COCO val images into three artistic domains: Monet-style paintings with StyTR2, Ukiyo-e with CycleGAN, and color sketch with Nano Banana. We additionally build a corruption split inspired by ImageNet-C, with 13 corruption types spanning noise (Gaussian, shot, impulse), blur (defocus, glass, motion, zoom), weather (snow, fog, brightness), and digital distortions (contrast, pixelation, JPEG compression). Each image receives one uniformly sampled corruption at severity 3 under a fixed random seed. All subsets reuse the original COCO val annotations (bounding boxes and keypoints).

Illustration of the COCO-OOD dataset
Illustration of the COCO-OOD dataset.
Style-transferred subsets of COCO-OOD
Visual illustration of the style-transferred subsets in the COCO-OOD benchmark. We create an OOD split of the COCO validation set by stylizing natural images into three distinct artistic domains: Monet (via StyTR2), Ukiyo-e (via CycleGAN), and Color-sketch (via Nano Banana), enabling comprehensive evaluation under diverse style shifts.

Results

With only 40 training epochs on an SD-v2 backbone, SDPose-Body reaches 81.2 AP / 85.3 AR on COCO, on par with Sapiens-1B/2B while using 5× fewer epochs and a smaller backbone. Under domain shift, SDPose sets new state-of-the-art results on HumanArt and the COCO-OOD subsets. SDPose-Wholebody surpasses the parameter-matched Sapiens-1B on COCO-WholeBody and leads all COCO-OOD wholebody splits.

Variant Model Pre-trained
Backbone
Params COCO HumanArt COCO-OOD
Monet
COCO-OOD
Ukiyo-e
COCO-OOD
Corruption
APARAPARAPARAPARAPAR
Body Sapiens-1BSapiens ViT1.169B 82.185.964.367.458.863.361.566.268.673.2
Sapiens-2BSapiens ViT2.163B 82.286.069.672.259.664.062.366.870.374.8
GenLocStable Diffusion-v1.50.98B 77.680.767.070.8N/AN/AN/AN/AN/AN/A
SDPose (Ours)Stable Diffusion-v20.98B 81.285.371.874.664.068.766.170.970.175.0
Wholebody Sapiens-1BSapiens ViT1.169B 72.779.2N/AN/A38.746.840.549.448.457.8
Sapiens-2BSapiens ViT2.163B 74.481.0N/AN/A44.453.046.655.852.862.5
SDPose (Ours)Stable Diffusion-v20.98B 72.879.4N/AN/A48.456.050.058.254.363.1

Quantitative comparison across COCO, HumanArt, COCO-OOD Monet, COCO-OOD Ukiyo-e, and COCO-OOD Corruption. All models are trained on COCO. HumanArt only provides 17-keypoint annotations. GenLoc results on WholeBody and some COCO-OOD subsets are unavailable because its model and code have not been publicly released. Full comparisons across more models are in the supplementary material of the paper.

Real-world Photographs

Qualitative results on real-world photographs
Qualitative results on real-world photographs. The yellow boxes highlight regions where baselines fail to predict accurate poses.

Whole-body Estimation on Stylized Paintings

Sapiens WholeBody versus SDPose WholeBody on stylized paintings
Comparison on Stylized Paintings: Sapiens WholeBody vs. SDPose WholeBody. All erroneous predictions are highlighted with yellow boxes. SDPose yields fewer false positives and notably better facial keypoint localization.

Zero-shot Downstream Applications

Better Pose-guided Image Generation

For human or humanoid character generation, an accurate skeleton is essential for transferring poses between characters. Traditional pose estimators often fail on art-based human or humanoid characters. Compared with DWPose as the pose annotator for ControlNet, SDPose yields more precise and detailed skeletons, enabling reliable pose transfer and high-quality image generation for artistic characters.

Pose-guided image generation with ControlNet
Visualization of pose-guided image generation results. The lower images illustrate results from the baseline, which combines a pre-trained ControlNet with the DWPose estimator. In comparison, the upper images show results obtained using our SDPose as the pose annotator. Yellow boxes highlight baseline failures. Prompts, random seeds, and other settings are kept identical for fairness.

Pose-guided Video Generation

Extracting reliable control conditions remains critical for high-quality controlled video generation. SDPose provides more accurate poses for the driving frames, enabling reliable pose-sequence transfer from animations to animations. Video frames are generated by Moore-AnimateAnyone.

Pose-controlled video generation in the wild
Qualitative comparison for pose-controlled video generation in the wild. The first row shows the source image and frames from the driving video. The second row shows output video frames generated from the pose sequence estimated by the baseline model DWPose, while the third row shows the results guided by our SDPose. Red boxes highlight failures in the generated video, and yellow boxes highlight errors in pose estimation.

BibTeX

@inproceedings{liang2027sdpose,
  title={SDPose: Exploiting Diffusion Priors for Out-of-Domain and Robust Pose Estimation},
  author={Liang, Shuang and He, Jing and Liao, Lejun and Wang, Chuanmeizhi and Zhang, Guo and Chen, Yingcong and Yuan, Yuan},
  booktitle={Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision (WACV)},
  year={2027}
}