Checkpoint Bus
The Checkpoint Bus cleans up your graph
- model
- clip
- vae
- model
- clip
- vae
Every ComfyUI workflow starts the same way: a CheckpointLoaderSimple spits out three things - the model, the CLIP text encoder, and the VAE - and all three need to travel. The model goes to the KSampler, the clip to your CLIPTextEncode nodes, the vae to the decode at the end. If you're lazy, that's three long parallel wires dragging across the whole canvas, and they're the exact three wires you'll untangle when you come back to the workflow in a month.
The Checkpoint Bus is a cable-organizer for exactly that trio. You wire the loader's model, clip, and vae into one end, and all three come out the other end at a single spot - so you can place the bus next to where the action happens and keep the long connections on one side, short local fan-outs on the other. It doesn't merge anything and it doesn't transform anything; it's a labeled junction that makes the graph readable.
That's the whole trick of the comfyui-bus-plugin pack this node ships in. Because ComfyUI doesn't support generic "any" connections, the author had to make one bus node per data combination - this one is the model+clip+vae trio. It's a smaller, more focused cousin of the popular Context nodes from rgthree, but where those use their own custom wire type, these bus nodes are plain typed pass-throughs that stay fully compatible with stock nodes.
How it works
The node is literally three inputs into three outputs, passed straight through:
model(MODEL) in,model(MODEL) outclip(CLIP) in,clip(CLIP) outvae(VAE) in,vae(VAE) out
Nothing is recalculated, and no value changes along the way. You get three independently usable output ports on the far side, so you can tap the model output for a LoRA loader, the clip for prompt encoding, and the vae for decoding without the source wires snaking everywhere. Think of it as a "service point" for your checkpoint: everything that came from the loader passes through one easy-to-find place.
Wiring it up
After your CheckpointLoaderSimple, connect its model/clip/vae outputs to the matching inputs here, then place the bus near the KSampler. From the bus, run model to the sampler's model input and clip to your text encoders, and carry vae forward to VAEDecode. That's the standard setup - it costs you nothing but a little organization.
Installing it
It ships in the comfyui-bus-plugin pack, same install as all the bus nodes. Easiest is ComfyUI Manager - search "comfyui-bus-plugin", Install, restart. Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/rhdunn/comfyui-bus-plugin
Then restart ComfyUI. The pack is pure Python with no dependencies - no requirements.txt, no models to download, nothing to break. GPL-3 licensed, which is fine for personal use.
Common issues
There's not much to break with a pass-through node. The usual gotcha is expecting it to merge wires onto one cable - it doesn't; each input still needs its own connection, and each output still needs its own target. If you leave an input unconnected the node errors on queue, just like any required input. And if you're reaching for this on a Flux or SDXL workflow, remember the loader there also outputs a model, clip, and vae - this bus works with any checkpoint loader that produces that trio, not just SD1.5.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| vae | VAE | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |
| vae | VAE | — |