ToBasicPipe
Bundle model, clip, vae, and conditioning into one wire
- model
- clip
- vae
- positive
- negative
- basic_pipe
ToBasicPipe takes the five things almost every generation needs - model, clip, vae, positive conditioning, negative conditioning - and ties them into a single bundle called a BASIC_PIPE. Instead of dragging five separate noodles across your canvas to every node that needs them, you drag one. That's the whole idea, and once your graph gets big it's the difference between a readable workflow and a bowl of spaghetti.
If you use Impact Pack's detailers, samplers, or upscalers at all, you'll meet BASIC_PIPE fast, because those nodes are built around it. KSampler (pipe), SEGSDetailer, Upscaler (SEGS/pipe) - they all want a basic_pipe input rather than five loose connections. ToBasicPipe is how you make one. Its mirror image, FromBasicPipe, unpacks it again when you need the individual pieces back. Think of BASIC_PIPE as a lunchbox: this node packs it, the "From" node opens it.
What goes in
Five required inputs, and there's nothing to configure - no widgets, no numbers, just sockets:
- model - your checkpoint's MODEL output
- clip - the CLIP for prompt encoding
- vae - the VAE for latent-to-pixel and back
- positive - your encoded positive CONDITIONING
- negative - your encoded negative CONDITIONING
The single output, basic_pipe, carries all five. You feed it into any pipe-aware node, and you can chain it through as many of them as you like. It's a bundle, not a copy - the five things inside are exactly what you put in.
Why bundle at all
Two real payoffs. First, tidiness: one wire is easier to route, easier to reroute, and far easier to read six months later than five parallel connections weaving through the graph. Second, consistency: when every detailer and sampler in a multi-stage pipeline draws from the same BASIC_PIPE, they're all guaranteed to use the same model, clip, vae, and prompts. No accidentally wiring the wrong VAE into the third detailer because you lost track of which noodle was which. Bundle once, feed everything, and the whole pipeline stays coherent.
This matters most in the workflows Impact Pack is built for - detect-crop-refine chains where a face pass feeds a hand pass feeds an upscale, each one needing the same generation context. Passing a single pipe through the chain is cleaner than re-wiring the context at every stage. And if you do need to swap one element partway through - a different model for the refine pass, say - that's what EditBasicPipe is for: it edits one slot of the bundle without you having to unpack and repack the whole thing.
Gotchas
Not many, honestly - this is one of the boring, reliable nodes. The one thing to keep straight is that BASIC_PIPE is an Impact-Pack convention, not a native ComfyUI type, so it only fits Impact-aware nodes (and a few other packs that adopted the same structure). You can't feed a BASIC_PIPE straight into a stock ComfyUI KSampler; unpack it with FromBasicPipe first, or use Impact's own KSampler (pipe).
If another pack hands you something that looks like a basic pipe but is typed differently, Impact Pack has an Any PIPE -> BasicPipe node to convert it - but its docs warn that forcing an incompatible structure through it can throw runtime errors, so only use that when you know the internal shape actually matches. For your own graphs, just build the pipe with this node and you'll never hit that.
Installing it
ToBasicPipe is part of ComfyUI Impact Pack, so installing the pack gets you the node. Simplest path: ComfyUI-Manager → search ComfyUI Impact Pack → Install → restart. Manual: cd ComfyUI/custom_nodes && git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack, then install the pack's requirements.txt into the same Python environment ComfyUI runs in (portable build: ..\..\..\python_embeded\python.exe -m pip install -r requirements.txt), and restart. Since v7.6 there's no automatic dependency install, so a hand clone needs that requirements step or the pack won't load. Impact Pack is by ltdrdata, who also maintains ComfyUI-Manager, so it's about as solid as custom nodes get - and this pipe node adds no models or heavy libraries of its own.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| vae | VAE | — | |
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| basic_pipe | BASIC_PIPE | — |