PromptList (Unlimited)
Wire up to 64 prompts into one batch list
- prompt_list
- prompt_strings
The batch-prompt problem is older than half the packs in ComfyUI: you have eight prompts, you want eight images, and you don't want to run the graph eight times by hand. The usual answer is a node with a few hardcoded prompt slots, which is fine until "a few" isn't enough. This node's whole gimmick is that the slots keep appearing as you use them - up to 64 of them - and every non-empty prompt comes out as one list, ready to drive a batch.
How it works
On the backend it's deliberately boring: 64 multiline STRING inputs named prompt_1 through prompt_64, all forced to be inputs rather than widgets. The frontend does the fun part. It starts by showing just prompt_1. Connect a wire to the last visible prompt port and the next one appears, keeping exactly one empty prompt below your last used one until you hit the 64-port ceiling. No scrolling through 64 blank boxes hoping to find the one you're on.
On execution it collects every connected input that has non-empty text, sorts them by their slot number, and returns the same list twice - once as prompt_list and once as prompt_strings. Both outputs are identical STRING lists; the duplication is just convenience so you can grab prompts from either side of a wiring layout without crossing wires. Since the outputs are true list outputs, ComfyUI fans them out: connect prompt_list to a CLIP Text Encode and each prompt becomes one execution in the batch, all the way down the graph.
What you actually set
There's exactly one required input, prompt_1. Everything else is optional and appears on demand. The thing to internalize is that these are all input ports, not text boxes - to get text into them you wire a STRING source in. That's fine for the node's real use (aggregating several prompt sources - captions from a Load ZIP, wildcard expansions, a handful of text primitives - into one list), but it means a beginner expecting to type prompts directly into the node will be confused. If that's what you wanted, a plain text primitive wired into prompt_1 gets you there.
Installing
It ships in the same pack as the ZIP nodes, so the install is identical:
cd ComfyUI/custom_nodes
git clone https://github.com/aixqueen/jayhuang-zip-unpack-images.git
Restart ComfyUI (or ComfyUI Manager → search jayhuang-zip-unpack-images). No models, no extra dependencies, and the auto-grow behavior comes from the pack's JS - it should just work after the frontend reloads.
Gotchas
The category is listed as "Crush/Prompt," which is not a thing you'll find anywhere else in ComfyUI - it's just where this author filed it, so search for the display name "PromptList (Unlimited)" or the class easy promptList (Unlimited) when you're looking. And a port only reveals when a wire lands on it, so if you type text into the visible prompt without connecting it, the next slot won't appear - connect first, then fill. Same pack caveat as everywhere: small single-commit repo, no community footprint, so treat it like any unknown custom node and eyeball the code once before building production on it.
Inputs (64)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt_1 | STRING | — | |
| prompt_2opt | STRING | — | |
| prompt_3opt | STRING | — | |
| prompt_4opt | STRING | — | |
| prompt_5opt | STRING | — | |
| prompt_6opt | STRING | — | |
| prompt_7opt | STRING | — | |
| prompt_8opt | STRING | — | |
| prompt_9opt | STRING | — | |
| prompt_10opt | STRING | — | |
| prompt_11opt | STRING | — | |
| prompt_12opt | STRING | — | |
| prompt_13opt | STRING | — | |
| prompt_14opt | STRING | — | |
| prompt_15opt | STRING | — | |
| prompt_16opt | STRING | — | |
| prompt_17opt | STRING | — | |
| prompt_18opt | STRING | — | |
| prompt_19opt | STRING | — | |
| prompt_20opt | STRING | — | |
| prompt_21opt | STRING | — | |
| prompt_22opt | STRING | — | |
| prompt_23opt | STRING | — | |
| prompt_24opt | STRING | — | |
| prompt_25opt | STRING | — | |
| prompt_26opt | STRING | — | |
| prompt_27opt | STRING | — | |
| prompt_28opt | STRING | — | |
| prompt_29opt | STRING | — | |
| prompt_30opt | STRING | — | |
| prompt_31opt | STRING | — | |
| prompt_32opt | STRING | — | |
| prompt_33opt | STRING | — | |
| prompt_34opt | STRING | — | |
| prompt_35opt | STRING | — | |
| prompt_36opt | STRING | — | |
| prompt_37opt | STRING | — | |
| prompt_38opt | STRING | — | |
| prompt_39opt | STRING | — | |
| prompt_40opt | STRING | — | |
| prompt_41opt | STRING | — | |
| prompt_42opt | STRING | — | |
| prompt_43opt | STRING | — | |
| prompt_44opt | STRING | — | |
| prompt_45opt | STRING | — | |
| prompt_46opt | STRING | — | |
| prompt_47opt | STRING | — | |
| prompt_48opt | STRING | — | |
| prompt_49opt | STRING | — | |
| prompt_50opt | STRING | — | |
| prompt_51opt | STRING | — | |
| prompt_52opt | STRING | — | |
| prompt_53opt | STRING | — | |
| prompt_54opt | STRING | — | |
| prompt_55opt | STRING | — | |
| prompt_56opt | STRING | — | |
| prompt_57opt | STRING | — | |
| prompt_58opt | STRING | — | |
| prompt_59opt | STRING | — | |
| prompt_60opt | STRING | — | |
| prompt_61opt | STRING | — | |
| prompt_62opt | STRING | — | |
| prompt_63opt | STRING | — | |
| prompt_64opt | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| prompt_list | STRING | — |
| prompt_strings | STRING | — |