AUN Group Controller
One controller to rule every group in your workflow
- Active Groups
- Switch 1
- Switch 2
- Switch 3
- Switch 4
- Switch 5
- Switch 6
- Switch 7
- Switch 8
- Switch 9
- Switch 10
- Switch 11
- Switch 12
- Switch 13
- Switch 14
- Switch 15
- Switch 16
- Switch 17
- Switch 18
- Switch 19
- Switch 20
By the time a ComfyUI workflow earns the name "complex," it's almost always organized into groups - a green box around the upscale chain, a red box around the refiner, a blue box you labeled "don't touch." The AUN Group Controller is the node that finally puts a dashboard on those boxes. Point it at a group name, and one toggle bypasses, mutes, collapses, or does any combination - for the entire group, no matter how many nodes are inside.
How it works
It's a graph-state controller: pick a mode (Bypass, Mute, Collapse, or Bypass+Collapse / Mute+Collapse), give each slot a group name, and the node pushes state changes to the ComfyUI frontend before the run starts. Group matching is partial, and it supports exclusions - put !load in the slot and everything in the group except nodes matching "load" gets hit. That exclusion syntax (also -load) is the same convention AUN uses across its controllers, so it's worth learning once.
The killer feature is use_all_groups. Flip it on and the node scans the workflow, lists every group it finds, and gives you a toggle for each one automatically - no typing names. For a one-off tidy-up that's the fastest way to mute a section you're not using this batch without deleting anything. Turn it off and you're back to manual slots, which is the better long-term setup because slot positions survive workflow edits.
Slot-level toggles show the AUN convention: 🟢 active, 🔴 controlled by mode. There's an AllSwitch ("All 🟢" vs "Individual") to force every listed group active in one click, a toggle_restriction for the familiar max one / always one / iterate / random behaviors, and a control_mode that switches the whole node to index-driven - wire the Index input and the slot matching that number activates, which is how you chain this to a randomizer for rotating group presets.
The few inputs that matter
mode- the real choice. Bypass and Mute behave differently: bypass passes data through unchanged, mute stops the node running at all. For groups full of loaders and samplers, mute is usually what you want.group_name_N- target group(s) per slot; partial match, newline/comma/semicolon separated,!/-to exclude.use_all_groups- auto-populate from the graph. Try it first; it's the "wow" moment.
Outputs: Active Groups (STRING, the names actually active - handy for filenames or logging) plus Switch 1…Switch 20 BOOLEAN pins you can feed into other switches. show_outputs hides those pins if you want a clean canvas.
Gotchas
Group targeting depends on the group title matching - rename a group and a hardcoded slot silently stops matching (partial matching helps, but a totally new name won't hit). And if use_all_groups doesn't list something, the node hasn't seen the graph yet; a reload or re-run usually fixes it. Note it targets groups as ComfyUI knows them in the current prompt - it's a live controller, not a persistent setting.
Install
It's part of AUN ComfyUI Nodes (loz2754). Install once, get all of it:
cd ComfyUI/custom_nodes
git clone https://github.com/loz2754/AUN-ComfyUI-Nodes
or search "AUN ComfyUI Nodes" in ComfyUI Manager, then restart. The pack's deps (piexif, opencv-python-headless, imageio-ffmpeg, requests) install automatically with Manager; no model files involved. If your workflow is a loose pile of nodes instead of a tidy group collection, the same logic lives in AUN Node Controller (by node ID/title), and Multi Bypass/Mute Index covers pure index switching by ID.
Inputs (49)
| Name | Type | Default | Description |
|---|---|---|---|
| modeopt | COMBO | Bypass | Choose how to disable nodes in groups: Bypass (🔴), Mute (🔇), Collapse (▶), or combinations. |
| slot_countopt | INT | 31–20 | Number of control slots to show (1-20). |
| toggle_restrictionopt | COMBO | default | Logic for toggles: 'max one' allows only one active, 'always one' ensures at least one is active, 'iterate' cycles through slots, 'random' picks a random slot on each run. |
| use_all_groupsopt | BOOLEAN | false | If enabled, shows a toggle for every group in the graph instead of using manual slots. |
| show_outputsopt | BOOLEAN | true | Show boolean output pins for each slot. |
| group_name_1opt | STRING | Group name(s) for slot 1 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load'). | |
| switch_1opt | BOOLEAN | false | Toggle state for slot 1. 🟢 = active, 🔴 = controlled by mode. |
| group_name_2opt | STRING | Group name(s) for slot 2 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load'). | |
| switch_2opt | BOOLEAN | false | Toggle state for slot 2. 🟢 = active, 🔴 = controlled by mode. |
| group_name_3opt | STRING | Group name(s) for slot 3 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load'). | |
| switch_3opt | BOOLEAN | false | Toggle state for slot 3. 🟢 = active, 🔴 = controlled by mode. |
| group_name_4opt | STRING | Group name(s) for slot 4 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load'). | |
| switch_4opt | BOOLEAN | false | Toggle state for slot 4. 🟢 = active, 🔴 = controlled by mode. |
| group_name_5opt | STRING | Group name(s) for slot 5 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load'). | |
| switch_5opt | BOOLEAN | false | Toggle state for slot 5. 🟢 = active, 🔴 = controlled by mode. |
| group_name_6opt | STRING | Group name(s) for slot 6 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load'). | |
| switch_6opt | BOOLEAN | false | Toggle state for slot 6. 🟢 = active, 🔴 = controlled by mode. |
| group_name_7opt | STRING | Group name(s) for slot 7 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load'). | |
| switch_7opt | BOOLEAN | false | Toggle state for slot 7. 🟢 = active, 🔴 = controlled by mode. |
| group_name_8opt | STRING | Group name(s) for slot 8 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load'). | |
| switch_8opt | BOOLEAN | false | Toggle state for slot 8. 🟢 = active, 🔴 = controlled by mode. |
| group_name_9opt | STRING | Group name(s) for slot 9 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load'). | |
| switch_9opt | BOOLEAN | false | Toggle state for slot 9. 🟢 = active, 🔴 = controlled by mode. |
| group_name_10opt | STRING | Group name(s) for slot 10 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load'). | |
| switch_10opt | BOOLEAN | false | Toggle state for slot 10. 🟢 = active, 🔴 = controlled by mode. |
| group_name_11opt | STRING | Group name(s) for slot 11 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load'). | |
| switch_11opt | BOOLEAN | false | Toggle state for slot 11. 🟢 = active, 🔴 = controlled by mode. |
| group_name_12opt | STRING | Group name(s) for slot 12 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load'). | |
| switch_12opt | BOOLEAN | false | Toggle state for slot 12. 🟢 = active, 🔴 = controlled by mode. |
| group_name_13opt | STRING | Group name(s) for slot 13 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load'). | |
| switch_13opt | BOOLEAN | false | Toggle state for slot 13. 🟢 = active, 🔴 = controlled by mode. |
| group_name_14opt | STRING | Group name(s) for slot 14 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load'). | |
| switch_14opt | BOOLEAN | false | Toggle state for slot 14. 🟢 = active, 🔴 = controlled by mode. |
| group_name_15opt | STRING | Group name(s) for slot 15 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load'). | |
| switch_15opt | BOOLEAN | false | Toggle state for slot 15. 🟢 = active, 🔴 = controlled by mode. |
| group_name_16opt | STRING | Group name(s) for slot 16 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load'). | |
| switch_16opt | BOOLEAN | false | Toggle state for slot 16. 🟢 = active, 🔴 = controlled by mode. |
| group_name_17opt | STRING | Group name(s) for slot 17 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load'). | |
| switch_17opt | BOOLEAN | false | Toggle state for slot 17. 🟢 = active, 🔴 = controlled by mode. |
| group_name_18opt | STRING | Group name(s) for slot 18 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load'). | |
| switch_18opt | BOOLEAN | false | Toggle state for slot 18. 🟢 = active, 🔴 = controlled by mode. |
| group_name_19opt | STRING | Group name(s) for slot 19 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load'). | |
| switch_19opt | BOOLEAN | false | Toggle state for slot 19. 🟢 = active, 🔴 = controlled by mode. |
| group_name_20opt | STRING | Group name(s) for slot 20 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load'). | |
| switch_20opt | BOOLEAN | false | Toggle state for slot 20. 🟢 = active, 🔴 = controlled by mode. |
| AllSwitchopt | BOOLEAN | false | ON = all groups active (🟢). OFF = use individual group switches. |
| control_modeopt | COMBO | manual | manual = use the slot toggles directly. index-driven = activate the slot matching the Index input. |
| Indexopt | INT | 00–20 | When control_mode is index-driven, activate only this slot. 0 means all slots inactive. |
| show_AllSwitchopt | BOOLEAN | false | Show the AllSwitch toggle even in compact mode. |
Outputs (21)
| Name | Type | Description |
|---|---|---|
| Active Groups | STRING | — |
| Switch 1 | BOOLEAN | — |
| Switch 2 | BOOLEAN | — |
| Switch 3 | BOOLEAN | — |
| Switch 4 | BOOLEAN | — |
| Switch 5 | BOOLEAN | — |
| Switch 6 | BOOLEAN | — |
| Switch 7 | BOOLEAN | — |
| Switch 8 | BOOLEAN | — |
| Switch 9 | BOOLEAN | — |
| Switch 10 | BOOLEAN | — |
| Switch 11 | BOOLEAN | — |
| Switch 12 | BOOLEAN | — |
| Switch 13 | BOOLEAN | — |
| Switch 14 | BOOLEAN | — |
| Switch 15 | BOOLEAN | — |
| Switch 16 | BOOLEAN | — |
| Switch 17 | BOOLEAN | — |
| Switch 18 | BOOLEAN | — |
| Switch 19 | BOOLEAN | — |
| Switch 20 | BOOLEAN | — |