Story Split Node
Split one long story into four video prompts, then stitch it back together
- prompt_1
- prompt_2
- prompt_3
- prompt_4
- debug_info
The Story Split Node exists for exactly one job: taking a long, multi-part story that a QwenVL model just wrote and slicing it into four separate prompts so you can generate a continuous ~20-second video from it. Wan 2.2 tops out around 5 seconds per generation, so the "story" trick is to have a vision-language model write one narrative, split it into four 5-second beats, run each through Wan as its own clip, and join the results. This node is the split step, and it's the least glamorous but most workflow-critical piece of that pipeline.
The mechanism is plain string surgery - no model, no VRAM, no API. You feed it the story text, and it tries to figure out where the segments end by sniffing for separators: triple newlines (\n\n\n), then double (\n\n), then single (\n), in that order. It also strips leftover WAN 2.2 prompt scaffolding - lines that start with "Prompt" or contain "content describing" get dropped, which is the kind of cleanup you'd otherwise be doing by hand between generations. Then it pads or truncates to exactly four prompts and hands them back.
The inputs that matter:
- text (required) - the story blob. Paste it or wire it straight from a QwenVL node's output.
- auto_split (default
true) - the separator sniffing above. Leave it on. - custom_delimiter - if your text uses a separator the auto-detector guesses wrong on, force it. When
custom_delimiteris set it takes priority over auto-splitting.
Outputs are prompt_1 through prompt_4 - wire each to a separate Wan 2.2 I2V/T2V node (the pack ships WAN2.2-I2V-AutoPrompt-Story.json and WAN2.2-T2V-AutoPrompt-Story.json workflows showing the whole thing) - plus debug_info, a string that tells you how many parts it found and cleaned. On empty input you get four empty prompts and debug_info = "Empty input", so it's also a halfway decent canary for a broken upstream node.
Installing it is just installing the pack: cd ComfyUI/custom_nodes && git clone https://github.com/huchukato/ComfyUI-QwenVL-Mod.git, then pip install -r requirements.txt and restart ComfyUI. Or grab it from ComfyUI Manager by searching "QwenVL-Mod". Fair warning: the pack's requirements pull in transformers, bitsandbytes, accelerate and friends because the other nodes run real Qwen models. This utility node itself is pure Python and works fine even if the heavy model nodes are failing on your machine.
Where people get burned: it only ever outputs four prompts, so a story with five or more segments silently drops the extras - check debug_info's count. And if your story is one giant paragraph with no newlines at all, auto-split can't find a boundary, so you get prompt_1 with everything and three empties; that's when you set a custom_delimiter (a phrase like "Segment 2:" works). Honestly, for a one-trick utility it's the right amount of clever: predictable, debuggable, and it saves you from wrangling JSON string escapes every run.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | โ | |
| auto_splitopt | BOOLEAN | true | โ |
| custom_delimiteropt | STRING | โ |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| prompt_1 | STRING | โ |
| prompt_2 | STRING | โ |
| prompt_3 | STRING | โ |
| prompt_4 | STRING | โ |
| debug_info | STRING | โ |