Split Prompts
Paste a pile of prompts, run the whole pile in one queue press
- prompts
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.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | Prompts separated by an empty line. | |
| remove_empty_breakline | BOOLEAN | true | Delete the empty line between prompts. Off keeps a trailing empty line on each prompt. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompts | STRING | — |