Nodes/AUN ComfyUI Nodes/AUN Group Controller
ComfyUI Node

AUN Group Controller

One controller to rule every group in your workflow

By loz2754·Created 9 months ago·Updated 11 days ago· 7
AUN Group Controller
    • 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
    ◄modeBypass►
    ◄slot_count3►
    ◄toggle_restrictiondefault►
    ◄use_all_groupsfalse►
    ◄show_outputstrue►
    ◄group_name_1►
    ◄switch_1false►
    ◄group_name_2►
    ◄switch_2false►
    ◄group_name_3►
    ◄switch_3false►
    ◄group_name_4►
    ◄switch_4false►
    ◄group_name_5►
    ◄switch_5false►
    ◄group_name_6►
    ◄switch_6false►
    ◄group_name_7►
    ◄switch_7false►
    ◄group_name_8►
    ◄switch_8false►
    ◄group_name_9►
    ◄switch_9false►
    ◄group_name_10►
    ◄switch_10false►
    ◄group_name_11►
    ◄switch_11false►
    ◄group_name_12►
    ◄switch_12false►
    ◄group_name_13►
    ◄switch_13false►
    ◄group_name_14►
    ◄switch_14false►
    ◄group_name_15►
    ◄switch_15false►
    ◄group_name_16►
    ◄switch_16false►
    ◄group_name_17►
    ◄switch_17false►
    ◄group_name_18►
    ◄switch_18false►
    ◄group_name_19►
    ◄switch_19false►
    ◄group_name_20►
    ◄switch_20false►
    ◄AllSwitchfalse►
    ◄control_modemanual►
    ◄Index0►
    ◄show_AllSwitchfalse►

    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.

    CategoryAUN Nodes/Node Control

    Inputs (49)

    NameTypeDefaultDescription
    modeoptCOMBOBypassChoose how to disable nodes in groups: Bypass (🔴), Mute (🔇), Collapse (▶), or combinations.
    slot_countoptINT31–20Number of control slots to show (1-20).
    toggle_restrictionoptCOMBOdefaultLogic 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_groupsoptBOOLEANfalseIf enabled, shows a toggle for every group in the graph instead of using manual slots.
    show_outputsoptBOOLEANtrueShow boolean output pins for each slot.
    group_name_1optSTRINGGroup name(s) for slot 1 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load').
    switch_1optBOOLEANfalseToggle state for slot 1. 🟢 = active, 🔴 = controlled by mode.
    group_name_2optSTRINGGroup name(s) for slot 2 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load').
    switch_2optBOOLEANfalseToggle state for slot 2. 🟢 = active, 🔴 = controlled by mode.
    group_name_3optSTRINGGroup name(s) for slot 3 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load').
    switch_3optBOOLEANfalseToggle state for slot 3. 🟢 = active, 🔴 = controlled by mode.
    group_name_4optSTRINGGroup name(s) for slot 4 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load').
    switch_4optBOOLEANfalseToggle state for slot 4. 🟢 = active, 🔴 = controlled by mode.
    group_name_5optSTRINGGroup name(s) for slot 5 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load').
    switch_5optBOOLEANfalseToggle state for slot 5. 🟢 = active, 🔴 = controlled by mode.
    group_name_6optSTRINGGroup name(s) for slot 6 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load').
    switch_6optBOOLEANfalseToggle state for slot 6. 🟢 = active, 🔴 = controlled by mode.
    group_name_7optSTRINGGroup name(s) for slot 7 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load').
    switch_7optBOOLEANfalseToggle state for slot 7. 🟢 = active, 🔴 = controlled by mode.
    group_name_8optSTRINGGroup name(s) for slot 8 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load').
    switch_8optBOOLEANfalseToggle state for slot 8. 🟢 = active, 🔴 = controlled by mode.
    group_name_9optSTRINGGroup name(s) for slot 9 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load').
    switch_9optBOOLEANfalseToggle state for slot 9. 🟢 = active, 🔴 = controlled by mode.
    group_name_10optSTRINGGroup name(s) for slot 10 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load').
    switch_10optBOOLEANfalseToggle state for slot 10. 🟢 = active, 🔴 = controlled by mode.
    group_name_11optSTRINGGroup name(s) for slot 11 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load').
    switch_11optBOOLEANfalseToggle state for slot 11. 🟢 = active, 🔴 = controlled by mode.
    group_name_12optSTRINGGroup name(s) for slot 12 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load').
    switch_12optBOOLEANfalseToggle state for slot 12. 🟢 = active, 🔴 = controlled by mode.
    group_name_13optSTRINGGroup name(s) for slot 13 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load').
    switch_13optBOOLEANfalseToggle state for slot 13. 🟢 = active, 🔴 = controlled by mode.
    group_name_14optSTRINGGroup name(s) for slot 14 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load').
    switch_14optBOOLEANfalseToggle state for slot 14. 🟢 = active, 🔴 = controlled by mode.
    group_name_15optSTRINGGroup name(s) for slot 15 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load').
    switch_15optBOOLEANfalseToggle state for slot 15. 🟢 = active, 🔴 = controlled by mode.
    group_name_16optSTRINGGroup name(s) for slot 16 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load').
    switch_16optBOOLEANfalseToggle state for slot 16. 🟢 = active, 🔴 = controlled by mode.
    group_name_17optSTRINGGroup name(s) for slot 17 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load').
    switch_17optBOOLEANfalseToggle state for slot 17. 🟢 = active, 🔴 = controlled by mode.
    group_name_18optSTRINGGroup name(s) for slot 18 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load').
    switch_18optBOOLEANfalseToggle state for slot 18. 🟢 = active, 🔴 = controlled by mode.
    group_name_19optSTRINGGroup name(s) for slot 19 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load').
    switch_19optBOOLEANfalseToggle state for slot 19. 🟢 = active, 🔴 = controlled by mode.
    group_name_20optSTRINGGroup name(s) for slot 20 (newline, comma, or semicolon separated). Use '!' or '-' prefix for exclusion (e.g. 'image, !load').
    switch_20optBOOLEANfalseToggle state for slot 20. 🟢 = active, 🔴 = controlled by mode.
    AllSwitchoptBOOLEANfalseON = all groups active (🟢). OFF = use individual group switches.
    control_modeoptCOMBOmanualmanual = use the slot toggles directly. index-driven = activate the slot matching the Index input.
    IndexoptINT00–20When control_mode is index-driven, activate only this slot. 0 means all slots inactive.
    show_AllSwitchoptBOOLEANfalseShow the AllSwitch toggle even in compact mode.

    Outputs (21)

    NameTypeDescription
    Active GroupsSTRING—
    Switch 1BOOLEAN—
    Switch 2BOOLEAN—
    Switch 3BOOLEAN—
    Switch 4BOOLEAN—
    Switch 5BOOLEAN—
    Switch 6BOOLEAN—
    Switch 7BOOLEAN—
    Switch 8BOOLEAN—
    Switch 9BOOLEAN—
    Switch 10BOOLEAN—
    Switch 11BOOLEAN—
    Switch 12BOOLEAN—
    Switch 13BOOLEAN—
    Switch 14BOOLEAN—
    Switch 15BOOLEAN—
    Switch 16BOOLEAN—
    Switch 17BOOLEAN—
    Switch 18BOOLEAN—
    Switch 19BOOLEAN—
    Switch 20BOOLEAN—