H3 Episode Split (stage A + B)
Carve one script into the stage A prompt and the stage B chain
- block1_prompt
- rest_script
- info
The two-stage episode workflow in this pack renders a long piece as two different jobs: stage A establishes the characters and the look on the ref2va checkpoint, then stage B continues the whole thing as a chained take on fl2va. They need different prompts - stage A gets the first block plus the reference-image identity lines, stage B gets the rest of the script as a chaining envelope. H3EpisodeSplit does exactly that split, so you can write one episode and feed both stages without hand-copying anything.
How it works
You feed it the whole episode as script - either the one-line JSON envelope {"prompts": [...]} or raw blocks separated by --- lines, the same format the samplers accept. Out come three things:
block1_prompt- the first block, ready for stage A's ref2va render.rest_script- everything after block 1, re-wrapped as a script for the stage B chain.info- a string telling you what happened (how many blocks it found, what went where).
The second input, bindings, is where the reference identity lives: lines like <Picture 1>, <Picture 2> are the same person (Rae). The key detail is where it puts them - it prepends the bindings to block 1 only. That's deliberate and worth internalizing: the <Picture N> identity lines belong with the ref2va stage, where reference rows exist to read them. They never go into the I2V chain stage, which has no reference rows and would just pay token cost for text it can't honor. Keep the bindings in sync with which reference images you actually unmute, and stage A hands stage B a character it can continue.
Why you'd reach for it
If you're hand-assembling a two-stage episode, this is the node that turns "two manually-maintained scripts that will drift out of sync" into "one source of truth." Edit the episode once; both stages stay consistent. It also enforces the correct split by construction - the identity bindings physically cannot leak into the chain stage, which is exactly the kind of mistake that produces a stage B that re-casts everyone.
Install
It ships in the H3 Multishot pack:
cd ComfyUI/custom_nodes
git clone https://github.com/jlucasmcrell/ComfyUI-H3-Multishot
or ComfyUI-Manager → H3 Multishot. Restart; ComfyUI v0.30.0+.
The practical notes: keep --- on its own line (the parser is exact about that), and remember the stage-B chain follows the pack's boundary rules - each block after the first opens with the AIRLOCK convention and a couple of quiet seconds, because the chain trims the replayed head on every join. A script that works as a fresh scene list isn't automatically a script that works as a chain, and this node won't fix that for you - it only splits, it doesn't rewrite.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| script | STRING | The whole episode: either the one-line JSON envelope {"prompts": [...]} or raw blocks separated by --- lines. | |
| bindings | STRING | <Picture N> identity lines, prepended to block 1 only. Keep in sync with which reference images are unmuted. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| block1_prompt | STRING | — |
| rest_script | STRING | — |
| info | STRING | — |