Prompt Splitter (Dynamic)
Prompt batching for people who outgrew five slots
- prompt1
- neg1
- prompt2
- neg2
- prompt3
- neg3
- prompt4
- neg4
- prompt5
- neg5
- prompt6
- neg6
- prompt7
- neg7
- prompt8
- neg8
- prompt9
- neg9
- prompt10
- neg10
- prompt11
- neg11
- prompt12
- neg12
- prompt13
- neg13
- prompt14
- neg14
- prompt15
- neg15
- prompt16
- neg16
- prompt17
- neg17
- prompt18
- neg18
- prompt19
- neg19
- prompt20
- neg20
- prompt21
- neg21
- prompt22
- neg22
- prompt23
- neg23
- prompt24
- neg24
- prompt25
- neg25
- prompt26
- neg26
- prompt27
- neg27
- prompt28
- neg28
- prompt29
- neg29
- prompt30
- neg30
- prompt31
- neg31
- prompt32
- neg32
Prompt Splitter (Dynamic) is the same idea as the regular Prompt Splitter - one multiline box, prompts on their own lines, negatives marked with neg: - but it scales to 32 prompt/negative pairs instead of five. If your variation runs regularly exceed the static version's cap, this is the one you want.
Why you'd reach for it
The static Prompt Splitter drops the sixth prompt silently, which is a hard ceiling for bigger batches. This version is built for the heavy end: 32 pairs means 64 outputs (prompt1/neg1 … prompt32/neg32), which covers genuinely large variation grids. It's also the version with frontend polish - the pack ships a JS extension that gives you a live preview of how your text parses into prompt/negative pairs, so you can catch a misplaced neg: before you queue.
How it works
Same core syntax as the 5-slot version, with one behavioral difference in how entries are delimited: each non-neg: line finalizes the previous prompt and starts a new one. So a prompt that wraps across multiple lines isn't merged - every line is its own prompt entry. neg: lines accumulate on the current prompt and get comma-joined into a single negative. Blank lines are skipped.
After parsing, all pairs get the same treatment: prefix_all prepended, postfix_all appended, search_string/replace_string applied across prompts and negatives. Any slots beyond your actual entries are padded with empty strings (and any beyond 32 are just dropped), so downstream nodes always see a full set of outputs.
The inputs that matter
- prompts - the multiline box. One prompt per line;
neg:lines attach negatives. - prefix_all / postfix_all - applied to every prompt.
- search_string / replace_string - batch find-and-replace.
Outputs: prompt1–prompt32 and neg1–neg32.
Installing it
Same pack: ComfyUI Manager → Install Custom Nodes → search "ComfyUI-TinyBee", install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/TinyBeeman/ComfyUI-TinyBee
Under 🐝TinyBee/Util. The live preview comes from the pack's web directory, which ComfyUI loads automatically - no extra step, just restart after install.
Common issues
The one-per-line rule is the trap. If you paste a prompt that was wrapped onto two lines, you'll get two separate entries instead of one longer prompt - check the preview to catch it. And while 32 pairs sounds like plenty, the hard cap is real: entry 33 and beyond are dropped without warning, so keep your batch under it. Same neg: syntax gotchas as the static version apply - neg: works, negative: doesn't.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| prefix_all | STRING | — | |
| prompts | STRING | — | |
| postfix_all | STRING | — | |
| search_string | STRING | — | |
| replace_string | STRING | — |
Outputs (64)
| Name | Type | Description |
|---|---|---|
| prompt1 | STRING | — |
| neg1 | STRING | — |
| prompt2 | STRING | — |
| neg2 | STRING | — |
| prompt3 | STRING | — |
| neg3 | STRING | — |
| prompt4 | STRING | — |
| neg4 | STRING | — |
| prompt5 | STRING | — |
| neg5 | STRING | — |
| prompt6 | STRING | — |
| neg6 | STRING | — |
| prompt7 | STRING | — |
| neg7 | STRING | — |
| prompt8 | STRING | — |
| neg8 | STRING | — |
| prompt9 | STRING | — |
| neg9 | STRING | — |
| prompt10 | STRING | — |
| neg10 | STRING | — |
| prompt11 | STRING | — |
| neg11 | STRING | — |
| prompt12 | STRING | — |
| neg12 | STRING | — |
| prompt13 | STRING | — |
| neg13 | STRING | — |
| prompt14 | STRING | — |
| neg14 | STRING | — |
| prompt15 | STRING | — |
| neg15 | STRING | — |
| prompt16 | STRING | — |
| neg16 | STRING | — |
| prompt17 | STRING | — |
| neg17 | STRING | — |
| prompt18 | STRING | — |
| neg18 | STRING | — |
| prompt19 | STRING | — |
| neg19 | STRING | — |
| prompt20 | STRING | — |
| neg20 | STRING | — |
| prompt21 | STRING | — |
| neg21 | STRING | — |
| prompt22 | STRING | — |
| neg22 | STRING | — |
| prompt23 | STRING | — |
| neg23 | STRING | — |
| prompt24 | STRING | — |
| neg24 | STRING | — |
| prompt25 | STRING | — |
| neg25 | STRING | — |
| prompt26 | STRING | — |
| neg26 | STRING | — |
| prompt27 | STRING | — |
| neg27 | STRING | — |
| prompt28 | STRING | — |
| neg28 | STRING | — |
| prompt29 | STRING | — |
| neg29 | STRING | — |
| prompt30 | STRING | — |
| neg30 | STRING | — |
| prompt31 | STRING | — |
| neg31 | STRING | — |
| prompt32 | STRING | — |
| neg32 | STRING | — |