Nodes/comfyui-jbnodes/Camera Image Pipe Composer
ComfyUI Node

Camera Image Pipe Composer

Update a camera pipe without ripping it apart

By AlbertJBurton·Created 6 months ago·Updated 3 months ago· 1
Camera Image Pipe Composer
  • pipe
  • model
  • positive
  • negative
  • latent
  • vae
  • clip
  • pipe
filename
seed0

Pipe nodes are the organizational furniture of ComfyUI - they don't do image math, they keep your graph from looking like a plate of spaghetti. The comfyui-jbnodes pack defines a CAMERA_PIPE_LINE tuple that bundles the full sampling state (model, positive, negative, latent, VAE, CLIP, filename, seed) into one wire, and CameraImagePipeComposer is the node you use to change part of that bundle without decomposing and re-packing the whole thing by hand.

If that sounds niche, it is, and that's the point. The real workflow behind it: you set up a camera-pipe pipeline once, and at some branch you want to swap the seed or drop in a different model or latent. Instead of a Decomposer → reroute every wire → Loader mess, you feed the existing pipe into this node, change only the field you care about, and get a fresh pipe out.

How it works

It's a pure pass-through with surgical updates. The required pipe input is the CAMERA_PIPE_LINE you want to modify. Every optional input - model, positive, negative, latent, vae, clip, filename, seed - is a "set this field if you connected it" slot. Anything you leave unconnected passes through untouched from the incoming pipe. The node description puts it plainly: it updates specific elements of the tuple "without having to decompose and recompose the entire tuple manually."

So the mechanism is tuple surgery: take pipe in, replace the named slots that have wires, hand the new tuple out. No processing happens anywhere in here.

The inputs that matter

Honestly, just the ones you intend to change. The one beginners reach for is seed - it's an integer with the full 64-bit range, and it's the cheapest thing to vary in a batch. latent is the other frequent one: swap in a differently-sized or differently-denoised latent and re-run the tail of the pipeline. model, positive, negative, vae, clip, and filename are there for when you need to swap a bigger chunk.

The output is a single pipe (CAMERA_PIPE_LINE). If you've got pipe-style utilities from other packs (rgthree's pipes work on a similar principle), you'll feel right at home.

Install

It's part of the pack, so:

cd ComfyUI/custom_nodes
git clone https://github.com/AlbertJBurton/comfyui-jbnodes.git
cd comfyui-jbnodes
pip install -r requirements.txt

Restart ComfyUI, or install via ComfyUI Manager (search "comfyui-jbnodes"). Deps are numpy, torch, colour-science, scipy, Pillow.

Gotchas

  • This node only works on pipes produced by the same pack's CameraImagePipeLoader - it expects the exact tuple layout. Don't feed it a pipe from a different pack and expect it to slot in.
  • It's a convenience node, not a magic one. If you only need to change the seed once and never look back, you can just decompose and wire directly - this node earns its keep when you're swapping fields repeatedly in a batch or experiment loop.
  • Still beta: tuple layout can shift between versions, and a changed pipe format is exactly the kind of breaking change the README warns about. Update carefully.
CategoryJBNodes/Utility/Pipe

Inputs (9)

NameTypeDefaultDescription
pipeCAMERA_PIPE_LINE
modeloptMODEL
positiveoptCONDITIONING
negativeoptCONDITIONING
latentoptLATENT
vaeoptVAE
clipoptCLIP
filenameoptSTRING
seedoptINT00–18446744073709550000

Outputs (1)

NameTypeDescription
pipeCAMERA_PIPE_LINE