Nodes/comfyui-art-venture/ControlNet Stacker Adv.
ComfyUI Node Runs on cloud

ControlNet Stacker Adv.

Chain multiple ControlNets on one wire

By sipherxyz·Created 3 years ago·Updated 4 months ago· 352
ControlNet Stacker Adv.
  • image
  • cnet_stack
  • timestep_keyframe
  • CNET_STACK
control_net_name
strength1.00
start_percent0.000
end_percent1.000
preprocessor
control_net_overrideNone
resolution512
enabledtrue

The loader nodes apply a ControlNet straight to your conditioning. This one doesn't - it builds a stack instead, and hands it down a single wire. That's the difference that matters: if you want canny and depth and pose all steering one generation, you chain a few of these together and pass the accumulated stack into an Efficiency-style sampler at the end. No forest of Apply nodes, no crossed wires.

If you've used the Efficiency Nodes' LoRA Stacker, this is the same pattern for ControlNets. And multi-ControlNet is genuinely one of the most powerful moves in the toolbox - canny + depth for edges plus spatial arrangement, openpose + depth for a posed figure in a real space, lineart + reference for character consistency.

How it works

Each Stacker node adds one ControlNet's worth of settings - model, image, strength, step window - to a CONTROL_NET_STACK. Feed the cnet_stack output of one into the cnet_stack input of the next, and you accumulate a list. The final CNET_STACK output goes to whatever consumes a stack (an Efficient KSampler or an apply-stack node). Nothing is applied to your conditioning until that consumer runs it, which keeps the whole thing tidy and easy to reorder.

The "Adv." in the name is the start/end percent on each entry - per-ControlNet step scheduling. That's the same trick that makes multi-ControlNet behave: hold your structural condition (depth, pose) through composition, but release a detail condition (canny) early so it doesn't fight the model late in the sample. Each unit in the stack carries its own weight and timing, exactly as multi-ControlNet is meant to.

The inputs that matter

  • control_net_name - besides your installed models and None, this one offers Auto: sd15, Auto: sdxl, and Auto: sdxl_t2i. The Auto entries pick a matching union for your base so you don't have to hunt down the exact filename.
  • image - the reference for this unit's condition.
  • strength - 0 to 10, default 1. Remember modern unions want 0.65-0.8, and when you're stacking, over-strong units compound into a stiff, over-controlled mess faster than a single one does.
  • start_percent / end_percent - the per-unit denoising window, 0.0 to 1.0.
  • preprocessor - from comfyui_controlnet_aux; None only, if that's not installed.
  • cnet_stack (optional) - the incoming stack from a previous Stacker. Leave it empty on the first node in the chain.

resolution, enabled, control_net_override and timestep_keyframe round out the optional set. The enabled toggle is especially nice on a stack - flip one condition off to see what it was contributing without unwiring anything.

Installing it

ComfyUI Manager → search comfyui-art-venture → install → restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/sipherxyz/comfyui-art-venture

then restart. Already present on comfy.icu.

Common issues

Red "missing" node in a downloaded workflow means the art-venture pack isn't installed - it's a frequent silent dependency. Manager's "Install Missing Custom Nodes" handles it.

The gotcha specific to stacking: the stack is only as good as what consumes it. If you build a beautiful three-ControlNet stack and nothing changes, check that the final CNET_STACK actually reaches a node that applies it - a dangling stack does nothing. And keep your individual strengths modest; three conditions at 1.0 each is a lot more force than three at 0.7.

Empty preprocessor list is the usual controlnet_aux dependency issue, not a fault of this node. If you don't need step scheduling, the plainer ControlNet Stacker drops the start/end inputs for a cleaner node.

CategoryArtVenture/Loaders

Inputs (11)

NameTypeDefaultDescription
control_net_nameCOMBO4 options: None, Auto: sd15, Auto: sdxl, Auto: sdxl_t2i
imageIMAGE
strengthFLOAT1.000–10
start_percentFLOAT0.0000–1
end_percentFLOAT1.0000–1
preprocessorCOMBO1 options: None
cnet_stackoptCONTROL_NET_STACK
control_net_overrideoptSTRINGNone
timestep_keyframeoptTIMESTEP_KEYFRAME
resolutionoptINT51264–2048
enabledoptBOOLEANtrue

Outputs (1)

NameTypeDescription
CNET_STACKCONTROL_NET_STACK