OpenPose - Get poses
Standalone pose extraction for ComfyUI
- input_image
- image with keypoints
- keypoints only
- keypoints
If you've used ControlNet's pose conditioning before, you've almost certainly used it through the ControlNet Auxiliary Preprocessors pack - that's the bundle everyone installs, and its OpenPose/DWPose node is the default way people pull a skeleton out of a photo. This node is a different animal: a standalone pack that reimplements the original OpenPose body model from scratch in pure PyTorch, with no ControlNet plumbing attached at all. You feed it an image, it hands you back a skeleton drawing and the raw keypoint coordinates as JSON. That's it. No preprocessor pipeline, no dependency on the ControlNet ecosystem - just pose extraction as its own thing, useful if you want the keypoint data itself rather than a conditioning image to plug into a KSampler.
How it works. The author built this on top of beingjoey/pytorch_openpose_body_25, crediting it as the inspiration in the README - so under the hood it's a from-scratch PyTorch port of the classic OpenPose body model rather than a wrapper around the original Caffe/CMake build (which was notoriously painful to compile yourself) or around DWPose. On first run it pulls its own weights from Hugging Face Hub and drops them into ComfyUI/models/openpose, then runs inference locally from there.
Inputs that matter. Three, and they're the whole surface: input_image is your source photo - note the README is explicit that this pack handles one image at a time, no batch processing, so don't expect it to chew through a video's worth of frames in one call. typology is an enum choosing between the two OpenPose body representations: COCO (the older, simpler 18-keypoint layout) and BODY_25 (the newer one, adding hip and foot points, and generally the more complete of the two). transparency is a float from 0 to 1, default 0.4, controlling how strongly the skeleton overlay is blended onto your original image in the composite output.
Outputs. You get three: image with keypoints is your original photo with the skeleton and limbs drawn over it at whatever transparency you set - good for a quick visual check that the pose actually got detected right. keypoints only is the same skeleton but on a plain black background, which is the shape you'd want if you were going to feed it onward as a conditioning image. keypoints is a POSE_KEYPOINT output - the raw coordinate data as JSON, useful if you want to do something programmatic with the pose (angle math, animation retargeting, filtering frames by pose similarity) rather than just look at a picture of it. That output type follows the same naming convention DWPose uses elsewhere in the ecosystem, though I wouldn't assume the JSON layout matches theirs exactly without checking - it's a separate implementation.
Installing it. Easiest path is ComfyUI Manager: search for "OpenPose Node" (that's the pack's actual title) and install. Manually, it's the usual pattern - cd ComfyUI/custom_nodes && git clone https://github.com/alessandrozonta/ComfyUI-OpenPose, then restart ComfyUI. If you're going manual, you also need the Python dependencies: torch, cv2 (OpenCV), numpy, huggingface_hub, and torchvision. The README ships both pip install -r requirement.txt and a python install.py script for this - Manager handles it for you, but if you're doing it by hand, note it's requirement.txt, singular.
Where it'll bite you. The single-image-only limit is the one people are most likely to trip over - if you're piping in a batch from a video loader expecting per-frame pose extraction, this node won't do that for you in one pass; you'd need to loop frames through it individually. The model download on first use means that first run needs working internet access to Hugging Face - if you're on an isolated or firewalled executor, pre-seed ComfyUI/models/openpose yourself or the node will just hang trying to fetch weights. And worth knowing before you build anything commercial on it: this pack is GPL-3.0 licensed, which is more restrictive than the MIT/Apache licenses most ComfyUI nodes ship under - check that's compatible with what you're building before you ship it.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| input_image | IMAGE | — | |
| typology | COMBO | 2 options: COCO, BODY_25 | |
| transparency | FLOAT | 0.40–1 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image with keypoints | IMAGE | — |
| keypoints only | IMAGE | — |
| keypoints | POSE_KEYPOINT | — |