OpenPoseFull
The whole figure — body, face, and hands in one control image
- IMAGE
- MASK
OpenPoseFull is the CUP pack's most complete loader: it picks up the openpose_full control image for a given animation frame - the one that draws the body skeleton, face landmarks, and hand keypoints all in a single image. If you're driving a full character through the AIGODLIKE Blender pipeline and want one condition that pins down the whole figure, this is the one you'd reach for before the split variants like OpenPoseFace or OpenPoseHand.
Like everything in ComfyUI-CUP, it doesn't detect anything itself. The name says which pre-rendered control image it loads, and the detection happens back in Blender, inside the ComfyUI-BlenderAI-node addon. OpenPoseFull is a OpenPoseBase subclass with posetype = "openpose_full", which means it reads <image-dir>/openpose_full/ImageNNNN.png for the frame you ask for.
How it works
- image (STRING) - path to the directory of rendered control images. The Blender addon fills this in; you don't type it.
- frame (INT, default 0) - picks the file: frame 0 →
Image0000.png, frame 7 →Image0007.png.
It returns IMAGE (the combined skeleton drawing, normalized 0–1, wired into an Apply ControlNet node with an openpose_full model) and MASK (from the PNG's alpha channel, optional). Because openpose_full bundles body + face + hands, the conditioning is strict: the model has to honor the limbs, the expression, and the fingers. That's great for character consistency across a shot and hard for the model to fight, which is exactly why full-body conditioning is a community favorite for keeping the same character recognizable scene to scene.
Install and the usual caveat
Install via ComfyUI Manager (search ComfyUI-CUP) or:
cd ComfyUI/custom_nodes
git clone https://github.com/AIGODLIKE/ComfyUI-CUP.git
then restart ComfyUI. No model downloads, no extra pip dependencies - the pack ships only code, and all its tensor work rides on libraries ComfyUI already has.
Two things to know. First, this node is dead weight in a plain web workflow - it needs the Blender addon to be producing openpose_full frames for it. Second, the silent-failure trap: request a frame Blender never rendered and you get a 64×64 black image and mask instead of an error, and a black ControlNet condition will quietly wreck your generation. When the output goes wrong, verify the frame actually exists on disk before debugging your sampler.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | STRING | — | |
| frame | INT | 0-2147483648–2147483648 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |
| MASK | MASK | — |