Nodes/AUN ComfyUI Nodes/AUN Group Controller
ComfyUI Node

AUN Group Controller

One controller to rule every group in your workflow

By loz2754·Created 8 months ago·Updated about 15 hours ago· 5
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 1Switch 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