ComfyUI OpenPose ControlNet: Control Character Poses in AI Images
How to use OpenPose ControlNet in ComfyUI to generate images with precise human poses — from skeleton detection to pose-controlled generation.
What is OpenPose ControlNet?
OpenPose ControlNet detects human body keypoints — head, shoulders, elbows, wrists, hips, knees, ankles — and creates a skeleton diagram. The AI then generates a new image where characters match the exact same pose.
This is the go-to ControlNet for:
- Character art — generate characters in specific action poses
- Anime and game art — consistent character poses across multiple images
- Fashion — model clothing on a body in a particular stance
- Reference matching — reproduce a pose from a photo in a completely different style
Prerequisites
Plugin Installation
You need the ComfyUI ControlNet Auxiliary Preprocessors plugin to extract poses from photos. Install via ComfyUI Manager or clone manually.
If you already have an OpenPose skeleton image (from an editor or another tool), you can skip the preprocessor and load the skeleton image directly into the workflow.
Models
| Model | File | Download |
|---|---|---|
| SD1.5 checkpoint | dreamshaper_8.safetensors | Civitai |
| OpenPose ControlNet | control_v11p_sd15_openpose.pth | HuggingFace |
File Placement
ComfyUI/
├── models/
│ ├── checkpoints/
│ │ └── dreamshaper_8.safetensors
│ └── controlnet/
│ └── control_v11p_sd15_openpose.pthBuilding the Workflow
Option A: With Preprocessor (Extract Pose from Photo)
Use this when you have a regular photo and want to extract the pose from it.
- Load Image — load a photo of a person
- OpenPose Pose (or DWPose Estimator) — extracts the skeleton
- Preview Image — verify the skeleton was detected correctly
- Load ControlNet Model — loads
control_v11p_sd15_openpose.pth - Apply ControlNet — injects pose data into conditioning
- CLIP Text Encode (x2) — describe what you want generated
- KSampler → VAE Decode → Save Image
Option B: With Pre-Made Skeleton Image
Use this when you already have an OpenPose skeleton image.
- Load Image — load the skeleton image directly
- Skip the preprocessor — connect straight to Apply ControlNet
- Continue with the same nodes as above
You can create skeleton images manually using online tools like OpenPose Editor — useful when you want a pose that doesn't exist in any reference photo.
Preprocessor Parameters
OpenPose Pose Node
| Parameter | Options | Description |
|---|---|---|
| detect_hand | enable / disable | Whether to detect hand keypoints |
| detect_face | enable / disable | Whether to detect facial keypoints |
| detect_body | enable / disable | Whether to detect body keypoints |
| resolution | integer | Output resolution of the skeleton image |
DWPose Estimator Node (Alternative)
The DWPose estimator often produces more accurate results than the classic OpenPose detector, especially for complex poses or partially occluded bodies. It's available in the same Auxiliary Preprocessors plugin.
| Parameter | Options | Description |
|---|---|---|
| detect_hand | enable / disable | Hand detection |
| detect_face | enable / disable | Face detection |
| detect_body | enable / disable | Body detection |
| bbox-detector | enable / disable | Detect person bounding box first |
| resolution | integer | Output resolution |
Key Generation Parameters
| Parameter | Node | Recommended |
|---|---|---|
| strength | Apply ControlNet | 0.8–1.0 for accurate poses, 0.5–0.7 for looser interpretation |
| start_percent | Apply ControlNet | 0.0 (start from the beginning) |
| end_percent | Apply ControlNet | 0.8–1.0 |
| steps | KSampler | 20–30 |
| cfg | KSampler | 7–8 |
Tips for Better Poses
Clear reference photos — Use images where the full body is visible and not heavily occluded. Cropped or overlapping bodies confuse the detector.
Enable all detection — Turn on detect_hand, detect_face, and detect_body for the most complete skeleton. Disable hand/face detection only if they're causing issues.
Preview first — Always check the skeleton preview before generating. If keypoints are in the wrong position, the output will have the same errors.
Combine with other ControlNets — Pair OpenPose with Depth ControlNet for both pose control and spatial awareness. Chain the Apply ControlNet nodes in series.
Common Issues and Fixes
Pose not detected correctly
- Ensure the person is clearly visible in the reference image
- Try DWPose Estimator instead of OpenPose Pose — it handles difficult angles better
- Increase the
resolutionparameter on the preprocessor
Hands are deformed
- Enable
detect_handin the preprocessor - Add
deformed hands, extra fingersto negative prompts - Lower
cfgto 6–7 to give the model more freedom with hand details
Output ignores the pose
- Verify the ControlNet model file is correct (
control_v11p_sd15_openpose.pth) - Increase
strengthto 1.0 - Check that Apply ControlNet is correctly connected to the KSampler's conditioning inputs
Multiple people detected incorrectly
- Crop the reference image to focus on a single person
- Or embrace it — OpenPose can handle multi-person scenes if the subjects are clearly separated
SD1.5 limb errors despite using OpenPose
- OpenPose significantly reduces but doesn't eliminate SD1.5 anatomy issues
- Add comprehensive negative prompts:
bad anatomy, extra limbs, missing fingers, deformed - Consider using a checkpoint that was fine-tuned for character generation
Related Guides
- ControlNet Overview — All ControlNet types explained
- Canny ControlNet — Edge-based structure control
- Depth ControlNet — Spatial depth control
ComfyUI Depth ControlNet: Control Spatial Layout and Perspective
How to use Depth ControlNet in ComfyUI to preserve spatial relationships, perspective, and scene layout when generating AI images.
ComfyUI Wan Video Guide: Text-to-Video & Image-to-Video Generation
Complete guide to generating AI videos with Wan 2.1 and Wan 2.2 models in ComfyUI — model downloads, T2V and I2V workflows, and VRAM options.
Documentation Wonderful Launcher