Prompt Sequence Builder (Advanced)
Timecodes decide when each prompt peaks
- positive_1
- negative_1
- positive_2
- negative_2
- prompts
- PROMPTS
The plain Prompt Sequence Builder stacks prompts in order and lets the Interpolator divide the song evenly between them. The Advanced version asks the obvious follow-up: what if you don't want prompt changes spread out evenly? What if the second scene should hit at the 12-second mark because that's when the drop lands? That's the entire job of this node - the same builder, plus timecodes.
What changed. The Advanced builder keeps every input of the plain one (positive_1, negative_1 required; positive_2, negative_2, prompts optional) and adds two float inputs: timecode_1 (required, default -1) and timecode_2 (optional, default -1). A timecode is the moment in seconds when a prompt should be fully present in the sequence. When you feed the result into the Interpolator in split_on_timecode mode, those numbers tell it how long to spend easing from prompt A into prompt B - fast if the timecodes are close together, slow if they're far apart.
The trap in the default. Both timecodes default to -1, and the node refuses to run with a negative timecode - the source raises ValueError("Timecodes must be >= 0.0."). So unlike most ComfyUI defaults, -1 here is not "auto," it's "you forgot to set this." If you leave them at the default and hit an error, that's the whole mystery. Set timecode_1 to something sane and you're through the door.
How it works under the hood. Each prompt gets tagged with a small PromptSequenceData object carrying its timecode, stored inside the MbmPrompt. That metadata rides along through the sequence and is exactly what the Interpolator reads when split_on_timecode is chosen. The prompts input still appends, so you can chain Advanced builders for multi-timecode sequences, and the timecodes ride along on each prompt you add.
Worth knowing before you use it: timecodes are only meaningful if the Interpolator actually uses them. If you leave the Interpolator on split_evenly, this node's timecodes are silently ignored and you've built a fancier version of the plain builder for no reason. And timecode mode needs one more piece of information: the Interpolator also wants the FEAT_SECONDS output from the Audio Feature Calculator - the duration each audio frame represents - so it can convert your second-based timecodes into frame indexes. No feat_seconds, no timecode mode.
Who should reach for it. If your song has a structure you care about - a verse, a build, a drop, a chorus - this is the node that lets the visuals honor it. If you don't care and just want smooth changes throughout, the plain builder plus even splitting is simpler and the result is indistinguishable at a casual watch. And if you'd rather author timecodes in a text file than click widgets, the Prompt Sequence Loader reads the same timecode concept straight from JSON - same effect, more reproducible.
Same install as the rest of the pack: clone into custom_nodes, pip install -r requirements.txt, restart. Look for both builders under MBMnodes/Prompts.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| positive_1 | CONDITIONING | — | |
| negative_1 | CONDITIONING | — | |
| timecode_1 | FLOAT | -1.00-1–18446744073709550000 | — |
| positive_2opt | CONDITIONING | — | |
| negative_2opt | CONDITIONING | — | |
| promptsopt | PROMPT_SEQ | — | |
| timecode_2opt | FLOAT | -1.00-1–18446744073709550000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| PROMPTS | PROMPT_SEQ | — |