ControlNet++ Input ππ π π
Tag a condition image for a multi-control model
- image
- prev_plus_input
- PLUS_INPUT
ControlNet++ is the "one model, many conditions" style of ControlNet - a single union checkpoint that can take a depth map and a pose skeleton and a canny edge map at the same time. But the model has to be told which image is which. That's this node's whole job: you hand it one condition image and tell it what kind of condition that is, and it produces a tagged input that the ControlNet++ Multi loader knows how to route. Chain several of these together and you've described a full multi-condition setup.
Think of it as labeling. The model can accept a stack of conditions; each Input node is one labeled item in that stack.
How it works
A ControlNet++ union model was trained to recognize multiple condition types through one network, with learned fusion so the conditions blend without per-workflow tuning. To use more than one at once you build a list: each condition image gets paired with its type via an Input node, and the nodes chain through prev_plus_input so the list grows. The combined PLUS_INPUT then goes into the ControlNet++ Multi loader, which loads the model and assembles the conditions. For a single condition you can skip the chaining and use the ControlNet++ Single loader instead - this node is really about stacking two or more.
The inputs and outputs that matter
image(required, IMAGE) - one preprocessed condition map (a depth map, a pose skeleton, a canny edge image, and so on). Preprocess it the normal way first, withcomfyui_controlnet_aux.control_type(required, dropdown) - what kind of condition that image is. This is the label the union model uses to route it correctly. Match it to the map you actually fed in - a depth map tagged as pose won't behave.
Optional prev_plus_input (PLUS_INPUT) chains a previous Input node onto this one, which is how you accumulate multiple conditions.
Output is PLUS_INPUT - connect it to the next Input node's prev_plus_input (to add more), or into the plus_input of the Load ControlNet++ Model (Multi) node when the chain is complete.
How to install it
ComfyUI Manager: search ComfyUI-Advanced-ControlNet, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet
then restart. No dependencies for the node. You'll need a ControlNet++ / union model in ComfyUI/models/controlnet (xinsir's SDXL union ProMax is the canonical one) and the preprocessor pack Fannovel16/comfyui_controlnet_aux to build the condition maps.
Common issues & troubleshooting
Your conditions are getting crossed. Almost always a mislabeled control_type - the tag has to match the map. Double-check each Input node names the condition you actually plugged into it.
Only one condition seems to apply. You didn't chain them. Each Input node's PLUS_INPUT output must feed the next node's prev_plus_input; the final one goes to the Multi loader. A broken chain means only the last link survives.
You only have one condition. Then you don't need the Input/Multi pair at all - use Load ControlNet++ Model (Single), which takes the image and type directly.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | β | |
| control_type | COMBO | 8 options: openpose, depth, hed/pidi/scribble/ted, canny/lineart/mlsd, normal, segment, +2 | |
| prev_plus_inputopt | PLUS_INPUT | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| PLUS_INPUT | PLUS_INPUT | β |