Nodes/imgutils/Imgutils Pose
ComfyUI Node

Imgutils Pose

Pose skeletons from anime art — no API needed

By xiaden·Created 2 months ago·Updated 2 months ago· 0
Imgutils Pose
  • image
  • skeleton
  • json
modeFull
auto_detecttrue

You have a reference image with a pose you want to steal for a new generation. The classic move is an OpenPose pass - detect the keypoints, render the stick figure, feed it to a pose ControlNet. Imgutils Pose is that whole pipeline in one node, tuned for anime: it detects human keypoints with DWPose (the improved detector that's much better at hands than the original OpenPose) and renders the classic OpenPose-style skeleton visualization as an image you can drop straight into a ControlNet. It's part of the xiaden/comfyui-imgutils pack wrapping the deepghs/imgutils library.

Mechanically: DWPose estimates keypoint sets (body, face, hands, feet - each point carrying an x, y, confidence), then the node draws the stick skeleton over the source image with op18_visualize. It also serializes the raw keypoints to JSON, which is the part that makes this more than a ControlNet preprocessor.

Inputs:

  • mode - visualization detail: Full (default, body + face + hands + feet), Body Only, Body with Face, or Body with Hands. Pick less if you want a cleaner skeleton for conditioning; Full if you want to actually see hand and face landmarks.
  • auto_detect (default on) - runs person detection first so it only estimates pose on the detected person. Turn it off to use the full image as the pose area, which you'd do when detection is misfiring (crops of just a torso, or weirdly-shaped compositions).

Outputs:

  • skeleton - an IMAGE: the source image with the skeleton overlaid. This is the wire-into-ControlNet output.
  • json - the keypoints as a STRING, one entry per detected person, with body, face, left_hand, right_hand, left_foot, right_foot arrays of [x, y, confidence]. This is the output for anything programmatic - custom visualization, driving a rig, or dataset labeling.

Why you'd reach for it

Pose conditioning is the backbone of a ton of anime workflows - keeping a character's stance while changing the camera, the costume, or the scene (see the ControlNet essay in the KB on pose as a "where it goes" control). DWPose over the older detectors matters for anime in particular, because exaggerated hands are everywhere and old pose models collapse on them. Since the node outputs both the visualization and the keypoint data, you can also use it for measurement - "is this character actually in the pose I asked for?" - without touching a ControlNet at all.

Install & gotchas

cd ComfyUI/custom_nodes/
git clone https://github.com/xiaden/comfyui-imgutils.git
cd comfyui-imgutils
pip install -r requirements.txt

Restart ComfyUI. The pack requires ComfyUI 0.25.0+ (V3 node API) - on older versions the nodes don't show up. DWPose weights download from HuggingFace Hub on first run into ~/.cache/huggingface/hub/, so the first call is slow and offline fails.

Two practical notes. The visualization is drawn on top of your source image - that's fine for ControlNet, but don't expect a clean skeleton on a black background; if you need that, take the JSON and render your own. And if you're feeding this to a ControlNet, remember the pose-conditioning model you load should match the detector - an OpenPose control model expects this exact 18-point body layout, which is what op18_visualize produces.

Categoryimgutils/pose

Inputs (3)

NameTypeDefaultDescription
imageIMAGEInput image for pose detection.
modeCOMBOFullVisualization detail: body only, body+face, body+hands, or full skeleton.
auto_detectBOOLEANtrueAuto-detect person bounding boxes. Disable to use full image.

Outputs (2)

NameTypeDescription
skeletonIMAGE
jsonSTRING