ComfyUI Node

VRGDG_SetGroupStateMulti

A mute/bypass dashboard for up to twelve workflow groups

By vrgamegirl19·Created about a year ago·Updated about 7 hours ago· 718
VRGDG_SetGroupStateMulti
  • signal
  • signal_opt
group_count1
group_actionmute
auto_queue_nextfalse
queue_delay_seconds0.0
node_ids_csv
group_targets_json[]
group_1<none>
group_1_actionmute
group_2<none>
group_2_actionmute
group_3<none>
group_3_actionmute
group_4<none>
group_4_actionmute
group_5<none>
group_5_actionmute
group_6<none>
group_6_actionmute
group_7<none>
group_7_actionmute
group_8<none>
group_8_actionmute
group_9<none>
group_9_actionmute
group_10<none>
group_10_actionmute
group_11<none>
group_11_actionmute
group_12<none>
group_12_actionmute

If you've ever stared at a ComfyUI graph so dense you can't see the wires, you already know what this node is for. VRGDG_SetGroupStateMulti is a batch control panel: give it a list of workflow groups and it mutes, bypasses, or activates them - up to twelve at once, from inside the graph, at runtime. It's the same idea as rgthree-comfy's Fast Groups Muter and Bypasser, built directly into this pack so its multi-scene workflows can rewire themselves between passes without you clicking.

The mechanism

The node hooks into ComfyUI's node-state API. In the UI, right-clicking a node and choosing Mute or Bypass is a manual toggle; this node does the same thing programmatically when it executes. The signal input (type *, so anything) exists purely to trigger execution and to let the workflow control when the state change happens - you feed it a value from a finished stage, and the group flips at that point. It echoes the signal back out of signal_opt so you can keep the chain going.

The key inputs:

  • group_count - how many group rows you want (1–12).
  • group_action - the default action for groups without their own override: active, mute, or bypass.
  • group_1group_12 with matching group_1_actiongroup_12_action - the per-group targets and actions. The group names are strings; ComfyUI group titles go here.
  • node_ids_csv and group_targets_json - the escape hatches. A comma-separated list of node IDs, or a JSON blob of targets, for when you want to hit individual nodes rather than named groups.
  • auto_queue_next with queue_delay_seconds - if on, the node re-queues the workflow after flipping state, with an optional delay. That's what turns a single run into a self-advancing multi-scene render: scene 1 finishes, this node mutes scene 1's group, activates scene 2's, and re-queues.

The workflow it's built for

This is the orchestration heart of the pack's music-video pipeline. The workflow is one big graph where each scene is a group; after rendering scene 1 it needs to run scene 2 without a human walking over and clicking. auto_queue_next plus the group states is how that loop stays in motion for hours. If you're not running that pipeline, this is still a genuinely handy utility - a single node that can bypass half your graph on demand is worth having around.

Install and the honest caveats

cd ComfyUI/custom_nodes
git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl

or ComfyUI Manager → "vrgamedev", restart. Requirements: kornia, librosa, imageio.

The trap is figuring out what to put in the group name fields - group titles, not node titles, and they must match exactly or the flip silently does nothing. If your group is called "Scene 2 (v3)" and you type "Scene 2", you'll sit through a run wondering why nothing changed. Check the node's behavior with group_count small and auto_queue_next off before you trust it with a 3-hour batch. And remember the pack's README predates most of these nodes - there's no manual for the fields, so the workflow JSONs and the author's tutorial are your real documentation.

CategoryVRGDG/General

Inputs (31)

NameTypeDefaultDescription
signal*
group_countINT11–12
group_actionCOMBOmute3 options: active, mute, bypass
auto_queue_nextBOOLEANfalse
queue_delay_secondsFLOAT0.00–60
node_ids_csvSTRING
group_targets_jsonSTRING[]
group_1STRING<none>
group_1_actionCOMBOmute3 options: active, mute, bypass
group_2STRING<none>
group_2_actionCOMBOmute3 options: active, mute, bypass
group_3STRING<none>
group_3_actionCOMBOmute3 options: active, mute, bypass
group_4STRING<none>
group_4_actionCOMBOmute3 options: active, mute, bypass
group_5STRING<none>
group_5_actionCOMBOmute3 options: active, mute, bypass
group_6STRING<none>
group_6_actionCOMBOmute3 options: active, mute, bypass
group_7STRING<none>
group_7_actionCOMBOmute3 options: active, mute, bypass
group_8STRING<none>
group_8_actionCOMBOmute3 options: active, mute, bypass
group_9STRING<none>
group_9_actionCOMBOmute3 options: active, mute, bypass
group_10STRING<none>
group_10_actionCOMBOmute3 options: active, mute, bypass
group_11STRING<none>
group_11_actionCOMBOmute3 options: active, mute, bypass
group_12STRING<none>
group_12_actionCOMBOmute3 options: active, mute, bypass

Outputs (1)

NameTypeDescription
signal_opt*