Nodes/ComfyUI Impact Pack/Make List (Any)
ComfyUI Node Runs on cloud

Make List (Any)

Bundle several values into one ComfyUI list

By ltdrdata·Created 3 years ago·Updated 4 months ago· 3,242
Make List (Any)
  • value1
  • *

Make List (Any) takes several separate values and packs them into a single ComfyUI list. Any values - images, latents, numbers, strings, models, whatever - because the inputs are wildcard-typed. You wire in as many as you want, and out comes one list containing all of them, in order.

This is one of those nodes that's invisible until you understand how ComfyUI handles multiples, and then you need it constantly. ComfyUI has two ways of dealing with "several of a thing": a batch (one tensor with a batch dimension, processed together) and a list (genuinely separate items that nodes iterate over one at a time). A lot of nodes behave differently on a list - they run once per item, which is exactly what you want when you've got, say, three different prompts and want three generations, or four images you want processed individually. Make List (Any) is how you build such a list out of loose values you have sitting on the canvas.

How the inputs work

The schema shows one optional input, value1 (wildcard type *), and that's a bit of a tell: this is a growing-slot node. Connect something to the first slot and a second appears; fill that and a third shows up. So you assemble the list by wiring values into successive slots, and the node collects them. Everything's optional, which means you can build a list of one, or of ten, however many you plug in.

The single output is a wildcard list (*, flagged as a list). Its concrete type resolves from what you fed it - a list of images if you gave it images, a list of ints if you gave it ints. Downstream, any node that iterates over lists will now run once per item you added.

Why you'd reach for it

The honest use case is: you have a handful of individual values and you need them as a list so a downstream node processes them one by one instead of all at once. Classic examples - several prompts you want rendered separately, a set of seeds to sweep, a few images you want each run through the same node. Instead of duplicating the downstream chain N times, you build a list and let ComfyUI's list execution fan it out for you.

It pairs naturally with the sibling Select Nth Item (Any list) node, which pulls one item back out by index. Build a list, then index into it - that's a tiny amount of the "data structure" plumbing that Impact Pack's experimental logic corner is quietly good at.

The list-vs-batch trap

The single most useful thing to keep straight: a list is not a batch. They look similar (both are "several things") and behave completely differently. Batch nodes process everything in one shot on the GPU; list execution loops. If you feed a list where a node wanted a batch, or vice versa, you get either an error or surprising results - the pack ships explicit Image List to Image Batch / Image Batch to Image List converters precisely because people mix these up. If Make List's output misbehaves downstream, first ask whether that node actually wanted a list or a batch, and convert if needed.

Beyond that, this is a featherweight utility - no models, no GPU cost, nothing to break. It just gathers values.

Installing it

Make List (Any) is part of ComfyUI Impact Pack, so you install the pack to get it. Easiest: ComfyUI-Manager → search ComfyUI Impact Pack → Install → restart. Manual: cd ComfyUI/custom_nodes && git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack, then install the pack's requirements.txt in ComfyUI's Python environment (portable build: ..\..\..\python_embeded\python.exe -m pip install -r requirements.txt), and restart. Since v7.6 the pack no longer auto-installs dependencies, so a manual clone that skips the requirements step won't load. Impact Pack is ltdrdata's - the ComfyUI-Manager and Inspire Pack author - which makes it one of the most trusted packs in the ecosystem. This node adds no models and no heavy libraries of its own.

CategoryImpactPack/Util

Inputs (1)

NameTypeDefaultDescription
value1opt*

Outputs (1)

NameTypeDescription
**