XPipeGate
Mute buttons for your XPipe bundle — 50 channels, each with a switch
- 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
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.
Inputs (103)
| Name | Type | Default | Description |
|---|---|---|---|
| enable_1 | BOOLEAN | true | Whether channel 1 output is enabled |
| enable_2 | BOOLEAN | true | Whether channel 2 output is enabled |
| enable_3 | BOOLEAN | true | Whether channel 3 output is enabled |
| enable_4 | BOOLEAN | true | Whether channel 4 output is enabled |
| enable_5 | BOOLEAN | true | Whether channel 5 output is enabled |
| enable_6 | BOOLEAN | true | Whether channel 6 output is enabled |
| enable_7 | BOOLEAN | true | Whether channel 7 output is enabled |
| enable_8 | BOOLEAN | true | Whether channel 8 output is enabled |
| enable_9 | BOOLEAN | true | Whether channel 9 output is enabled |
| enable_10 | BOOLEAN | true | Whether channel 10 output is enabled |
| enable_11 | BOOLEAN | true | Whether channel 11 output is enabled |
| enable_12 | BOOLEAN | true | Whether channel 12 output is enabled |
| enable_13 | BOOLEAN | true | Whether channel 13 output is enabled |
| enable_14 | BOOLEAN | true | Whether channel 14 output is enabled |
| enable_15 | BOOLEAN | true | Whether channel 15 output is enabled |
| enable_16 | BOOLEAN | true | Whether channel 16 output is enabled |
| enable_17 | BOOLEAN | true | Whether channel 17 output is enabled |
| enable_18 | BOOLEAN | true | Whether channel 18 output is enabled |
| enable_19 | BOOLEAN | true | Whether channel 19 output is enabled |
| enable_20 | BOOLEAN | true | Whether channel 20 output is enabled |
| enable_21 | BOOLEAN | true | Whether channel 21 output is enabled |
| enable_22 | BOOLEAN | true | Whether channel 22 output is enabled |
| enable_23 | BOOLEAN | true | Whether channel 23 output is enabled |
| enable_24 | BOOLEAN | true | Whether channel 24 output is enabled |
| enable_25 | BOOLEAN | true | Whether channel 25 output is enabled |
| enable_26 | BOOLEAN | true | Whether channel 26 output is enabled |
| enable_27 | BOOLEAN | true | Whether channel 27 output is enabled |
| enable_28 | BOOLEAN | true | Whether channel 28 output is enabled |
| enable_29 | BOOLEAN | true | Whether channel 29 output is enabled |
| enable_30 | BOOLEAN | true | Whether channel 30 output is enabled |
| enable_31 | BOOLEAN | true | Whether channel 31 output is enabled |
| enable_32 | BOOLEAN | true | Whether channel 32 output is enabled |
| enable_33 | BOOLEAN | true | Whether channel 33 output is enabled |
| enable_34 | BOOLEAN | true | Whether channel 34 output is enabled |
| enable_35 | BOOLEAN | true | Whether channel 35 output is enabled |
| enable_36 | BOOLEAN | true | Whether channel 36 output is enabled |
| enable_37 | BOOLEAN | true | Whether channel 37 output is enabled |
| enable_38 | BOOLEAN | true | Whether channel 38 output is enabled |
| enable_39 | BOOLEAN | true | Whether channel 39 output is enabled |
| enable_40 | BOOLEAN | true | Whether channel 40 output is enabled |
| enable_41 | BOOLEAN | true | Whether channel 41 output is enabled |
| enable_42 | BOOLEAN | true | Whether channel 42 output is enabled |
| enable_43 | BOOLEAN | true | Whether channel 43 output is enabled |
| enable_44 | BOOLEAN | true | Whether channel 44 output is enabled |
| enable_45 | BOOLEAN | true | Whether channel 45 output is enabled |
| enable_46 | BOOLEAN | true | Whether channel 46 output is enabled |
| enable_47 | BOOLEAN | true | Whether channel 47 output is enabled |
| enable_48 | BOOLEAN | true | Whether channel 48 output is enabled |
| enable_49 | BOOLEAN | true | Whether channel 49 output is enabled |
| enable_50 | BOOLEAN | true | Whether channel 50 output is enabled |
| port_names | STRING | [] | Serialized slot names managed by the frontend |
| type_warning | BOOLEAN | true | Show a warning when a channel output is connected to an incompatible input type. |
| xpipe_inopt | xpipe | Optional XPipe bundle to merge from. Leave unconnected to start with empty channels. A direct channel input overrides the value from the bundle. | |
| input_1opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 1 (any data type). Disabled channels skip this input. | |
| input_2opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 2 (any data type). Disabled channels skip this input. | |
| input_3opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 3 (any data type). Disabled channels skip this input. | |
| input_4opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 4 (any data type). Disabled channels skip this input. | |
| input_5opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 5 (any data type). Disabled channels skip this input. | |
| input_6opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 6 (any data type). Disabled channels skip this input. | |
| input_7opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 7 (any data type). Disabled channels skip this input. | |
| input_8opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 8 (any data type). Disabled channels skip this input. | |
| input_9opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 9 (any data type). Disabled channels skip this input. | |
| input_10opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 10 (any data type). Disabled channels skip this input. | |
| input_11opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 11 (any data type). Disabled channels skip this input. | |
| input_12opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 12 (any data type). Disabled channels skip this input. | |
| input_13opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 13 (any data type). Disabled channels skip this input. | |
| input_14opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 14 (any data type). Disabled channels skip this input. | |
| input_15opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 15 (any data type). Disabled channels skip this input. | |
| input_16opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 16 (any data type). Disabled channels skip this input. | |
| input_17opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 17 (any data type). Disabled channels skip this input. | |
| input_18opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 18 (any data type). Disabled channels skip this input. | |
| input_19opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 19 (any data type). Disabled channels skip this input. | |
| input_20opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 20 (any data type). Disabled channels skip this input. | |
| input_21opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 21 (any data type). Disabled channels skip this input. | |
| input_22opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 22 (any data type). Disabled channels skip this input. | |
| input_23opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 23 (any data type). Disabled channels skip this input. | |
| input_24opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 24 (any data type). Disabled channels skip this input. | |
| input_25opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 25 (any data type). Disabled channels skip this input. | |
| input_26opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 26 (any data type). Disabled channels skip this input. | |
| input_27opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 27 (any data type). Disabled channels skip this input. | |
| input_28opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 28 (any data type). Disabled channels skip this input. | |
| input_29opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 29 (any data type). Disabled channels skip this input. | |
| input_30opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 30 (any data type). Disabled channels skip this input. | |
| input_31opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 31 (any data type). Disabled channels skip this input. | |
| input_32opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 32 (any data type). Disabled channels skip this input. | |
| input_33opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 33 (any data type). Disabled channels skip this input. | |
| input_34opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 34 (any data type). Disabled channels skip this input. | |
| input_35opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 35 (any data type). Disabled channels skip this input. | |
| input_36opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 36 (any data type). Disabled channels skip this input. | |
| input_37opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 37 (any data type). Disabled channels skip this input. | |
| input_38opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 38 (any data type). Disabled channels skip this input. | |
| input_39opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 39 (any data type). Disabled channels skip this input. | |
| input_40opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 40 (any data type). Disabled channels skip this input. | |
| input_41opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 41 (any data type). Disabled channels skip this input. | |
| input_42opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 42 (any data type). Disabled channels skip this input. | |
| input_43opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 43 (any data type). Disabled channels skip this input. | |
| input_44opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 44 (any data type). Disabled channels skip this input. | |
| input_45opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 45 (any data type). Disabled channels skip this input. | |
| input_46opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 46 (any data type). Disabled channels skip this input. | |
| input_47opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 47 (any data type). Disabled channels skip this input. | |
| input_48opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 48 (any data type). Disabled channels skip this input. | |
| input_49opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 49 (any data type). Disabled channels skip this input. | |
| input_50opt | COMFY_MATCHTYPE_V3 | Optional direct input for channel 50 (any data type). Disabled channels skip this input. |
Outputs (51)
| Name | Type | Description |
|---|---|---|
| xpipe_out | xpipe | The XPipe bundle with all enabled channel values, ready for the next XPipe node. Empty when nothing is connected. |
| output_1 | COMFY_MATCHTYPE_V3 | Channel 1 output (None when disabled or empty) |
| output_2 | COMFY_MATCHTYPE_V3 | Channel 2 output (None when disabled or empty) |
| output_3 | COMFY_MATCHTYPE_V3 | Channel 3 output (None when disabled or empty) |
| output_4 | COMFY_MATCHTYPE_V3 | Channel 4 output (None when disabled or empty) |
| output_5 | COMFY_MATCHTYPE_V3 | Channel 5 output (None when disabled or empty) |
| output_6 | COMFY_MATCHTYPE_V3 | Channel 6 output (None when disabled or empty) |
| output_7 | COMFY_MATCHTYPE_V3 | Channel 7 output (None when disabled or empty) |
| output_8 | COMFY_MATCHTYPE_V3 | Channel 8 output (None when disabled or empty) |
| output_9 | COMFY_MATCHTYPE_V3 | Channel 9 output (None when disabled or empty) |
| output_10 | COMFY_MATCHTYPE_V3 | Channel 10 output (None when disabled or empty) |
| output_11 | COMFY_MATCHTYPE_V3 | Channel 11 output (None when disabled or empty) |
| output_12 | COMFY_MATCHTYPE_V3 | Channel 12 output (None when disabled or empty) |
| output_13 | COMFY_MATCHTYPE_V3 | Channel 13 output (None when disabled or empty) |
| output_14 | COMFY_MATCHTYPE_V3 | Channel 14 output (None when disabled or empty) |
| output_15 | COMFY_MATCHTYPE_V3 | Channel 15 output (None when disabled or empty) |
| output_16 | COMFY_MATCHTYPE_V3 | Channel 16 output (None when disabled or empty) |
| output_17 | COMFY_MATCHTYPE_V3 | Channel 17 output (None when disabled or empty) |
| output_18 | COMFY_MATCHTYPE_V3 | Channel 18 output (None when disabled or empty) |
| output_19 | COMFY_MATCHTYPE_V3 | Channel 19 output (None when disabled or empty) |
| output_20 | COMFY_MATCHTYPE_V3 | Channel 20 output (None when disabled or empty) |
| output_21 | COMFY_MATCHTYPE_V3 | Channel 21 output (None when disabled or empty) |
| output_22 | COMFY_MATCHTYPE_V3 | Channel 22 output (None when disabled or empty) |
| output_23 | COMFY_MATCHTYPE_V3 | Channel 23 output (None when disabled or empty) |
| output_24 | COMFY_MATCHTYPE_V3 | Channel 24 output (None when disabled or empty) |
| output_25 | COMFY_MATCHTYPE_V3 | Channel 25 output (None when disabled or empty) |
| output_26 | COMFY_MATCHTYPE_V3 | Channel 26 output (None when disabled or empty) |
| output_27 | COMFY_MATCHTYPE_V3 | Channel 27 output (None when disabled or empty) |
| output_28 | COMFY_MATCHTYPE_V3 | Channel 28 output (None when disabled or empty) |
| output_29 | COMFY_MATCHTYPE_V3 | Channel 29 output (None when disabled or empty) |
| output_30 | COMFY_MATCHTYPE_V3 | Channel 30 output (None when disabled or empty) |
| output_31 | COMFY_MATCHTYPE_V3 | Channel 31 output (None when disabled or empty) |
| output_32 | COMFY_MATCHTYPE_V3 | Channel 32 output (None when disabled or empty) |
| output_33 | COMFY_MATCHTYPE_V3 | Channel 33 output (None when disabled or empty) |
| output_34 | COMFY_MATCHTYPE_V3 | Channel 34 output (None when disabled or empty) |
| output_35 | COMFY_MATCHTYPE_V3 | Channel 35 output (None when disabled or empty) |
| output_36 | COMFY_MATCHTYPE_V3 | Channel 36 output (None when disabled or empty) |
| output_37 | COMFY_MATCHTYPE_V3 | Channel 37 output (None when disabled or empty) |
| output_38 | COMFY_MATCHTYPE_V3 | Channel 38 output (None when disabled or empty) |
| output_39 | COMFY_MATCHTYPE_V3 | Channel 39 output (None when disabled or empty) |
| output_40 | COMFY_MATCHTYPE_V3 | Channel 40 output (None when disabled or empty) |
| output_41 | COMFY_MATCHTYPE_V3 | Channel 41 output (None when disabled or empty) |
| output_42 | COMFY_MATCHTYPE_V3 | Channel 42 output (None when disabled or empty) |
| output_43 | COMFY_MATCHTYPE_V3 | Channel 43 output (None when disabled or empty) |
| output_44 | COMFY_MATCHTYPE_V3 | Channel 44 output (None when disabled or empty) |
| output_45 | COMFY_MATCHTYPE_V3 | Channel 45 output (None when disabled or empty) |
| output_46 | COMFY_MATCHTYPE_V3 | Channel 46 output (None when disabled or empty) |
| output_47 | COMFY_MATCHTYPE_V3 | Channel 47 output (None when disabled or empty) |
| output_48 | COMFY_MATCHTYPE_V3 | Channel 48 output (None when disabled or empty) |
| output_49 | COMFY_MATCHTYPE_V3 | Channel 49 output (None when disabled or empty) |
| output_50 | COMFY_MATCHTYPE_V3 | Channel 50 output (None when disabled or empty) |