Nodes/Symbiotica/Split Prompts
ComfyUI Node

Split Prompts

Paste a pile of prompts, run the whole pile in one queue press

By symbiotica-ai·Created 6 months ago·Updated about 12 hours ago· 2
Split Prompts
    • prompts
    text
    remove_empty_breaklinetrue

    The name undersells it. Yes, Split Prompts splits a block of prompts into a list - but the whole point is what ComfyUI does next. When a node hands downstream a list of strings, the graph runs once per item. So you paste twenty phrasings, hit queue once, and get twenty renders instead of twenty rounds of copy-paste-and-wait. If you've ever A/B-tested a prompt by editing one field and rerunning, this is the node that ends that.

    It's a tiny utility from the Symbiotica pack (Symbiotica/Text category), added in the pack's September 2026 release. No API key, no model download, no GPU work - it's a few lines of pure Python that massage text before it ever touches a sampler. It pairs naturally with the pack's other text plumbing (an LLM that writes a batch of prompt variations upstream, say), but it doesn't need any of it.

    How it works

    The mechanism is exactly what it sounds like: paste prompts separated by empty lines into the widget, and each paragraph comes out as one item on a prompts output. Under the hood it normalizes CRLF line endings, splits on one-or-more blank lines (whitespace-only gaps count), drops any paragraph that is pure whitespace, and returns the rest. Because that output is a list of strings, any node wired below it with a plain STRING input fires once per prompt - same seed handling, same scheduler, one press of the queue button. The node's own docstring says it plainly: "Downstream nodes run once per prompt from a single queue press."

    The inputs that matter

    There are only two, and you'll set one of them:

    • text (STRING, multiline) - your prompts, separated by an empty line. This is where almost all your effort goes.
    • remove_empty_breakline (BOOLEAN, default on) - strips the blank-line separation so each prompt comes out clean. Turn it off only if you need each prompt to keep its trailing empty line, which is rare; mostly this stays on and you forget it exists.

    Output: prompts, a STRING list. Wire it into a CLIP Text Encode by right-clicking the text widget → Convert to input and connecting the socket - the same fan-out trick you'd use to drive one seed into five samplers, now applied to prompts.

    Installing it

    The node ships in the symbiotica-ai/comfyui-nodes pack, so you install the pack:

    cd ComfyUI/custom_nodes
    git clone https://github.com/symbiotica-ai/comfyui-nodes.git symbiotica
    pip install -r symbiotica/requirements.txt
    

    or search Symbiotica in ComfyUI Manager and click install, then restart. The honest caveat: this is a big pack - agents, hosted image/video generation, transcription, Remotion overlays - and requirements.txt pulls faster-whisper, which is a chunky dependency for a node whose actual logic is re and nothing else. If you're already running Symbiotica's other nodes, great. If this is your only reason to install the pack, weigh whether Manager fetching the whole thing is worth it - the node itself costs nothing at runtime.

    Troubleshooting

    The most common stumble is the error no prompts found: separate paragraphs with an empty line. That's the node refusing to run when nothing splits - and the usual cause is single line breaks. Paragraphs separated by one newline do not split; you need a true empty line between each prompt. Leading or trailing blank lines are fine, they're just ignored.

    Second gotcha: it's a fresh node. If Manager's copy of the pack predates the September 2026 release, you won't see it in the node list - update the pack before you hunt for it. And if only one render comes back when you expected several, check what you wired the prompts list into: it has to reach a node that consumes individual strings for the per-item run to happen.

    CategorySymbiotica/Text

    Inputs (2)

    NameTypeDefaultDescription
    textSTRINGPrompts separated by an empty line.
    remove_empty_breaklineBOOLEANtrueDelete the empty line between prompts. Off keeps a trailing empty line on each prompt.

    Outputs (1)

    NameTypeDescription
    promptsSTRING