[Inference.Core] OpenPose Pose
The original pose detector, now living next to its own upgrade
- image
- IMAGE
- POSE_KEYPOINT
This is the classic - the CMU-style OpenPose body/hand/face detector that first made pose-conditioned ControlNet a thing. It's also, honestly, the one you'll pick less often these days, because this exact pack ships a better option right next to it: DWPose, which detects hands far more reliably. But OpenPose is simpler under the hood, has one less moving part, and is still the right tool if you're deliberately targeting an older OpenPose-trained ControlNet checkpoint or just don't need DWPose's extra accuracy for a quick body-pose pass.
How it works
OpenPose is a single bottom-up network: it processes the whole image once and estimates part-affinity fields that link detected joints into skeletons for every person in frame, all in one pass - no separate detection step first. DWPose, by contrast, is two-stage (detect people, then run a dedicated pose model on each crop), which is exactly why it does better on hands and crowded scenes. OpenPose's one-pass simplicity is also why it's a bit lighter and doesn't carry the onnxruntime/CUDA-version headaches that trip people up on this pack's detector-based nodes.
The inputs and outputs that matter
image- required, your source photo or render.detect_hand/detect_body/detect_face- toggle each keypoint group on or off. Turning off groups you don't need is free performance and one less thing that can go visually wrong.resolution(default 512) - working resolution for detection.
Two outputs, same shape as DWPose: IMAGE (the rendered skeleton for your ControlNet Apply node) and POSE_KEYPOINT (the structured keypoint data, for saving or feeding into other pose-aware nodes). Because the output shape matches DWPose's, you can swap between the two nodes in an existing graph without touching anything downstream - genuinely useful if you want to A/B them on a tricky image.
How to install it
ComfyUI Manager: search ComfyUI-Inference-Core-Nodes, install, restart. By hand:
cd ComfyUI/custom_nodes
git clone https://github.com/LykosAI/ComfyUI-Inference-Core-Nodes
then run install.py, or pip install -e .[cuda12] (or .[cuda] / .[rocm] / .[directml] / .[cpu] to match your hardware). Restart ComfyUI. The OpenPose body model downloads automatically from Hugging Face the first time you run the node.
Common issues & troubleshooting
Hands are the known weak point - if fingers come out as a tangled mess or missing entirely, that's not a bug, it's the model. This is the exact limitation the community's DWPose upgrade was built to fix, so if hand accuracy actually matters for your generation, switch nodes rather than fight this one's detect_hand setting.
Beyond that, the usual pose-detection gotchas apply: a cluttered frame, heavy occlusion, or an extreme crop gives you a broken skeleton, and a broken skeleton feeds a broken pose ControlNet result no matter how good your prompt is. And remember the ControlNet model itself is a separate download and load - this node only produces the conditioning image, it doesn't do anything on its own without an OpenPose ControlNet checkpoint wired in after it.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| detect_handopt | COMBO | enable | 2 options: enable, disable |
| detect_bodyopt | COMBO | enable | 2 options: enable, disable |
| detect_faceopt | COMBO | enable | 2 options: enable, disable |
| resolutionopt | INT | 51264–2048 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |
| POSE_KEYPOINT | POSE_KEYPOINT | — |