Nodes/Vantage-NodesV2/Vantage Multiple Image Loader V2
ComfyUI Node

Vantage Multiple Image Loader V2

A thumbnail gallery that emits a batch

By vantagewithai·Created 15 days ago·Updated 11 days ago· 3
Vantage Multiple Image Loader V2
  • background
  • IMAGE
  • MASK
  • image_0
  • image_1
  • image_2
  • image_3
  • image_4
  • image_5
  • image_6
  • image_7
  • image_8
  • image_9
◄image_paths►
◄width1024►
◄height1024►
◄fit_edge▾►
◄img_compression18►
◄use_backgroundtrue►
◄max_images10►
◄image▾►

Core ComfyUI has a single-image loader. The moment you want ten images at a consistent size - a contact sheet, a batch img2img pass, four cutouts to composite - you're either chaining loaders by hand or installing something. This is the something: a gallery you build by clicking thumbnails, wired to one batch output and ten individual ones.

Building the collection

Search the picker for a file in ComfyUI's input folder (subfolders included), click Add, repeat. Or drag images straight onto the node - they upload through ComfyUI's normal local endpoint and land in the gallery. Drag thumbnails to reorder; duplicates can't be added twice; Remove All clears it. Tiles shrink to fit and the gallery scrolls past 112×112.

Underneath, the gallery is stored in the image_paths string field, so it travels with the workflow. The single image widget is just the filename picker you're currently choosing from - the actual list is the gallery.

The settings that actually change your result

width and height default to 1024×1024 and are the target box every image gets fitted into. They take INT inputs, which is the point of wiring the pack's bounding-box editor's width/height outputs in - pick your composition size once and the loader follows.

fit_edge decides how the fit works, and the tooltip is better than most docs: longer fits inside width × height, shorter covers it and may exceed one dimension. Neither mode enlarges anything, so small images stay small rather than blurring up. If a picture exceeds only one dimension in shorter mode it may be left as-is rather than stretched to fill the other.

img_compression is the one people miss. Default 18, range 0–100, described as JPEG compression for gallery images - 0 disables it, higher means worse. It applies only to gallery images, not to whatever you feed the background input, and it's applied as the image comes off disk, so it's a real quality decision buried in a slider.

max_images (default 10) caps both the total and the number of individual output sockets. use_background gates the optional background IMAGE input: connect a source and one gallery slot is reserved straight away, then at execution time each frame of a background batch consumes a slot. Lowering the limit or connecting a background trims items off the end of the gallery.

Outputs

IMAGE is the full batch in background-then-gallery order. MASK is a batch of zero masks matching those dimensions - handy for inpainting or upscale nodes that insist on a mask input. Then image_0 through image_9, one resized image per slot with each keeping its own dimensions.

Two behaviours worth knowing before they confuse you. Different-sized images get center-padded with transparent borders to form a uniform batch, while the individual outputs keep their own resized size, unpadded. And unused individual outputs return None - expected, not an error, but whatever they feed has to tolerate it or be bypassed.

There's no background-removal model here and no matting controls; it loads, resizes and orders. Cutouts are somebody else's node upstream, which is fine - that's what the alpha-friendly padding and mask output are for.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/vantagewithai/Vantage-NodesV2.git

Restart ComfyUI, hard-refresh, find it under Vantage/Image, or search "Multiple Image Loader". ComfyUI Manager should also carry Vantage-NodesV2; the clone is the documented route.

No pip step - no requirements file, no declared dependencies, every import already in ComfyUI. What it does need is a current install: image drops go through ComfyUI's local upload endpoint, the picker relies on modern frontend APIs, and an old build gives you a node with a dead picker rather than an error message.

Troubleshooting

A new file isn't in the picker. Press R / Refresh Node Definitions. Files added outside the node don't appear until you do. Dropped uploads update the picker immediately.

Uploaded the same filename twice. ComfyUI's normal behaviour: identical name and bytes reuses the existing file; identical name with different bytes gets a numbered filename. Nothing is silently overwritten.

None on an image socket. That slot is beyond your loaded count. Check max_images and the gallery length.

Batch has transparent bars. Center-padding to a common size, as documented. Match aspect ratios or accept the padding.

Background ate a slot. By design - it's included in the count, one per frame for a batch.

CategoryVantage/Image

Inputs (9)

NameTypeDefaultDescription
image_pathsSTRING—
widthINT10241–2147483647—
heightINT10241–2147483647—
fit_edgeCOMBOLonger fits inside width × height. Shorter covers width × height and may exceed one dimension. Neither mode enlarges images.
img_compressionINT180–100—
use_backgroundBOOLEANtrue—
max_imagesINT101–2147483647—
imageCOMBO2 options: (none), example.png
backgroundoptIMAGE—

Outputs (12)

NameTypeDescription
IMAGEIMAGE—
MASKMASK—
image_0IMAGE—
image_1IMAGE—
image_2IMAGE—
image_3IMAGE—
image_4IMAGE—
image_5IMAGE—
image_6IMAGE—
image_7IMAGE—
image_8IMAGE—
image_9IMAGE—