Full Pipe Out
The exit ramp that turns a full pipe back into ordinary wires
- full_pipe
- full_pipe
- model
- clip
- vae
- positive
- negative
- seed
- image
- latent
- meta
So you've built your whole workflow around this pack's FULL_PIPE convention - loaders feed a pipe, prompt and detailer nodes update it, everything stays on one thick wire. Then you hit the end and realize the rest of your graph is normal ComfyUI nodes that want a plain model, a CLIP, an IMAGE. That's the moment you need Full Pipe Out.
It's the inverse of Full Pipe Pack: one full_pipe in, and out come all nine individual slots - full_pipe itself (passed through), model, clip, vae, positive, negative, seed, image, latent, meta. Whatever a slot contains is unwrapped; whatever is empty comes out as None.
Why it exists
The pipe convention saves you wires, but it's opinionated. Non-pipe nodes - a third-party sampler, a save node that wants an image, a CLIP loader you want to inspect - can't read the bundle. Full Pipe Out is the escape hatch: keep the clean pipe graph for the mudknight nodes, then unpack at the boundary and hand real typed values to the rest of the ecosystem. It's also the honest way to see what's in a pipe: wire the outputs to previews or primitives and you can inspect exactly what a loader put in there (the #1 debugging move when a pipe node errors with "must contain 'image'").
What comes out
model,clip,vae- the components, for any node that wants them.positive,negative- the conditioning, ready for a sampler or another detailer.seed- the integer, for seed widgets or aKSampleryou're hand-wiring.image,latent- whatever image/latent is riding in the pipe (oftenNoneuntil something sets it).meta- the metadata dict; the pack's loaders stash the checkpoint name here.
Installing it
Part of mudknight-utils - ComfyUI Manager (search comfyui-mudknight-utils) or:
cd ComfyUI/custom_nodes
git clone https://github.com/mudknight/comfyui-mudknight-utils
then restart. No special dependencies beyond the pack's requirements.
Where people get burned
The realistic failure is expecting an unwrapped output to be non-empty when nothing set it. A pipe fresh out of LoaderFullPipe has no image, so the image output of Full Pipe Out will be None - and if you wire that straight into an image node, it errors. Unpack early enough to catch it, or set the image upstream with FullPipeIn. And don't bother unpacking just to repack: pack once, pass the pipe around, unpack only at the edges of your graph. That's the whole point of the convention, and it only works if you trust it.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| full_pipe | FULL_PIPE | — |
Outputs (10)
| Name | Type | Description |
|---|---|---|
| full_pipe | FULL_PIPE | — |
| model | MODEL | — |
| clip | CLIP | — |
| vae | VAE | — |
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| seed | INT | — |
| image | IMAGE | — |
| latent | LATENT | — |
| meta | META | — |