- pipe
- model
- clip
- vae
- positive
- negative
- pipe
- model
- clip
- vae
- positive
- negative
BusPipe is a pass-through hub for a BASIC_PIPE. It takes a pipe in, lets you override any individual slot, and gives you back both the whole pipe and each component broken out - model, CLIP, VAE, positive, negative - on the same node. If you've used rgthree's Context node, you already know the pattern: it's a bus you tap into and splice, so a bundle of connections can run across your whole graph on one wire while you pick pieces off it wherever you need them.
Why you'd reach for it
A big workflow has the same model, VAE, and conditioning needed in a dozen places. Running five separate wires to each of those spots is how graphs become unreadable - the exact problem the whole "carry a bundle on one cable" idea exists to fix. BusPipe lets you run a single BASIC_PIPE along your workflow and, at each node that needs it, tap the specific outputs you want without unpacking and repacking.
The clever part is that input and output live on the same node. That means you can take a pipe, swap just its model (say, to insert a LoRA-loaded version for one section), and emit an updated pipe onward - while the untouched slots pass straight through. It's a reroute, a splitter, and an editor in one, which is why it earns a permanent spot in pipe-based builds.
How it works
Every input is optional. A connected pipe provides the baseline; any of the individual inputs you also connect override the matching slot in that pipe. The node then outputs the resulting pipe plus each component individually. Connect only the individual inputs (no pipe) and it acts as a constructor; connect only a pipe and it acts as a splitter; connect both and it's an editor.
The inputs and outputs
Inputs (all optional):
- pipe - the incoming
BASIC_PIPEto pass through. - model / clip / vae / positive / negative - override any of these; whatever you connect replaces that slot.
Outputs give you everything both ways:
- pipe - the (possibly edited)
BASIC_PIPEto continue the bus. - model / clip / vae / positive / negative - each component broken out for direct use.
Installing it
ComfyUI Manager → search antrobots ComfyUI Nodepack, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/antrobot1234/antrobots-comfyUI-nodepack
No downloads. It emits and consumes the standard BASIC_PIPE, so it interoperates with Impact Pack's pipe nodes if you use them.
Common issues
The behavior that surprises people is the override. If you connect both a pipe and, say, a model, the loose model wins for that slot - that's intentional, it's how you splice. But if you didn't mean to override, an accidental connection there silently changes what flows downstream. If your pipe is carrying an unexpected model or conditioning, check whether an individual input on a BusPipe is quietly overriding it.
Second, empty slots pass through as empty. If nothing upstream ever set the VAE and you tap the vae output, you get nothing - trace back to where the pipe should have been populated (a checkpoint loader, or an Op. To Basic Pipe).
And as with any custom node that has a stack of typed widgets, if it renders strangely under ComfyUI's Nodes 2.0 frontend, try the legacy canvas - the Vue rewrite has been hard on this whole category of node.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| pipeopt | BASIC_PIPE | — | |
| modelopt | MODEL | — | |
| clipopt | CLIP | — | |
| vaeopt | VAE | — | |
| positiveopt | CONDITIONING | — | |
| negativeopt | CONDITIONING | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| pipe | BASIC_PIPE | edited pipe |
| model | MODEL | model |
| clip | CLIP | clip |
| vae | VAE | vae |
| positive | CONDITIONING | positive |
| negative | CONDITIONING | negative |