Nodes/comfyui-stillfront/SF Prompt List
ComfyUI Node

SF Prompt List

Up to 50 text boxes, one comma-joined string

By razvanmatei-sf·Created 9 months ago·Updated 7 months ago· 0
SF Prompt List
    • text
    inputcount5
    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

    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 inputcount boxes 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.

    CategoryStillfront/Utils

    Inputs (51)

    NameTypeDefaultDescription
    inputcountINT52–50
    prompt_1STRING
    prompt_2STRING
    prompt_3STRING
    prompt_4STRING
    prompt_5STRING
    prompt_6STRING
    prompt_7STRING
    prompt_8STRING
    prompt_9STRING
    prompt_10STRING
    prompt_11STRING
    prompt_12STRING
    prompt_13STRING
    prompt_14STRING
    prompt_15STRING
    prompt_16STRING
    prompt_17STRING
    prompt_18STRING
    prompt_19STRING
    prompt_20STRING
    prompt_21STRING
    prompt_22STRING
    prompt_23STRING
    prompt_24STRING
    prompt_25STRING
    prompt_26STRING
    prompt_27STRING
    prompt_28STRING
    prompt_29STRING
    prompt_30STRING
    prompt_31STRING
    prompt_32STRING
    prompt_33STRING
    prompt_34STRING
    prompt_35STRING
    prompt_36STRING
    prompt_37STRING
    prompt_38STRING
    prompt_39STRING
    prompt_40STRING
    prompt_41STRING
    prompt_42STRING
    prompt_43STRING
    prompt_44STRING
    prompt_45STRING
    prompt_46STRING
    prompt_47STRING
    prompt_48STRING
    prompt_49STRING
    prompt_50STRING

    Outputs (1)

    NameTypeDescription
    textSTRING