ComfyUI Node

XPipeGate

Mute buttons for your XPipe bundle — 50 channels, each with a switch

By Xz3r0-M·Created 8 months ago·Updated about 6 hours ago· 13
XPipeGate
  • xpipe_in
  • input_1
  • input_2
  • input_3
  • input_4
  • input_5
  • input_6
  • input_7
  • input_8
  • input_9
  • input_10
  • input_11
  • input_12
  • input_13
  • input_14
  • input_15
  • input_16
  • input_17
  • input_18
  • input_19
  • input_20
  • input_21
  • input_22
  • input_23
  • input_24
  • input_25
  • input_26
  • input_27
  • input_28
  • input_29
  • input_30
  • input_31
  • input_32
  • input_33
  • input_34
  • input_35
  • input_36
  • input_37
  • input_38
  • input_39
  • input_40
  • input_41
  • input_42
  • input_43
  • input_44
  • input_45
  • input_46
  • input_47
  • input_48
  • input_49
  • input_50
  • xpipe_out
  • output_1
  • output_2
  • output_3
  • output_4
  • output_5
  • output_6
  • output_7
  • output_8
  • output_9
  • output_10
  • output_11
  • output_12
  • output_13
  • output_14
  • output_15
  • output_16
  • output_17
  • output_18
  • output_19
  • output_20
  • output_21
  • output_22
  • output_23
  • output_24
  • output_25
  • output_26
  • output_27
  • output_28
  • output_29
  • output_30
  • output_31
  • output_32
  • output_33
  • output_34
  • output_35
  • output_36
  • output_37
  • output_38
  • output_39
  • output_40
  • output_41
  • output_42
  • output_43
  • output_44
  • output_45
  • output_46
  • output_47
  • output_48
  • output_49
  • output_50
enable_1true
enable_2true
enable_3true
enable_4true
enable_5true
enable_6true
enable_7true
enable_8true
enable_9true
enable_10true
enable_11true
enable_12true
enable_13true
enable_14true
enable_15true
enable_16true
enable_17true
enable_18true
enable_19true
enable_20true
enable_21true
enable_22true
enable_23true
enable_24true
enable_25true
enable_26true
enable_27true
enable_28true
enable_29true
enable_30true
enable_31true
enable_32true
enable_33true
enable_34true
enable_35true
enable_36true
enable_37true
enable_38true
enable_39true
enable_40true
enable_41true
enable_42true
enable_43true
enable_44true
enable_45true
enable_46true
enable_47true
enable_48true
enable_49true
enable_50true
port_names[]
type_warningtrue

Think of an audio mixer: fifty channels, each with its own mute button, and you can kill a channel without unplugging anything. XPipeGate is exactly that, but for the pack's XPipe bundle - one node that gates up to 50 channels of data, each with its own enable switch. It's the missing control surface for workflows that keep hitting "I want to turn this branch off without deleting the wires."

How it works

The node merges two sources of values per channel:

  • xpipe_in - an optional incoming XPipe bundle. Its slot values seed the channels, so you can chain gates.
  • input_1 … input_50 - optional direct inputs for each channel. A direct input overrides the value that came in via the bundle for that channel.

Each channel has an enable_N switch. Disabled channels output nothing (None) and skip their input entirely. Enabled channels take the direct input if present, else the bundle value, and emit it on the matching output_N port. There's also xpipe_out, which carries all enabled channel values as a fresh bundle - and it's always a valid bundle, even when nothing is connected. That "always valid" guarantee is the reason downstream XPipe nodes never choke on an empty gate.

Two quality-of-life toggles live on the node: type_warning (shows a visual warning when a channel output is wired to an incompatible input type - the classic striped + blinking link treatment) and port_names, a frontend-managed string for naming channels so the panel reads like your actual workflow rather than numbers 1 through 50.

The inputs that matter

For a beginner it's one: the enable_* switches. Everything else is optional - you can drop an XPipeGate into a workflow with nothing connected and it just sits there being a valid empty bundle, which is a much nicer starting point than a node that demands wiring before it'll run. If you're chaining gates, hook xpipe_in from the upstream bundle and use direct inputs to override only the channels you care about.

Installing it

XPipeGate ships in ComfyUI-Xz3r0-Nodes (by Xz3r0-M) under ♾️ Xz3r0/Workflow-Processing. ComfyUI Manager: search ComfyUI-Xz3r0-Nodes and install. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/Xz3r0-M/ComfyUI-Xz3r0-Nodes.git
cd ComfyUI-Xz3r0-Nodes
pip install -r requirements.txt

Restart ComfyUI after. No models, no GPU cost - this one's a frontend-heavy gate node, so if the panel looks wrong, update ComfyUI rather than hunting for a config bug.

Gotchas

Two things to keep straight. A disabled channel doesn't just output None from the bundle - it also skips evaluating its direct input (the inputs are lazy), which is a small perf win and means a dead channel can't drag a broken upstream into the run. And remember direct input wins over the bundle on the same channel; if a channel seems stuck on an old value, check whether something is plugged into its input_N that you forgot about.

Category♾️ Xz3r0/Workflow-Processing

Inputs (103)

NameTypeDefaultDescription
enable_1BOOLEANtrueWhether channel 1 output is enabled
enable_2BOOLEANtrueWhether channel 2 output is enabled
enable_3BOOLEANtrueWhether channel 3 output is enabled
enable_4BOOLEANtrueWhether channel 4 output is enabled
enable_5BOOLEANtrueWhether channel 5 output is enabled
enable_6BOOLEANtrueWhether channel 6 output is enabled
enable_7BOOLEANtrueWhether channel 7 output is enabled
enable_8BOOLEANtrueWhether channel 8 output is enabled
enable_9BOOLEANtrueWhether channel 9 output is enabled
enable_10BOOLEANtrueWhether channel 10 output is enabled
enable_11BOOLEANtrueWhether channel 11 output is enabled
enable_12BOOLEANtrueWhether channel 12 output is enabled
enable_13BOOLEANtrueWhether channel 13 output is enabled
enable_14BOOLEANtrueWhether channel 14 output is enabled
enable_15BOOLEANtrueWhether channel 15 output is enabled
enable_16BOOLEANtrueWhether channel 16 output is enabled
enable_17BOOLEANtrueWhether channel 17 output is enabled
enable_18BOOLEANtrueWhether channel 18 output is enabled
enable_19BOOLEANtrueWhether channel 19 output is enabled
enable_20BOOLEANtrueWhether channel 20 output is enabled
enable_21BOOLEANtrueWhether channel 21 output is enabled
enable_22BOOLEANtrueWhether channel 22 output is enabled
enable_23BOOLEANtrueWhether channel 23 output is enabled
enable_24BOOLEANtrueWhether channel 24 output is enabled
enable_25BOOLEANtrueWhether channel 25 output is enabled
enable_26BOOLEANtrueWhether channel 26 output is enabled
enable_27BOOLEANtrueWhether channel 27 output is enabled
enable_28BOOLEANtrueWhether channel 28 output is enabled
enable_29BOOLEANtrueWhether channel 29 output is enabled
enable_30BOOLEANtrueWhether channel 30 output is enabled
enable_31BOOLEANtrueWhether channel 31 output is enabled
enable_32BOOLEANtrueWhether channel 32 output is enabled
enable_33BOOLEANtrueWhether channel 33 output is enabled
enable_34BOOLEANtrueWhether channel 34 output is enabled
enable_35BOOLEANtrueWhether channel 35 output is enabled
enable_36BOOLEANtrueWhether channel 36 output is enabled
enable_37BOOLEANtrueWhether channel 37 output is enabled
enable_38BOOLEANtrueWhether channel 38 output is enabled
enable_39BOOLEANtrueWhether channel 39 output is enabled
enable_40BOOLEANtrueWhether channel 40 output is enabled
enable_41BOOLEANtrueWhether channel 41 output is enabled
enable_42BOOLEANtrueWhether channel 42 output is enabled
enable_43BOOLEANtrueWhether channel 43 output is enabled
enable_44BOOLEANtrueWhether channel 44 output is enabled
enable_45BOOLEANtrueWhether channel 45 output is enabled
enable_46BOOLEANtrueWhether channel 46 output is enabled
enable_47BOOLEANtrueWhether channel 47 output is enabled
enable_48BOOLEANtrueWhether channel 48 output is enabled
enable_49BOOLEANtrueWhether channel 49 output is enabled
enable_50BOOLEANtrueWhether channel 50 output is enabled
port_namesSTRING[]Serialized slot names managed by the frontend
type_warningBOOLEANtrueShow a warning when a channel output is connected to an incompatible input type.
xpipe_inoptxpipeOptional XPipe bundle to merge from. Leave unconnected to start with empty channels. A direct channel input overrides the value from the bundle.
input_1optCOMFY_MATCHTYPE_V3Optional direct input for channel 1 (any data type). Disabled channels skip this input.
input_2optCOMFY_MATCHTYPE_V3Optional direct input for channel 2 (any data type). Disabled channels skip this input.
input_3optCOMFY_MATCHTYPE_V3Optional direct input for channel 3 (any data type). Disabled channels skip this input.
input_4optCOMFY_MATCHTYPE_V3Optional direct input for channel 4 (any data type). Disabled channels skip this input.
input_5optCOMFY_MATCHTYPE_V3Optional direct input for channel 5 (any data type). Disabled channels skip this input.
input_6optCOMFY_MATCHTYPE_V3Optional direct input for channel 6 (any data type). Disabled channels skip this input.
input_7optCOMFY_MATCHTYPE_V3Optional direct input for channel 7 (any data type). Disabled channels skip this input.
input_8optCOMFY_MATCHTYPE_V3Optional direct input for channel 8 (any data type). Disabled channels skip this input.
input_9optCOMFY_MATCHTYPE_V3Optional direct input for channel 9 (any data type). Disabled channels skip this input.
input_10optCOMFY_MATCHTYPE_V3Optional direct input for channel 10 (any data type). Disabled channels skip this input.
input_11optCOMFY_MATCHTYPE_V3Optional direct input for channel 11 (any data type). Disabled channels skip this input.
input_12optCOMFY_MATCHTYPE_V3Optional direct input for channel 12 (any data type). Disabled channels skip this input.
input_13optCOMFY_MATCHTYPE_V3Optional direct input for channel 13 (any data type). Disabled channels skip this input.
input_14optCOMFY_MATCHTYPE_V3Optional direct input for channel 14 (any data type). Disabled channels skip this input.
input_15optCOMFY_MATCHTYPE_V3Optional direct input for channel 15 (any data type). Disabled channels skip this input.
input_16optCOMFY_MATCHTYPE_V3Optional direct input for channel 16 (any data type). Disabled channels skip this input.
input_17optCOMFY_MATCHTYPE_V3Optional direct input for channel 17 (any data type). Disabled channels skip this input.
input_18optCOMFY_MATCHTYPE_V3Optional direct input for channel 18 (any data type). Disabled channels skip this input.
input_19optCOMFY_MATCHTYPE_V3Optional direct input for channel 19 (any data type). Disabled channels skip this input.
input_20optCOMFY_MATCHTYPE_V3Optional direct input for channel 20 (any data type). Disabled channels skip this input.
input_21optCOMFY_MATCHTYPE_V3Optional direct input for channel 21 (any data type). Disabled channels skip this input.
input_22optCOMFY_MATCHTYPE_V3Optional direct input for channel 22 (any data type). Disabled channels skip this input.
input_23optCOMFY_MATCHTYPE_V3Optional direct input for channel 23 (any data type). Disabled channels skip this input.
input_24optCOMFY_MATCHTYPE_V3Optional direct input for channel 24 (any data type). Disabled channels skip this input.
input_25optCOMFY_MATCHTYPE_V3Optional direct input for channel 25 (any data type). Disabled channels skip this input.
input_26optCOMFY_MATCHTYPE_V3Optional direct input for channel 26 (any data type). Disabled channels skip this input.
input_27optCOMFY_MATCHTYPE_V3Optional direct input for channel 27 (any data type). Disabled channels skip this input.
input_28optCOMFY_MATCHTYPE_V3Optional direct input for channel 28 (any data type). Disabled channels skip this input.
input_29optCOMFY_MATCHTYPE_V3Optional direct input for channel 29 (any data type). Disabled channels skip this input.
input_30optCOMFY_MATCHTYPE_V3Optional direct input for channel 30 (any data type). Disabled channels skip this input.
input_31optCOMFY_MATCHTYPE_V3Optional direct input for channel 31 (any data type). Disabled channels skip this input.
input_32optCOMFY_MATCHTYPE_V3Optional direct input for channel 32 (any data type). Disabled channels skip this input.
input_33optCOMFY_MATCHTYPE_V3Optional direct input for channel 33 (any data type). Disabled channels skip this input.
input_34optCOMFY_MATCHTYPE_V3Optional direct input for channel 34 (any data type). Disabled channels skip this input.
input_35optCOMFY_MATCHTYPE_V3Optional direct input for channel 35 (any data type). Disabled channels skip this input.
input_36optCOMFY_MATCHTYPE_V3Optional direct input for channel 36 (any data type). Disabled channels skip this input.
input_37optCOMFY_MATCHTYPE_V3Optional direct input for channel 37 (any data type). Disabled channels skip this input.
input_38optCOMFY_MATCHTYPE_V3Optional direct input for channel 38 (any data type). Disabled channels skip this input.
input_39optCOMFY_MATCHTYPE_V3Optional direct input for channel 39 (any data type). Disabled channels skip this input.
input_40optCOMFY_MATCHTYPE_V3Optional direct input for channel 40 (any data type). Disabled channels skip this input.
input_41optCOMFY_MATCHTYPE_V3Optional direct input for channel 41 (any data type). Disabled channels skip this input.
input_42optCOMFY_MATCHTYPE_V3Optional direct input for channel 42 (any data type). Disabled channels skip this input.
input_43optCOMFY_MATCHTYPE_V3Optional direct input for channel 43 (any data type). Disabled channels skip this input.
input_44optCOMFY_MATCHTYPE_V3Optional direct input for channel 44 (any data type). Disabled channels skip this input.
input_45optCOMFY_MATCHTYPE_V3Optional direct input for channel 45 (any data type). Disabled channels skip this input.
input_46optCOMFY_MATCHTYPE_V3Optional direct input for channel 46 (any data type). Disabled channels skip this input.
input_47optCOMFY_MATCHTYPE_V3Optional direct input for channel 47 (any data type). Disabled channels skip this input.
input_48optCOMFY_MATCHTYPE_V3Optional direct input for channel 48 (any data type). Disabled channels skip this input.
input_49optCOMFY_MATCHTYPE_V3Optional direct input for channel 49 (any data type). Disabled channels skip this input.
input_50optCOMFY_MATCHTYPE_V3Optional direct input for channel 50 (any data type). Disabled channels skip this input.

Outputs (51)

NameTypeDescription
xpipe_outxpipeThe XPipe bundle with all enabled channel values, ready for the next XPipe node. Empty when nothing is connected.
output_1COMFY_MATCHTYPE_V3Channel 1 output (None when disabled or empty)
output_2COMFY_MATCHTYPE_V3Channel 2 output (None when disabled or empty)
output_3COMFY_MATCHTYPE_V3Channel 3 output (None when disabled or empty)
output_4COMFY_MATCHTYPE_V3Channel 4 output (None when disabled or empty)
output_5COMFY_MATCHTYPE_V3Channel 5 output (None when disabled or empty)
output_6COMFY_MATCHTYPE_V3Channel 6 output (None when disabled or empty)
output_7COMFY_MATCHTYPE_V3Channel 7 output (None when disabled or empty)
output_8COMFY_MATCHTYPE_V3Channel 8 output (None when disabled or empty)
output_9COMFY_MATCHTYPE_V3Channel 9 output (None when disabled or empty)
output_10COMFY_MATCHTYPE_V3Channel 10 output (None when disabled or empty)
output_11COMFY_MATCHTYPE_V3Channel 11 output (None when disabled or empty)
output_12COMFY_MATCHTYPE_V3Channel 12 output (None when disabled or empty)
output_13COMFY_MATCHTYPE_V3Channel 13 output (None when disabled or empty)
output_14COMFY_MATCHTYPE_V3Channel 14 output (None when disabled or empty)
output_15COMFY_MATCHTYPE_V3Channel 15 output (None when disabled or empty)
output_16COMFY_MATCHTYPE_V3Channel 16 output (None when disabled or empty)
output_17COMFY_MATCHTYPE_V3Channel 17 output (None when disabled or empty)
output_18COMFY_MATCHTYPE_V3Channel 18 output (None when disabled or empty)
output_19COMFY_MATCHTYPE_V3Channel 19 output (None when disabled or empty)
output_20COMFY_MATCHTYPE_V3Channel 20 output (None when disabled or empty)
output_21COMFY_MATCHTYPE_V3Channel 21 output (None when disabled or empty)
output_22COMFY_MATCHTYPE_V3Channel 22 output (None when disabled or empty)
output_23COMFY_MATCHTYPE_V3Channel 23 output (None when disabled or empty)
output_24COMFY_MATCHTYPE_V3Channel 24 output (None when disabled or empty)
output_25COMFY_MATCHTYPE_V3Channel 25 output (None when disabled or empty)
output_26COMFY_MATCHTYPE_V3Channel 26 output (None when disabled or empty)
output_27COMFY_MATCHTYPE_V3Channel 27 output (None when disabled or empty)
output_28COMFY_MATCHTYPE_V3Channel 28 output (None when disabled or empty)
output_29COMFY_MATCHTYPE_V3Channel 29 output (None when disabled or empty)
output_30COMFY_MATCHTYPE_V3Channel 30 output (None when disabled or empty)
output_31COMFY_MATCHTYPE_V3Channel 31 output (None when disabled or empty)
output_32COMFY_MATCHTYPE_V3Channel 32 output (None when disabled or empty)
output_33COMFY_MATCHTYPE_V3Channel 33 output (None when disabled or empty)
output_34COMFY_MATCHTYPE_V3Channel 34 output (None when disabled or empty)
output_35COMFY_MATCHTYPE_V3Channel 35 output (None when disabled or empty)
output_36COMFY_MATCHTYPE_V3Channel 36 output (None when disabled or empty)
output_37COMFY_MATCHTYPE_V3Channel 37 output (None when disabled or empty)
output_38COMFY_MATCHTYPE_V3Channel 38 output (None when disabled or empty)
output_39COMFY_MATCHTYPE_V3Channel 39 output (None when disabled or empty)
output_40COMFY_MATCHTYPE_V3Channel 40 output (None when disabled or empty)
output_41COMFY_MATCHTYPE_V3Channel 41 output (None when disabled or empty)
output_42COMFY_MATCHTYPE_V3Channel 42 output (None when disabled or empty)
output_43COMFY_MATCHTYPE_V3Channel 43 output (None when disabled or empty)
output_44COMFY_MATCHTYPE_V3Channel 44 output (None when disabled or empty)
output_45COMFY_MATCHTYPE_V3Channel 45 output (None when disabled or empty)
output_46COMFY_MATCHTYPE_V3Channel 46 output (None when disabled or empty)
output_47COMFY_MATCHTYPE_V3Channel 47 output (None when disabled or empty)
output_48COMFY_MATCHTYPE_V3Channel 48 output (None when disabled or empty)
output_49COMFY_MATCHTYPE_V3Channel 49 output (None when disabled or empty)
output_50COMFY_MATCHTYPE_V3Channel 50 output (None when disabled or empty)