Nodes/KJNodes for ComfyUI/Set Shakker Labs Union ControlNet Type
ComfyUI Node Runs on cloud

Set Shakker Labs Union ControlNet Type

Tell Shakker's Flux union which mode to run

By kijai·Created 3 years ago·Updated a day ago· 2,908
Set Shakker Labs Union ControlNet Type
  • control_net
  • CONTROL_NET
type

A union ControlNet is one model that can do many jobs - canny, depth, pose, and so on - packed into a single file. The catch is it needs to be told which job you want on this run. SetShakkerLabsUnionControlNetType is that switch, specifically for Shakker Labs' Flux union ControlNet. You pass the loaded control net through it, pick a type, and the tagged control net comes out the other side ready to apply.

If you're running Flux with Shakker's Union Pro and your control image isn't landing right, there's a good chance you never set the type - and that's exactly the gap this node fills.

Why union models need this

The modern ControlNet story is union models. Instead of downloading a separate ControlNet per condition like the SD 1.5 days, one repo ships a single union that covers the common conditions - for Flux, Shakker Labs' Union Pro 2.0 handles canny, soft edge, depth, pose, and gray. That consolidation is great, but it moves a decision onto you: the model can't always guess whether the image you fed it is an edge map or a depth map, so you declare it.

This node is the Shakker-flavored version of that declaration. ComfyUI's built-in SetUnionControlNetType targets the more generic unions; Kijai's node exists because Shakker's model has its own type list and expects the tag set the way it likes. One quick note worth keeping in mind: the 2025-era unions publish lower recommended control weights than the old 1.0 default - Shakker's per-mode numbers sit around 0.7–0.9 - so starting at 1.0 tends to overcook the result.

The inputs and outputs that matter

  • control_net (CONTROL_NET) - the loaded Shakker union, straight from your ControlNet loader.
  • type (enum) - the mode: auto, canny, tile, depth, blur, pose, gray, or low quality. Pick the one that matches your control image. auto lets the model decide, which is convenient but not always right - set it explicitly when you know.

Output is CONTROL_NET - the same control net, now tagged, which you feed into your ControlNet Apply node as usual.

Think of it as a pass-through with a label slapped on. It goes between the loader and the apply step.

How to install it

ComfyUI Manager: search KJNodes for ComfyUI, install, restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/kijai/ComfyUI-KJNodes
pip install -r ComfyUI-KJNodes/requirements.txt

Restart and it's under conditioning/controlnet. The node downloads nothing - you supply the actual Shakker Labs union ControlNet model in your controlnet folder.

Common issues & troubleshooting

The control has no effect / looks scrambled. Wrong type, or none set. If you feed a depth map but the model thinks it's canny, the guidance is meaningless. Set type to match your preprocessor's output, or try auto as a fallback.

Everything's overcooked. Your control weight is too high. Modern Flux unions want lower weights than the SD-era 1.0 - start around 0.7–0.9 and adjust. This is the most common "ControlNet ruins my image" cause on the 2025+ unions.

"This type isn't in the list I expected." The type list is specific to what Shakker's model was trained on. Note that Union Pro 2.0 dropped the tile mode that the earlier 1.0 had - if a tile-upscale workflow isn't behaving, that's why. The union you're loading has to actually support the condition you're selecting.

Wrong node for my model. This one is tuned for the Shakker Labs Flux union. If you're on a different union (a Qwen or Z-Image one, or an SDXL xinsir union), use that model's matching type-set node instead - the tags aren't interchangeable across architectures.

Categoryconditioning/controlnet

Inputs (2)

NameTypeDefaultDescription
control_netCONTROL_NET
typeCOMBO8 options: auto, canny, tile, depth, blur, pose, +2

Outputs (1)

NameTypeDescription
CONTROL_NETCONTROL_NET