Nodes/octopozt-nodes-fix/πŸ™ Octopozt Batch Images
ComfyUI Node

πŸ™ Octopozt Batch Images

Six reference images, one batch, zero squishing

By jdfranco08Β·Created 6 months agoΒ·Updated 6 months agoΒ· 0
πŸ™ Octopozt Batch Images
  • image_1
  • image_2
  • image_3
  • image_4
  • image_5
  • image_6
  • IMAGE
β—„pad_colorblackβ–Ί

πŸ™ Octopozt Batch Images is the boring node in an otherwise flashy pack - and boring is what makes it worth knowing. It takes up to six images and stacks them into a single batched IMAGE tensor without cropping or stretching any of them. Different aspect ratios? No problem: it pads the smaller ones up to the largest size, you pick the pad color, and out comes one tensor ready for whatever wants a batch.

Why you'd reach for it

Lots of nodes and models expect a batch of images at a uniform size, and the naive fix - resize everything to match - squishes portrait and landscape together until faces look like bowling balls. This node's trick is padding instead of resizing, so every image keeps its original aspect ratio and pixels. It's the natural companion to the Ad System in this same pack: it's exactly the node you'd use to hand all of your reference images to a pipeline at once, whether that's batch sampling, an IPAdapter-style reference step, or just a workflow that wants multiple inputs in one tensor.

How it works

Under the hood it's refreshingly simple: find the tallest and widest image in the set, build a canvas of that size filled with your chosen pad color, drop each image into the top-left corner of a canvas, and concatenate them all along the batch dimension. Two details from the source that actually matter:

  • The padding goes to the right and bottom. Images are aligned top-left, so a portrait in a set dominated by landscape images ends up with a big empty block on its right side. It's not centered, and you should know that before you render.
  • RGBA gets composited, not dropped. If you feed in an image with an alpha channel, it's blended onto the pad color instead of being sliced off - no surprise transparency holes in the output. Everything leaves as clean 3-channel RGB.

Inputs and outputs

image_1 is required, and image_2 through image_6 are optional - so the honest minimum is one image in, one image out, and the node only becomes useful at two or more. The one setting that matters: pad_color, an enum of black (default), white, or gray. Black is the safe default for generative pipelines where padding can bleed into the result; white or gray reads better if the batch is headed to a human-looking composite.

Output is a single IMAGE - a batched tensor with every input in it. Wire it into anything that takes a batch.

Installing it

Same pack as the Ad System, so same install:

cd ComfyUI/custom_nodes
git clone https://github.com/jdfranco08/octopozt-nodes-fix

then restart ComfyUI (ComfyUI Manager: search "octopozt-nodes-fix"). Here's the one honest annoyance: this node needs no API and no model, but the pack's requirements.txt pulls in google-generativeai for the Ad System sibling. So you install the Gemini SDK whether you want it or not. It's a few megabytes of disk and zero runtime cost if you never call the other node - just don't be surprised when pip installs a Google SDK for your humble image-joiner.

Gotchas and troubleshooting

The main trap is the padding being real pixels: if you feed this batch straight into a sampler, the pad bars will be rendered, not ignored. Pick black and you're usually fine (it sits closest to an empty region); white or gray pads can show up as visible blocks in the final render. If your images differ wildly in size, you'll get a lot of dead space - this node is built for similar-ish references, not for mixing a 512px crop with a 4096px poster.

Beyond that there's not much to troubleshoot - it's a small, self-contained utility with no network calls and no credentials. It happens to live in the same pack as an API node, so the usual "glance at the source of an obscure pack once" habit applies, but this class has almost nothing that can go wrong. If something's off with the result, your first check is pad_color, your second is the aspect ratios you fed in. That's the whole list.

CategoryOctopozt

Inputs (7)

NameTypeDefaultDescription
image_1IMAGEβ€”
image_2optIMAGEβ€”
image_3optIMAGEβ€”
image_4optIMAGEβ€”
image_5optIMAGEβ€”
image_6optIMAGEβ€”
pad_coloroptCOMBOblack3 options: black, white, gray

Outputs (1)

NameTypeDescription
IMAGEIMAGEβ€”