Nodes/jayhuang-zip-unpack-images/PromptList (Unlimited)
ComfyUI Node

PromptList (Unlimited)

Wire up to 64 prompts into one batch list

By jayhuangaigc·Created 7 months ago·Updated 7 months ago· 3
PromptList (Unlimited)
    • prompt_list
    • prompt_strings
    prompt_1
    prompt_2
    prompt_3
    prompt_4
    prompt_5
    prompt_6
    prompt_7
    prompt_8
    prompt_9
    prompt_10
    prompt_11
    prompt_12
    prompt_13
    prompt_14
    prompt_15
    prompt_16
    prompt_17
    prompt_18
    prompt_19
    prompt_20
    prompt_21
    prompt_22
    prompt_23
    prompt_24
    prompt_25
    prompt_26
    prompt_27
    prompt_28
    prompt_29
    prompt_30
    prompt_31
    prompt_32
    prompt_33
    prompt_34
    prompt_35
    prompt_36
    prompt_37
    prompt_38
    prompt_39
    prompt_40
    prompt_41
    prompt_42
    prompt_43
    prompt_44
    prompt_45
    prompt_46
    prompt_47
    prompt_48
    prompt_49
    prompt_50
    prompt_51
    prompt_52
    prompt_53
    prompt_54
    prompt_55
    prompt_56
    prompt_57
    prompt_58
    prompt_59
    prompt_60
    prompt_61
    prompt_62
    prompt_63
    prompt_64

    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.

    CategoryCrush/Prompt

    Inputs (64)

    NameTypeDefaultDescription
    prompt_1STRING
    prompt_2optSTRING
    prompt_3optSTRING
    prompt_4optSTRING
    prompt_5optSTRING
    prompt_6optSTRING
    prompt_7optSTRING
    prompt_8optSTRING
    prompt_9optSTRING
    prompt_10optSTRING
    prompt_11optSTRING
    prompt_12optSTRING
    prompt_13optSTRING
    prompt_14optSTRING
    prompt_15optSTRING
    prompt_16optSTRING
    prompt_17optSTRING
    prompt_18optSTRING
    prompt_19optSTRING
    prompt_20optSTRING
    prompt_21optSTRING
    prompt_22optSTRING
    prompt_23optSTRING
    prompt_24optSTRING
    prompt_25optSTRING
    prompt_26optSTRING
    prompt_27optSTRING
    prompt_28optSTRING
    prompt_29optSTRING
    prompt_30optSTRING
    prompt_31optSTRING
    prompt_32optSTRING
    prompt_33optSTRING
    prompt_34optSTRING
    prompt_35optSTRING
    prompt_36optSTRING
    prompt_37optSTRING
    prompt_38optSTRING
    prompt_39optSTRING
    prompt_40optSTRING
    prompt_41optSTRING
    prompt_42optSTRING
    prompt_43optSTRING
    prompt_44optSTRING
    prompt_45optSTRING
    prompt_46optSTRING
    prompt_47optSTRING
    prompt_48optSTRING
    prompt_49optSTRING
    prompt_50optSTRING
    prompt_51optSTRING
    prompt_52optSTRING
    prompt_53optSTRING
    prompt_54optSTRING
    prompt_55optSTRING
    prompt_56optSTRING
    prompt_57optSTRING
    prompt_58optSTRING
    prompt_59optSTRING
    prompt_60optSTRING
    prompt_61optSTRING
    prompt_62optSTRING
    prompt_63optSTRING
    prompt_64optSTRING

    Outputs (2)

    NameTypeDescription
    prompt_listSTRING
    prompt_stringsSTRING