Academia Switch ยท Groups ๐๏ธ
A whole workflow in a grid โ switch flavours with one click on a mode
- mode_name
- mode_index
The Fast Switch pair is the A/B answer to "my workflow exists in two flavours." This node is the answer for when it exists in three, or four, or you want to see the whole map before you click. Academia Switch ยท Groups draws a matrix: one row per group in your workflow, one column per mode, and each cell says what that mode does to that group. Click a mode's column and half the canvas reconfigures itself.
How it works
You've probably used the manual version of this before: right-click a node โ Bypass. The Groups node automates that at group scale - applying a mode walks every node inside the affected groups and rewrites its run-mode flag. What you get that hand-bypassing never gives you is persistence and alternatives. The whole matrix is serialized into the node's switch_data widget, so the JSON travels with your workflow file: open it next week and every mode is still defined.
Each cell cycles through four states, shown as glyphs:
- โถ Active - every node in the group set to its normal run state
- โ Bypass - skipped, inputs passed through
- โ Mute - skipped entirely
- ยท Ignore - this mode doesn't touch the group at all
Click a cell to cycle, right-click for a menu that picks directly (including "same in every mode" or "forget this row"). Two extra ideas make it genuinely useful. ๐ธ Capture stores the graph's current live state into the active mode - so you don't hand-build a column, you just set up the canvas the way you want and record it. And the ยท Ignore state means a mode can switch on what it cares about without forcing you to declare every other group in the workflow, which is what keeps a big graph sane.
Inputs and outputs
The input side is just switch_data, the serialized state - managed by the UI, not hand-edited. What you may actually wire are the two outputs, because a mode is data too:
mode_name(STRING) - the active mode's name, e.g.portraitmode_index(INT) - its position in the mode list
Feed mode_name into a text node to tag outputs with which mode ran, or drive logic from mode_index. Every mode switch also prints a line to the ComfyUI console, which is a decent debugging breadcrumb.
Where it fits, and where it doesn't
If you only ever flip between two states and want the lever feel plus linked Models nodes, the Fast Switch Toggle is the tighter sibling. Grab this matrix when you want more than two modes, when you want to see every group's fate on one screen, or when a mode's identity should be readable by the rest of the graph. A mode named raw that mutters its own name out the mode_name output is a nice touch for versioned renders.
Install
Same pack, same steps as the other switch nodes - it all ships in comfyui_AcademiaSD. Manager โ Install Custom Nodes โ search "Academia SD", or:
cd ComfyUI/custom_nodes
git clone https://github.com/AcademiaSD/comfyui_AcademiaSD
Restart ComfyUI and hard-refresh the browser. No pip dependencies, no model downloads.
Gotchas
Groups are matched by title. Rename a group after building the matrix and its row silently points at a group that no longer exists; two groups sharing a title both obey the same cell. Rows only appear for groups that exist on the canvas, so an empty node isn't broken - it just means you haven't made groups yet (right-click the canvas โ Add Group). And remember the modes apply when you click the column header and "Apply on mode click" is on (the default); if a mode ever seems to do nothing, check that the cells actually say something other than ยท Ignore.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| switch_data | STRING | {} | Serialized state of the switch. Managed by the node UI. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| mode_name | STRING | โ |
| mode_index | INT | โ |