Mega String List (Oli)
One list node to collect every prompt string you've got
- optional_prompt_list
- prompt_list
- prompt_strings
- num_strings
- string
Mega String List (Oli) is the collector node of the Oli pack: it grabs strings from a bunch of places - typed text, node outputs, other lists - and squashes them into one unified list you can feed to a Prompt Line Pick, easy promptList, or any string-join node. It's the answer to "why do I need five string-combiner nodes just to make a prompt list."
The trick is that every row does double duty. A row can hold typed text or accept a connected node output of any type - STRING, LIST, or anything else - and there are no separate input slots to keep straight. Connect a list and it's expanded into its items automatically. Type text and each line is an item (with the delimiter splitting multi-value text). Rows get an on/off toggle, you can drag the ≡ handle to reorder them, and the final list follows the visual order - rarer than it should be in ComfyUI.
What it does with strings
- Items equal to
"none"(case-insensitive) are dropped from everything. That's SDXL Prompt Styler's empty/ignore sentinel, so a styler that emits "none" for an unused field won't poison your list. - The
delimiterinput (default ", ") does two jobs: it splits typed multi-value text into separate items, and it joins everything back together for thestringoutput. Escape sequences like\nand\tare decoded at runtime. optional_prompt_listchains: wire an upstream Prompt Line Pick or another Mega String List and its contents get prepended to your result. Stack as many as you like.
The inputs that matter most
- enable - on by default. Flip it off and the node becomes pure pass-through: it returns only
optional_prompt_listunchanged and ignores every row. That's your "temporarily disable these additions" switch, and you can drive it from a router or boolean node for conditional branching. - delimiter - set it before you type multi-value rows; changing it later changes how your typed text splits.
Outputs
prompt_list is a plain LIST for wiring to Prompt Line Pick or easy promptList. prompt_strings is the same items as a STRING output list (easy promptList-compatible). num_strings is just the count - handy if you're driving a loop or a sanity check. string is everything joined by your delimiter as one scalar.
Install & gotchas
cd ComfyUI/custom_nodes
git clone https://github.com/magicoli/comfyui-oli-prompt-tools
…or ComfyUI Manager → Oli Prompt Tools, then restart. No extra dependencies - it's pure Python with a small frontend extension for the rows.
Main thing to remember is pass-through mode: if you've chained a few of these and something's suddenly missing from your list, check whether enable got flipped off upstream - pass-through is exactly designed to silently do nothing but forward. And since string is one joined blob, don't make it your only output if you're feeding a per-item consumer; grab prompt_list instead.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| optional_prompt_listopt | LIST | — | |
| enableopt | BOOLEAN | true | — |
| delimiteropt | STRING | , | — |
| _disabled_slotsopt | STRING | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| prompt_list | LIST | — |
| prompt_strings | STRING | — |
| num_strings | INT | — |
| string | STRING | — |