Daves Text To List
One big text block in, a whole batch of prompts out — Daves Text To List
- list Out
The thing it actually does
Daves Text To List is a tiny node that takes one blob of text and splits it into a list of prompts, breaking it wherever a keyword you choose appears. That's the whole job - no API calls, no models, no weights, nothing hidden. If you've ever pasted ten prompt variations into ComfyUI and wished they'd each get their own image instead of you hand-editing the text box ten times, this is the node for you.
The author's own use case is the good one: a powerful LLM is slow to answer, way slower than a single image takes to generate. So instead of hand-writing a prompt, you have the AI produce ten variations at once, separated by a word like <split>, drop the whole reply in, and let the node turn it into ten separate prompts. ComfyUI is built for batched generations, so once your prompts are a list, a batch of images follows naturally.
How it works
There's no clever machinery here, which is the point. The node takes your text and calls Python's plain str.split() on the delimiter. Whatever's between the delimiter strings becomes one list entry, and each entry gets whitespace stripped. Because it splits on a keyword rather than newlines, your prompts can keep their internal line breaks intact - which is exactly what the author says the existing splitter nodes wouldn't do, since they all cut at newlines.
A few details worth knowing, straight from the source:
delimiterdefaults to<split>, but you can set it to any string. It works mid-line too, not just on its own line - so<split>jammed between two prompts on the same line splits just fine.- The split is case-sensitive.
<split>will not match<Split>or<SPLIT>. If your LLM gets creative with capitalization, your whole text comes out as one item and you'll stare at a single image wondering what happened. - If the delimiter never appears, you get the entire text back as one list entry. The node doesn't error - it just quietly fails to split.
The inputs and output that matter
There are only three inputs, all in the required group:
- multiline_text - your big blob of prompts. Note the default is the literal word "text", so if you drag the node in fresh, delete that before you paste.
- delimiter - the keyword to split on. Defaults to
<split>. - remove_empty - a boolean, default false. And here's a gotcha the README hides: it claims "blank lines are also removed," but the code only removes them if you actually flip this toggle on. Leave it at the default and empty segments stay in your list as blank strings, which then become blank prompts. Turn it on.
The single output is list Out - a list of strings. Feed it into any node that accepts text and you'll get one item per list entry. The classic wiring is into a CLIPTextEncode text input, which turns the list into batched conditioning, so one queue run renders an image per prompt. It's also a natural fit for an XY-plot prompt axis if that's how you like to grid your variations.
Installing it
This is about as painless as a custom node gets - the pack ships no requirements.txt, no model downloads, no Python dependencies beyond the standard library.
Via ComfyUI Manager: open Manager → Custom Nodes Manager → search Daves Nodes → Install → restart ComfyUI.
Or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/GamingDaveUk/daves_nodes
# restart ComfyUI
You'll find it in the Daves category.
Troubleshooting
Because it's so simple, the failure modes are all upstream of the node. Your list comes back with one entry - check your delimiter actually appears in the text, and check capitalization. Blank prompts coming through - flip remove_empty on. Nothing at all out - check the input box isn't still holding the default "text" placeholder. That's genuinely about it; if you're fighting anything more exotic, the problem is the workflow around it, not this node.
It's a niche tool and it knows it - one job, done well, no surprises. If you batch prompts, it'll earn its keep.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| multiline_text | STRING | text | — |
| delimiter | STRING | <split> | — |
| remove_empty | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| list Out | STRING | — |