Nodes/comfyui-bus-plugin/Checkpoint Bus
ComfyUI Node

Checkpoint Bus

The Checkpoint Bus cleans up your graph

By rhdunn·Created 2 years ago·Updated 2 years ago· 2
Checkpoint Bus
  • 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) out
  • clip (CLIP) in, clip (CLIP) out
  • vae (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.

CategoryComfyBus

Inputs (3)

NameTypeDefaultDescription
modelMODEL
clipCLIP
vaeVAE

Outputs (3)

NameTypeDescription
modelMODEL
clipCLIP
vaeVAE