Nodes/AegisFlow Utility Nodes/controlnet preprocessor bus
ComfyUI Node

controlnet preprocessor bus

The ControlNet bus

By aegis72·Created 3 years ago·Updated 2 years ago· 39
controlnet preprocessor bus
  • c1_passthrough
  • c2_normal_lineart
  • c3_anime_lineart
  • c4_manga_lineart
  • c5_midas_depthmap
  • c6_color_palette
  • c7_canny_edge
  • c8_openpose_recognizer
  • c9_scribble_lines
  • c10_yourchoice1
  • c11_yourchoice2
  • IMAGE
Input1

Anyone who's built a real ControlNet stack knows the ritual: preprocess the reference image six different ways, stare at the previews, and feed the one that works into the ControlNet Apply node. The Aegisflow controlnet preprocessor bus turns that trial-and-error into a single dial. It takes up to eleven processed images, and hands exactly one of them onward depending on an integer you set.

What it is

A switch, not a processor. The node's eleven optional inputs are named after the conditions they expect - c1_passthrough, c2_normal_lineart, c3_anime_lineart, c4_manga_lineart, c5_midas_depthmap, c6_color_palette, c7_canny_edge, c8_openpose_recognizer, c9_scribble_lines, plus two generic c10_yourchoice1 and c11_yourchoice2 slots for anything else. Set the required Input int to a number, and the matching image is routed to the single IMAGE output. Nothing gets processed or blended - it's a bus, pure routing.

If those input names look familiar, they should: canny, lineart (normal/anime/manga), MiDaS depth, OpenPose, and scribble are the classic ControlNet conditioning types, the ones the auxiliary preprocessor pack produces (the "ControlNet Auxiliary Preprocessors" pack is effectively required for any serious ControlNet workflow). So the intended wiring is: each preprocessor's output into its named slot, then the bus's single output into the image input of your ControlNet Apply node.

Why you'd reach for it

Two reasons. First, A/B testing: wire up a canny, an openpose, and a lineart pass all at once, flip the dial, and compare generations without rewiring anything. Second, reusability: build one workflow that accepts "whichever condition I feel like today" and switch conditions from a single widget - or drive Input from another INT node if you ever want to switch programmatically.

One quirk worth knowing: the widget caps at 9 in the schema, but the code happily handles inputs 10 and 11 - so if you use the two custom slots, ignore the widget's max and type the number in.

Installing it

Same as the whole AegisFlow Utility pack - you get all of its nodes at once:

cd ComfyUI/custom_nodes
git clone https://github.com/aegis72/aegisflow_utility_nodes

Restart ComfyUI. ComfyUI Manager also has it under "AegisFlow Utility Nodes". No models to download for this node itself - but the preprocessors you're feeding it are a separate install (ComfyUI_ControlNet_Aux / Impact Pack), and that's where the model files live.

Where people get burned

Leave a slot empty and select it, and you'll route None into your ControlNet - an error you'll chase for a while before noticing the dial is set to an unwired input. Also: the input names describe intent, not enforcement - the bus accepts any IMAGE in any slot, so garbage in, garbage out. It's a routing convenience, not a validator.

CategoryAegisFlow/passers

Inputs (12)

NameTypeDefaultDescription
InputINT11–9
c1_passthroughoptIMAGE
c2_normal_lineartoptIMAGE
c3_anime_lineartoptIMAGE
c4_manga_lineartoptIMAGE
c5_midas_depthmapoptIMAGE
c6_color_paletteoptIMAGE
c7_canny_edgeoptIMAGE
c8_openpose_recognizeroptIMAGE
c9_scribble_linesoptIMAGE
c10_yourchoice1optIMAGE
c11_yourchoice2optIMAGE

Outputs (1)

NameTypeDescription
IMAGEIMAGE