π BV ImagePipe Junction
Peek inside the pipe, then write new captions back in
- image_pipe
- images
- IMAGE_PIPE
- IMAGES
- CAPTIONS
Pipes are great until you need to see what's inside one. That's the job of the BV ImagePipe Junction: it's the tap point on the BV_IMAGE_PIPE, letting you pull the images and captions out as normal wires, and - the more interesting half - feed new captions or images back in and get an updated pipe out.
The classic workflow is captioning. You load a folder with the Loader, but the pipe only carries whatever caption (if any) came with each file. Run your captioner - JoyCaption, a Florence-2 node, whatever you're using to label training data - then splice those results back into the pipe through the Junction so the caption saver and every node downstream sees them. Captioning is the single highest-leverage step in dataset prep, and this node is how that step plugs into the pipe without you rebuilding the pipe by hand.
What it does, concretely
- image_pipe (required) - the pipe you want to read and/or modify.
- images (optional) - a replacement image list. Feed upscaled versions here and they replace what's in the pipe while the counts stay put.
- captions (optional) - replacement captions. This is the one you'll use most; drop your captioner's output here.
Three outputs:
- IMAGE_PIPE (list) - the updated pipe, ready for the next node.
- IMAGES (list) - the images currently in the pipe.
- CAPTIONS (list) - the captions currently in the pipe.
Leave the optional inputs disconnected and the Junction behaves as a pure read: peek at IMAGES and CAPTIONS, do nothing to the pipe. Connect them and it becomes a write.
Why it's not redundant
You might think you could just wire around it. But the BV nodes are deliberately pipe-only downstream - the merger and the saver take a BV_IMAGE_PIPE, not loose wires. The Junction is the one place you can inject data mid-pipe, which makes it the natural seam between "process each image with normal nodes" and "keep the batch organized as a pipe."
Install
Same as every node in this pack:
cd ComfyUI/custom_nodes
git clone https://github.com/BlackVortexAI/ComfyUI-BVortexNodes.git
or search "BV Nodes" in ComfyUI Manager. Restart, no dependencies, no models.
Gotcha
The optional inputs replace wholesale - if you connect captions but a captioner skips a few images, the pipe now has a shorter caption list than it has images. Match the lengths, or at least don't be surprised when a mismatch surfaces later at the saver. That's the one failure mode worth planning around.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image_pipe | BV_IMAGE_PIPE | β | |
| imagesopt | IMAGE | β | |
| captionsopt | STRING | β |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| IMAGE_PIPE | BV_IMAGE_PIPE | β |
| IMAGES | IMAGE | β |
| CAPTIONS | STRING | β |