BMAB ControlNet Openpose
Pose conditioning, once you install its real dependency
- BMAB bind
Same story as its sibling node, BMAB ControlNet IPAdapter: if you install BMAB on its own and go looking for pose conditioning, this node will greet you with a warning instead of a working feature. That's expected - it's telling you exactly what to fix.
What it is
OpenPose conditioning detects human body keypoints (joints, and depending on the variant, face and hand landmarks too) from a reference image, and steers generation to match that pose. It's one of the most reliable ways to control a figure's pose without hand-drawing a skeleton yourself, and it's a staple of any pose-locked character workflow.
BMAB doesn't implement pose detection itself - it relies on Fannovel16's comfyui_controlnet_aux, the standard preprocessor pack most of the ComfyUI ecosystem uses for OpenPose, DWPose, and the rest of the usual ControlNet preprocessing lineup. Without it installed, this node loads as a stub whose default text says exactly that: "Cannot Load comfyui_controlnet_aux. To use this node, install comfyui_controlnet_aux."
How it works, once the dependency is there
Standard OpenPose mechanics: a reference image gets run through a pose detector (classic OpenPose, or the more accurate DWPose that most current preprocessor packs default to for better hand detection), producing a skeleton of keypoints. That skeleton becomes the spatial condition, and generation follows it while your prompt still decides everything about appearance. Pose conditioning is on essentially every modern union ControlNet checkpoint - SDXL, Flux, Z-Image, Qwen-Image all have it - so once the preprocessing dependency is satisfied here, the actual ControlNet weights you need are usually easy to find for whichever base model you're running.
Inputs and outputs
In its dependency-missing stub state, the node exposes one required field: text (multiline string), defaulting to the warning message above. Once comfyui_controlnet_aux is installed and BMAB picks it up, the node's real pose-detection inputs take over - the info schema here reflects the stub, not the fully functional node.
Output is a single BMAB bind, carrying the result (non-functional until the dependency is met) forward to the rest of your chain.
Installing it
BMAB itself first, if it isn't already in place:
cd ComfyUI/custom_nodes
git clone https://github.com/portu-sim/comfyui_bmab.git
cd comfyui_bmab
pip install -r requirements.txt
Then the dependency this specific node needs:
cd ComfyUI/custom_nodes
git clone https://github.com/Fannovel16/comfyui_controlnet_aux.git
cd comfyui_controlnet_aux
pip install -r requirements.txt
(Windows portable users: use python_embeded\python.exe -m pip install -r requirements.txt for both.) Restart ComfyUI fully after installing - a browser refresh alone won't pick up a newly-installed custom node pack. You'll separately need an OpenPose-capable ControlNet checkpoint for your base model, downloaded into models/controlnet - this node handles the pose detection preprocessing, not the ControlNet weights themselves.
Common issues
- Warning text persists after installing. Confirm you did a full ComfyUI restart, not just a page reload - this is the single most common reason a freshly-installed dependency doesn't take effect.
comfyui_controlnet_auxinstalled but its own preprocessor models missing. That pack downloads detection models on first use for most preprocessors; if you're offline or behind a restrictive network the first run, the download can silently fail. Checkcomfyui_controlnet_aux's own documentation if a specific preprocessor errors out even after the pack itself installs cleanly.- No matching ControlNet checkpoint for your base model. Pose detection working correctly doesn't help if you haven't separately downloaded an OpenPose/pose-capable ControlNet checkpoint that matches your generation model's architecture.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | Cannot Load comfyui_controlnet_aux. To use this node, install comfyui_controlnet_aux | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BMAB bind | BMAB bind | — |