Nodes/MultiString Prompts/MultiString Prompts
ComfyUI Node

MultiString Prompts

Five prompt boxes in one node — batch text without the spaghetti

By SquirrelRat·Created 11 months ago·Updated 10 months ago· 2
MultiString Prompts
    • prompt_1
    • prompt_2
    • prompt_3
    • prompt_4
    • prompt_5
    • negative_prompt
    • prompt_list
    enable_prefixtrue
    enable_suffixtrue
    prefix
    suffix
    multi_prompt_1
    multi_prompt_2
    multi_prompt_3
    multi_prompt_4
    multi_prompt_5
    negative_prompt

    The name undersells it. MultiString Prompts isn't a fancy string library - it's five big multiline text boxes, a shared prefix and suffix, and one node where a stack of prompt variation work used to live. If you've ever run a sequence of images - shot-to-shot video, style sweeps, "same subject, five moods" - you know the alternative: a half-dozen String nodes wired into a loop, or editing a text file between every render. This collapses that into a single node that hands you five processed strings plus a ready-made list.

    It's a small, dependency-free utility from the SquirrelRat/MultiString-Prompts pack, and its whole job is to let you type a bunch of prompts once and route them around. There's no API, no model download, no torch trickery - just string assembly.

    How it works

    The mechanism is dead simple, which is the point. Each of the five prompt boxes gets stripped of surrounding whitespace, then reassembled as prefix, prompt, suffix - with two wrinkles worth knowing:

    • Empty boxes stay empty. If a slot is blank, the output is "", not "prefix,suffix". So you can leave slots unused and the node won't inject stray commas or your quality keywords into nothing.
    • The prefix/suffix are opt-in. The enable_prefix and enable_suffix dropdowns (yes, they're string "true"/"false" choices, not booleans) let you test prompts with and without your shared keywords without deleting them.

    The prefix slot is where a beginner gets real value: it's the natural home for quality-tag blocks like score_9, score_8_up on Pony/Illustrious or a style/lighting phrase you want on every image. Since earlier tokens carry more weight in most encoders, putting that shared block at the front (rather than appending it per prompt) is arguably where it belongs anyway.

    The inputs and outputs that matter

    You'll actually set three things:

    • multi_prompt_1 through multi_prompt_5 - your five prompts, each multiline.
    • prefix / suffix - single-line shared text, with their enable toggles.
    • negative_prompt - yes, it's there, even though the README never mentions it. The schema and source both include a negative_prompt input that runs through the same prefix/suffix processing.

    Outputs are prompt_1 through prompt_5 (STRING), a processed negative_prompt string, and prompt_list. That last one is the interesting bit: it's a single list of your non-empty processed prompts, made for feeding a Loop or batch node directly - the compact workflow the author clearly built this for.

    Installing it

    The pack is on the Comfy Registry, so the easy path is ComfyUI Manager: Manager → Install Custom Nodes → search "MultiString Prompts". Or clone it:

    cd ComfyUI/custom_nodes
    git clone https://github.com/SquirrelRat/MultiString-Prompts
    

    Then restart ComfyUI. There's no requirements.txt to install - the only import is stock torch, which ComfyUI already runs on. No models, no weights, nothing to babysit.

    Gotchas

    The one that will actually bite: prompt_list drops empty slots. The node filters blanks out of the list, so if you have five boxes and leave two empty, the loop you feed the list into runs three times, not five. That's probably desirable most of the time - but if you're relying on index alignment between list position and a video frame sequence, count the entries, not the boxes.

    The other classic ComfyUI step: if the node doesn't show up after install, refresh the browser tab and make sure the frontend fully reloaded - old cached UI is the usual reason a freshly installed node appears missing.

    For the version of this node that encodes those prompts into conditioning blocks in one step, grab its sibling, MultiString Prompts Encode. The string node is the text side; the encode node is the "wire me straight into a KSampler" side.

    CategoryMultiString Prompts

    Inputs (10)

    NameTypeDefaultDescription
    enable_prefixCOMBOtrue2 options: true, false
    enable_suffixCOMBOtrue2 options: true, false
    prefixSTRING
    suffixSTRING
    multi_prompt_1STRING
    multi_prompt_2STRING
    multi_prompt_3STRING
    multi_prompt_4STRING
    multi_prompt_5STRING
    negative_promptSTRING

    Outputs (7)

    NameTypeDescription
    prompt_1STRING
    prompt_2STRING
    prompt_3STRING
    prompt_4STRING
    prompt_5STRING
    negative_promptSTRING
    prompt_list*