✂️ VRGDG_PromptSplitter
Splitting one big prompt into N scene prompts, the original way
- text_output_1
- text_output_2
- text_output_3
- text_output_4
- text_output_5
- text_output_6
- text_output_7
- text_output_8
- text_output_9
- text_output_10
- text_output_11
- text_output_12
- text_output_13
- text_output_14
- text_output_15
- text_output_16
- text_output_17
- text_output_18
- text_output_19
- text_output_20
- text_output_21
- text_output_22
- text_output_23
- text_output_24
- text_output_25
- text_output_26
- text_output_27
- text_output_28
- text_output_29
- text_output_30
- text_output_31
- text_output_32
- text_output_33
- text_output_34
- text_output_35
- text_output_36
- text_output_37
- text_output_38
- text_output_39
- text_output_40
- text_output_41
- text_output_42
- text_output_43
- text_output_44
- text_output_45
- text_output_46
- text_output_47
- text_output_48
- text_output_49
- text_output_50
A music video has scenes, and each scene gets its own prompt. But it's a lot easier to write one big structured prompt - or have the LLM node in this pack generate one - than to wire up thirty separate text nodes by hand. VRGDG_PromptSplitter is the original node in the pack that does the cutting: it takes a block of prompt text and splits it into however many scene prompts you need, each on its own output port.
It's the ancestor of a whole family of splitters in this pack (there are ten of them, no joke - V2, 4, JSON, ForFL, ForManual, and more). This one is the plainest: text in, numbered chunks out.
How it works
Two inputs:
prompt_text- your multiline prompt block. In the music video workflow this is the LLM-generated scene list, where each scene's prompt lives on its own line (or is otherwise delimited).scene_count- how many scenes you're splitting into, from 1 to 50. Set it to match how many scenes the song has, and the node carves the text into that many chunks.
Outputs: text_output_1 through text_output_50 - fifty fixed STRING ports. You don't use fifty; you use the first scene_count of them and wire those into your per-scene video generation. The unused outputs just stay empty. It's clunky but dead reliable, and it means you never have to rewire when the scene count changes - only the scene_count widget does.
Where it sits
Typical flow in this pack: the LLM node writes the scene prompts → the subject prepender stamps the character into each one → this splitter divides them → each text_output_N feeds scene N's video generation. Splitting late, right before generation, is deliberate: it keeps the whole scene list as one blob until the last second, so you can edit it as a unit.
The honest take
If you're building your own graph, this is the splitter to understand first - the others are workflow-specific variants of the same idea, and knowing this one means you'll recognize all of them. If you're using the shipped music video workflow, use whatever splitter that workflow references instead of swapping in this one; the variants exist because different workflow sections need different output counts and input formats. This one is the generic, teach-you-the-pattern version.
Installing it
It's part of the vrgamegirl19/comfyui-vrgamedevgirl pack:
cd ComfyUI/custom_nodes
git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl
restart ComfyUI, or use ComfyUI Manager → search vrgamedev. No model downloads - it's a pure text split.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt_text | STRING | — | |
| scene_count | INT | 21–50 | — |
Outputs (50)
| Name | Type | Description |
|---|---|---|
| text_output_1 | STRING | — |
| text_output_2 | STRING | — |
| text_output_3 | STRING | — |
| text_output_4 | STRING | — |
| text_output_5 | STRING | — |
| text_output_6 | STRING | — |
| text_output_7 | STRING | — |
| text_output_8 | STRING | — |
| text_output_9 | STRING | — |
| text_output_10 | STRING | — |
| text_output_11 | STRING | — |
| text_output_12 | STRING | — |
| text_output_13 | STRING | — |
| text_output_14 | STRING | — |
| text_output_15 | STRING | — |
| text_output_16 | STRING | — |
| text_output_17 | STRING | — |
| text_output_18 | STRING | — |
| text_output_19 | STRING | — |
| text_output_20 | STRING | — |
| text_output_21 | STRING | — |
| text_output_22 | STRING | — |
| text_output_23 | STRING | — |
| text_output_24 | STRING | — |
| text_output_25 | STRING | — |
| text_output_26 | STRING | — |
| text_output_27 | STRING | — |
| text_output_28 | STRING | — |
| text_output_29 | STRING | — |
| text_output_30 | STRING | — |
| text_output_31 | STRING | — |
| text_output_32 | STRING | — |
| text_output_33 | STRING | — |
| text_output_34 | STRING | — |
| text_output_35 | STRING | — |
| text_output_36 | STRING | — |
| text_output_37 | STRING | — |
| text_output_38 | STRING | — |
| text_output_39 | STRING | — |
| text_output_40 | STRING | — |
| text_output_41 | STRING | — |
| text_output_42 | STRING | — |
| text_output_43 | STRING | — |
| text_output_44 | STRING | — |
| text_output_45 | STRING | — |
| text_output_46 | STRING | — |
| text_output_47 | STRING | — |
| text_output_48 | STRING | — |
| text_output_49 | STRING | — |
| text_output_50 | STRING | — |