Nodes/ComfyUI Easy Use/Easy Apply CnetStack
ComfyUI Node Runs on cloud

Easy Apply CnetStack

The two-line ending to a multi-ControlNet stack

By yolain·Created 3 years ago·Updated 8 days ago· 2,633
Easy Apply CnetStack
  • controlnet_stack
  • pipe
  • pipe

This is the smallest node in the whole pack, and that's the point. Once you've built a stack of ControlNets with easy controlnetStack - each unit with its own image, strength, and step range already configured - you need exactly one more node to actually bake that stack into your conditioning. This is that node.

Why stacking is separate from applying

Multiple ControlNets running together is a normal, well-supported pattern: canny plus depth for structure, openpose plus depth for a posed character in a real scene, each unit independently weighted and independently timed across the denoising schedule. The awkward part in stock ComfyUI is that applying three ControlNets means three separate Apply nodes chained in sequence, each one threading positive and negative conditioning through to the next. Easy-Use splits this into two steps: build the stack once (a separate node handles collecting up to three controlnet + image + strength + timing combos into one CONTROL_NET_STACK object), then apply the whole stack in one shot. This node is the "apply" half - it takes that pre-built stack and your pipe, and returns a pipe with all of it baked into the conditioning at once.

The inputs and outputs that matter

There are exactly two required inputs, and no optional ones. controlnet_stack takes the CONTROL_NET_STACK output from easy controlnetStack - this node does nothing meaningful without it. pipe is your standard Easy-Use bundle, carrying model, conditioning, and everything else your sampler needs. The output is a single pipe, with every ControlNet unit from the stack now applied to its positive and negative conditioning.

There's genuinely nothing else to configure here - all the actual tuning (which conditioning image, what strength, what start/end percent, whether to use soft weight scaling) happens upstream on the stack-building node. This one just commits it.

Installing it

ComfyUI Manager: search ComfyUI Easy Use, install, restart. By hand:

cd ComfyUI/custom_nodes
git clone https://github.com/yolain/ComfyUI-Easy-Use

Windows: double-click install.bat. Linux/Mac: cd in and run pip install -r requirements.txt yourself. Restart ComfyUI. You'll also need whatever ControlNet checkpoints your stack references downloaded into models/controlnet - this node doesn't touch model files at all, it just applies conditioning that's already configured upstream.

Where people get stuck

Almost every issue with this node is actually an issue with the stack feeding it. If nothing appears to be conditioning your generation, check that toggle was enabled on each unit back in easy controlnetStack - a stack with every unit toggled off produces an empty stack that this node happily applies as a no-op. If one ControlNet in a multi-unit stack seems to be drowning out the others, that's a strength or step-range balance problem upstream, not something this node can fix - it applies whatever weighting the stack already carries. And if you're on a modern union ControlNet model, remember the community's current guidance is to run these lower than the old SD-era default of 1.0 - recommended weights on 2025-26 union checkpoints tend to sit in the 0.65–0.9 range, so set that on the stack node before this one just passes it through unchanged.

CategoryEasyUse/Adapter

Inputs (2)

NameTypeDefaultDescription
controlnet_stackCONTROL_NET_STACK
pipePIPE_LINE

Outputs (1)

NameTypeDescription
pipePIPE_LINE