SF Prompt List
Up to 50 text boxes, one comma-joined string
- text
Anyone who's done prompt A/B testing in ComfyUI knows the pain: you want to flip one term and see what it does, but the string lives in a single giant text box and editing it is a museum of find-and-replace. SF Prompt List is the boring, effective fix. It gives you a stack of separate text boxes, and on every run it joins the non-empty ones into a single comma-separated string. Mute a box, the output changes. Bypass one, same thing. You can literally rerun with one word removed by deleting a box's contents instead of surgery on a long prompt.
How it works
Under the hood it's genuinely simple: the node defines 50 inputs (prompt_1 through prompt_50), takes an inputcount telling it how many to process, skips any that are empty or whitespace, and returns ",".join(...). The clever part is the front-end. The pack ships a small JavaScript extension that hides every box beyond inputcount - so you set the count to 3 and the node shows three tidy inputs, not fifty empty ones. That's the whole trick, and it's a good one. It's the same pattern the ROADMAP lists as the pack's first feature, so this node is basically the pack's founding idea.
The inputs that matter
- inputcount - an integer from 2 to 50, default 5. This controls how many boxes show and how many get processed. Only the first
inputcountboxes are ever read, so a box 7 of 50 that still has text is ignored, not included. - prompt_1 … prompt_50 - multiline text boxes. Order in the output is the box order, and empty boxes are skipped entirely, which means you can leave slots unused without getting stray commas.
Output is a single STRING named text - wire it straight into a CLIP text encoder or a prompt concatenation node. Because it's comma-joined, the result slots into almost any SD/SDXL/Flux-style positive prompt without extra formatting.
Installing it
Part of the SF ComfyUI Nodes pack from Stillfront. Easiest via ComfyUI Manager: search "SF ComfyUI Nodes" → Install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/Stillfront/comfyui-sf-nodes.git
cd comfyui-sf-nodes
pip install -r requirements.txt
No models, no API keys, no dependencies beyond what ComfyUI already has.
Common issues
Two things trip people up. First, the node only shows boxes you can actually see - if you set inputcount to 3 and then connect something to prompt_5, that connection is ignored because only the first 3 are processed. Keep your wiring inside the count. Second, the hiding behavior lives in the JS extension, so if you're running a weird ComfyUI front-end or a version that doesn't load web/, you'll see all fifty boxes at once (it still works, just ugly). And remember it's a comma joiner, not a template engine - if you need newlines between items, this isn't the node; a plain "combine strings" node with a newline delimiter is.
Inputs (51)
| Name | Type | Default | Description |
|---|---|---|---|
| inputcount | INT | 52–50 | — |
| prompt_1 | STRING | — | |
| prompt_2 | STRING | — | |
| prompt_3 | STRING | — | |
| prompt_4 | STRING | — | |
| prompt_5 | STRING | — | |
| prompt_6 | STRING | — | |
| prompt_7 | STRING | — | |
| prompt_8 | STRING | — | |
| prompt_9 | STRING | — | |
| prompt_10 | STRING | — | |
| prompt_11 | STRING | — | |
| prompt_12 | STRING | — | |
| prompt_13 | STRING | — | |
| prompt_14 | STRING | — | |
| prompt_15 | STRING | — | |
| prompt_16 | STRING | — | |
| prompt_17 | STRING | — | |
| prompt_18 | STRING | — | |
| prompt_19 | STRING | — | |
| prompt_20 | STRING | — | |
| prompt_21 | STRING | — | |
| prompt_22 | STRING | — | |
| prompt_23 | STRING | — | |
| prompt_24 | STRING | — | |
| prompt_25 | STRING | — | |
| prompt_26 | STRING | — | |
| prompt_27 | STRING | — | |
| prompt_28 | STRING | — | |
| prompt_29 | STRING | — | |
| prompt_30 | STRING | — | |
| prompt_31 | STRING | — | |
| prompt_32 | STRING | — | |
| prompt_33 | STRING | — | |
| prompt_34 | STRING | — | |
| prompt_35 | STRING | — | |
| prompt_36 | STRING | — | |
| prompt_37 | STRING | — | |
| prompt_38 | STRING | — | |
| prompt_39 | STRING | — | |
| prompt_40 | STRING | — | |
| prompt_41 | STRING | — | |
| prompt_42 | STRING | — | |
| prompt_43 | STRING | — | |
| prompt_44 | STRING | — | |
| prompt_45 | STRING | — | |
| prompt_46 | STRING | — | |
| prompt_47 | STRING | — | |
| prompt_48 | STRING | — | |
| prompt_49 | STRING | — | |
| prompt_50 | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |