Nodes/Basic data handling/create Data List
ComfyUI Node

create Data List

Run a whole batch without duplicating a single node

By StableLlama·Created about a year ago·Updated 4 days ago· 48
create Data List
  • item_0
  • list

Want to run a whole batch - five prompts, three LoRA names, a dozen images - through the same downstream nodes without duplicating them? That's what a data list is for, and create Data List is the front door. In ComfyUI-speak, a "data list" is a special list where every item gets processed individually by whatever you connect downstream: wire this node's output into a KSampler and you get one image per item, automatically. That's different from a plain Python LIST (handled as a single variable) - this node makes the batch kind, and it's the one people actually reach for when they want parallel generation.

It's part of Basic data handling, StableLlama's zero-dependency utility pack - the same pack that keeps showing up in workflow-share dependency lists for exactly this reason: it's the cheap, dependency-free way to add batch behavior and control flow to a graph.

How it works

The node has one dynamic input - item_0 - and a "+" button. Add as many items as you need; every item you add becomes another input. When it runs, it collects all the values into a list and marks its output as a list (OUTPUT_IS_LIST), which is the flag that tells ComfyUI "run downstream once per element, not once for the whole list." The dynamic-input machinery is the pack's own frontend extension, inspired by the cozy_ex_dynamic project, so the +/− buttons are part of this pack, not core ComfyUI.

The inputs and the output

  • item_0 (ANY, dynamic) - the first entry. Click "+" to add item_1, item_2, and so on. You can type values directly or wire outputs into each slot, and items don't all have to be the same type (though keep them consistent - a downstream node will process whatever you give it).
  • list (output, is a list) - the batch. Downstream, ComfyUI fans it out: one execution per item.

The README's own guidance is worth internalizing: use a data list when you need each item processed individually, use the pack's LIST nodes when you want the collection treated as one unit, and SET when you only care about uniqueness. This node is firmly in the first camp.

Installing it

Install Basic data handling from ComfyUI Manager (search the pack title) or:

cd ComfyUI/custom_nodes
git clone https://github.com/StableLlama/ComfyUI-basic_data_handling

Restart ComfyUI. No Python dependencies, no models to fetch. This pack is about the lightest thing you'll ever install.

Troubleshooting

  • "Downstream runs once, not per item." If the node you connected expects a single LIST (the Python-list-as-one-variable kind), it will treat your whole batch as one value. The pack has both kinds of list for a reason - check whether the receiving node wants a data list or a LIST, and pick the matching create node.
  • An empty list runs nothing. With zero items the output is empty, and downstream nodes may silently do nothing. If your batch is built from optional inputs that all turned out empty, that's your answer.
  • Dynamic inputs not showing a "+" button? The dynamic-input frontend is part of the pack - if it's missing, the web extension didn't load. Restart ComfyUI and confirm the pack installed cleanly (it has no dependencies to conflict, so this is rare).
CategoryBasic/Data List

Inputs (1)

NameTypeDefaultDescription
item_0opt*

Outputs (1)

NameTypeDescription
list*