OpenPoseHand
The node for when the fingers matter
- IMAGE
- MASK
Hands are the thing diffusion models get wrong most often, so when you're animating a character and the fingers need to do something - a pinch, a point, a fist - you don't want to leave it to chance. OpenPoseHand is the CUP pack's loader for hand-only control images: the 21-keypoint-per-hand stick figures, body and face left out entirely.
It's part of the ComfyUI-CUP bridge that connects ComfyUI to AIGODLIKE's Blender addon, ComfyUI-BlenderAI-node. The addon renders the hand skeletons for each animation frame; this node fetches them. It's an OpenPoseBase subclass with posetype = "openpose_hand", so it reads <image-dir>/openpose_hand/ImageNNNN.png.
How it works
Inputs are the same pair as every CUP OpenPose node:
- image (STRING) - directory of rendered control images, normally filled by the Blender addon.
- frame (INT, default 0) - which frame's hand map to load.
Outputs: IMAGE (the hand skeleton → wire into Apply ControlNet with an openpose_hand model) and MASK (from the image's alpha, optional).
The practical play: condition the body with OpenPoseFull or OpenPose and layer a second ControlNet for the hands using this node's IMAGE. Giving the hand region its own strict condition is the closest thing to a "fixed fingers" button in pose-driven animation - the model gets told exactly where every finger is instead of improvising. Pair it with a lower control weight on the body and a firm one on the hands, and watch the finger-count problems mostly vanish.
Install and gotchas
Comes with ComfyUI-CUP. Install via Manager (search ComfyUI-CUP) or:
cd ComfyUI/custom_nodes
git clone https://github.com/AIGODLIKE/ComfyUI-CUP.git
then restart. No extra pip installs, no model files to fetch.
The recurring CUP caveats apply: no detection happens in ComfyUI (Blender does it), and this node is pointless in a standalone web workflow. Also, a frame Blender never rendered doesn't error - you get a 64×64 black IMAGE and MASK, which a ControlNet will happily treat as "hands missing." If your hand conditioning suddenly does nothing, check that the openpose_hand folder actually has that frame on disk.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | STRING | — | |
| frame | INT | 0-2147483648–2147483648 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |
| MASK | MASK | — |