Basic Pipe Switch
Flip between two pipe sources without rewiring
- input1
- input2
- BASIC_PIPE
Pipes bundle a whole bunch of values into one cable, which is great for tidiness and a pain when you need to swap the entire bundle. Basic Pipe Switch exists for that moment: it takes two BASIC_PIPE inputs, and a one-or-two widget picks which one flows through. Switch your whole pipeline from "checkpoint A setup" to "checkpoint B setup" with a single widget instead of rewiring the model, clip, and vae cables by hand.
How it works
Same family DNA as every RvTools switch - an integer widget named Input (default 1, range 1–2) routes input1 or input2 through to the single BASIC_PIPE output. Set 1, get input1; set 2, get input2. The node doesn't inspect or merge the pipes; it just passes the whole bundle along. The author's README framing applies here too: bypass the node and ComfyUI passes input1 straight through, which is how people "disable" a branch in group-heavy workflows without muting it.
The interesting bit is the BASIC_PIPE type itself. It's the shared "small pipe" format that the efficiency/basic-pipe ecosystem uses to carry a lean set of generation values - typically model, clip, vae, and conditioning in a fixed order. Because it's a common cross-pack type, this switch lets you route between two sources of that pipe regardless of which pack produced them. If you're deep in a pack that speaks BASIC_PIPE, this is your branch selector.
The inputs that matter
- Input - the 1-or-2 router. Wire it to a control value if you want the branch choice automated per run; otherwise it's a click.
- input1 / input2 - the two BASIC_PIPE candidates. Both
forceInput, so they're cable-only.
The BASIC_PIPE output feeds whatever consumes the pipe - an unpack node, a pipeline node, or another switch further down. One switch gives you a single widget that decides which full pipeline config the rest of the graph runs on.
Where it shines (and where it doesn't)
This earns its keep in workflows with two preconfigured pipelines - e.g., a standard SDXL setup and a Flux setup living side by side, each feeding a BASIC_PIPE, with the switch choosing which one the shared downstream uses. If your workflow only ever has one pipeline, you don't need it. And remember: pipes route bundles, not laziness - the losing side still has to produce its pipe before the switch can decide, so it doesn't skip the unused branch's work.
Installing it
Part of the RvTools v2 pack - no model files. ComfyUI Manager → search RvTools → install ComfyUI-RvTools_v2, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI-RvTools_v2
Restart and confirm RvTools v2: Version 2.5.x in the console. Extra deps (opencv-python, pilgram, pynvml, piexif) install automatically via Manager.
Troubleshooting
- Empty branch → empty result. If you switch to a pipe input that isn't connected, downstream gets
Noneand errors. Both inputs need to be wired for the switch to be useful. - "Basic Pipe Switch" vs other pipe switches: this one is specifically the BASIC_PIPE variant. If you're working with the pack's own
pipetype, you want a pipe switch for that type instead - sockets won't click if the pipe flavors don't match. - Old v1 RvTools references fail in Manager because the original repo was deleted; v2 renamed every node. The author's successor project is ComfyUI_Eclipse.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| Input | INT | 11–2 | — |
| input1opt | BASIC_PIPE | — | |
| input2opt | BASIC_PIPE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BASIC_PIPE | BASIC_PIPE | — |