Dynamic Image Batch(TJ)
Squash several image branches into one batch — without a grid node
- image_1
- IMAGE
Dynamic Image Batch (TJ) is the glue node you drop in when two or three generation branches each produce a single image and you want them treated as one batch downstream - say, feeding a compare sheet, a batch upscaler, or a batch-to-video pipeline. It does one job: take the IMAGE inputs you connect, stack them into a single IMAGE tensor, and pass that out. No API, no key, no weights to download.
How it works
The node accepts a growing list of image_N inputs (you get image_1 by default and the frontend lets you add more). When it runs, it grabs every connected, non-empty image, checks that they're all 4D tensors, and concatenates them along the batch axis. There's a real gotcha hiding in that "checks" step: if your inputs have different resolutions, it silently resizes the odd ones to match the first image you connected - via bilinear interpolation, no warning. So order your inputs deliberately if you care about exact pixels, or normalize resolution before this node.
Two things you should know before you wire it up:
setnode_nameis the wireless half of the node. Give it a name and it registers its IMAGE output as a provider in TJ's Set/Get system, so other TJ nodes can receive the batch without a visible wire. Leave it blank and the node is purely wired.- If nothing is connected, the node returns a 1×64×64 black placeholder tensor instead of erroring. That's friendlier than a crash, but it's also the kind of silent black-frame that confuses people for an hour. If you see a black image in a workflow that "shouldn't have one," check for a Dynamic Image Batch with nothing plugged into it.
The inputs that matter
image_1(+ siblings you add) - the images to batch. Only connected slots count.setnode_name- wireless provider name; optional but the reason this node exists in a TJ architecture.
The single output is IMAGE - the concatenated batch, ready to feed any consumer that takes a batch.
Installing it
ComfyUI Manager → Install Custom Nodes → search TJ_NODE (pack title ComfyUI-TJ_NODE), or clone it manually:
cd ComfyUI/custom_nodes
git clone https://github.com/designloves2/ComfyUI-TJ_NODE
Restart ComfyUI after either path. This node needs nothing extra - no models, no Python dependencies beyond what the pack installs. It lives under ✨ TJ_Node/Image in the node menu.
Where it sits in the pack
This is one of TJ's batch-workflow tools, and it only really pays off in the architecture the pack is built around: sections connected by wireless routing rather than walls of spaghetti. If you're on a small linear workflow, a plain Image Batch from core ComfyUI does the same thing with fewer moving parts. Where Dynamic Image Batch earns its keep is pulling results from several wireless Set providers into one place so a single downstream stage can process them together. It's a batch assembler, not a magic converter - connect images in the order you want them, and remember the resolution-matching quirk.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| setnode_name | STRING | — | |
| image_1opt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |