Image List
Your reference images keep getting resized to match each other. This is the fix.
- images
Here's the ComfyUI footgun nobody warns you about: the default IMAGE type is a stacked batch tensor, and every image in one batch has to share the same height and width. Feed mixed-resolution references into most image nodes and somewhere upstream they get silently resized to match - one 4K photo becomes a 512px square because its neighbor was small. If you're building multi-reference workflows, that destroys the whole point of the exercise.
Image List is the small node that fixes it. It's an auto-expanding slot collector - the ➕ style where the node grows an image_1, image_2, image_3… input every time you wire one in - and instead of stacking everything into one batch tensor it hands you a native Python list of images, each keeping its own resolution. The mechanism is almost boring: the node marks its output OUTPUT_IS_LIST, collects only the connected image_N slots in slot order, and passes them along as a real list. That list-ness is the entire trick, and it's why mixed-resolution references survive until a downstream node actually resizes them on purpose.
The inputs that matter
There are no required inputs at all, which makes this the easiest node in the pack to wire up:
image_1,image_2, … - auto-expanding optionalIMAGEslots. Plug references in, and the node grows more slots.- Output:
images- a list ofIMAGE, each element at native resolution.
Where you'd actually use it
The obvious partners are this pack's own list-aware nodes - Reference Concat and Reference Grid both explicitly accept an Image List so they can do their own layout math per-image instead of inheriting whatever resizing a stacked batch already did. Use it anywhere else that declares itself list-friendly and you're golden.
The trap is the flip side of that sentence: a node whose input is a plain IMAGE (not declared as list-capable) can't consume a list. Wire an Image List output into one and you'll get a type error or worse, a silent failure. This is a "garbage in, garbage out" ecosystem problem more than a bug in this node - just check that whatever you're feeding actually advertises list support.
Installing it
Image List ships as part of MoonPack (comfyui-moonpack), so you install the whole pack to get it. Easiest: ComfyUI Manager, search MoonPack, install, restart. Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/moonwhaler/comfyui-moonpack.git
Then restart ComfyUI. No model downloads, and the pack's requirements.txt is deliberately empty - it only depends on what ComfyUI already ships (torch, numpy, Pillow). That's rarer than it should be in this ecosystem, and it means no dependency conflicts to untangle.
One gotcha
Because each element keeps its native resolution, the list can be wildly heterogeneous - a 1024×1024 headshot next to a 2048×512 panorama. That's the feature, but it means whatever consumes the list has to be ready for it. The MoonPack reference nodes are; if you're using it with something from another pack, test with two differently-shaped images before you trust it.
Inputs (0)
No inputs
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |