ComfyUI Node

闲兔姿势提取

Photo in, skeleton out — and it leaves a PNG on disk for you

By xiantuhenlan·Created 21 days ago·Updated a day ago· 5
闲兔姿势提取
  • image
  • 姿势图
  • 输出文件
◄检测范围▾►
◄分辨率768►

Why pose extraction is still a thing in 2026

Posing used to mean one path: extract an OpenPose skeleton, run it through a ControlNet at 0.8. That's still alive - the InstantX Qwen-Image union carries a pose condition, and ControlNet remains the only way to ask for partial pose strength or to blend pose with depth. But the more common reason to extract a skeleton now is different: you hand the map to an instruction editor as just another reference image and describe what you want in a sentence. Same file, no control scale, no conditioning checkpoint.

That's exactly how 闲兔姿势提取 earns its place in this pack. Extract the skeleton from a photo with this node, drop the result into a reference slot on the workbench, and write "match the pose of <image2>" in your prompt. Skeleton in, sentence out.

What it does under the hood

It's a thin, opinionated wrapper around DWPose from comfyui_controlnet_aux. On each run it builds a DwposeDetector from the hr16/DWPose-TorchScript-BatchSize5 and yzd-v/DWPose checkpoints with yolox_l.onnx as the detector and dw-ll_ucoco_384_bs5.torchscript.pt as the pose model, runs it on your GPU, and drops the detector again afterwards. Two consequences: the first run downloads those two files if you don't have them, and every execution pays the model-load cost again rather than caching a warm detector. Fine for one photo, noticeable if you're grinding through a hundred.

Pose detection is serialized behind an internal lock, so parallel queues won't fight over the detector. The node is an output node, which means it always executes - no being skipped by the cache.

There's also a second entry point you won't see on the canvas: the pack registers an HTTP route that its own workbench panel calls when you hit the pose button. Standalone node and in-workbench tab, same code path.

Inputs and outputs

image - any IMAGE. It accepts a batch and returns a batch of skeletons, but see the disk note below.

检测范围 - one of 仅身体, 身体+手部, 身体+手部+面部. Body alone is the fastest and the cleanest for a distant subject; hands and face add keypoints that a small or blurred person turns into noise. Start with 身体+手部.

分辨率 - 256 to 2048, default 768, step 64. This is the resolution the detector works at, not the size of what comes out. Leave it at 768 for normal framing; raise it when the person is small in the frame and you need the keypoints to land on them, lower it when you're batching and don't care.

姿势图 (IMAGE) is the skeleton - wire it into your ControlNet apply node, or into a reference-image slot of the workbench, or straight to a Preview. 输出文件 (STRING) is the relative path of the saved PNG, something like xiantu_pose_extractions/pose_20261005_141233_881122_9f3ac1d2.png.

Install

Same pack, same clone:

cd ComfyUI/custom_nodes
git clone https://github.com/xiantuhenlan/ComfyUI-Xiantu-QwenImage21-Workbench

Restart, hard-refresh the browser. The extra dependency is real but conditional: the workbench and the LoRA manager need nothing beyond this repo, while pose extraction needs comfyui_controlnet_aux installed and loading successfully. The README is explicit that this repo ships no model files - yolox_l.onnx and dw-ll_ucoco_384_bs5.torchscript.pt are fetched and read by comfyui_controlnet_aux / DWPose, so your first extraction wants an internet connection.

Common problems

"没有找到 DWPose Estimator" is the node telling you it can't import custom_controlnet_aux.dwpose. Install comfyui_controlnet_aux via Manager, restart, and check the startup console for a failed import - a half-installed controlnet_aux is the usual cause, not this pack.

First run seems to hang. It's downloading the ONNX and torchscript weights. Watch the console rather than killing it.

Skeletons come out grey or partial. Either the subject is small enough that DWPose couldn't see them (raise 分辨率, or crop to the person first), or you're on 仅身体 and wondering where the hands went. Faces in particular need the 身体+手部+面部 option.

You batched and only got one PNG. The IMAGE output carries every skeleton in the batch, but only the first is written to ComfyUI/output/xiantu_pose_extractions. If you need the rest on disk, save them downstream yourself.

Nothing is being written. The output folder is created under ComfyUI's output directory at run time; if that path isn't writable, the node fails instead of silently skipping the save. Point --output-directory somewhere sane if you've got ComfyUI installed somewhere unusual.

Category闲兔/Qwen Image 2.1

Inputs (3)

NameTypeDefaultDescription
imageIMAGE—
检测范围COMBO3 options: 身体+手部, 仅身体, 身体+手部+面部
分辨率INT768256–2048—

Outputs (2)

NameTypeDescription
姿势图IMAGE—
输出文件STRING—