Nodes/RyanOnTheInside/Whisper To Prompt Travel βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
ComfyUI Node

Whisper To Prompt Travel βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜

Turn a transcript into a frame-indexed prompt schedule

By ryanontheinsideΒ·Created 2 years agoΒ·Updated 5 months agoΒ· 852
Whisper To Prompt Travel βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
  • alignment_data
  • STRING
β—„fps24.00β–Ί

The other Whisper-family nodes turn speech into a numeric FEATURE for driving masks and particle systems. This one does something different: it turns a transcript into a text schedule - the frame:"prompt" style syntax that prompt-travel / prompt-scheduling tooling in the AI-video world understands, so a video model's prompt can change automatically in sync with what's actually being said, instead of you scrubbing through the timeline hand-typing frame numbers for each prompt change.

Same dependency note as the rest of this family: alignment_data comes from the separate ComfyUI-Whisper pack, which does the actual transcription. This node only converts alignment into a schedule string - it doesn't transcribe anything itself.

How it works

There are only two inputs, and the fps tooltip tells you exactly what the node is doing under the hood: it's "used to convert timestamps to frame numbers." Whisper gives you word/segment timing in seconds; this node walks that alignment and, using fps, turns each timestamp into the frame number where that word or segment starts, then packages the whole thing into a single travel-formatted string.

The inputs and outputs that matter

alignment_data (whisper_alignment) is the transcript timing you're converting. fps (0.1–120, default 24) is the one number that matters here, and it needs to match your actual render frame rate - same class of mismatch bug as WhisperFeature's frame_rate/frame_count pair, just simpler since there's only one number to get right. The output is a single STRING, formatted for whatever prompt-travel or prompt-scheduling node you're feeding it into downstream.

How to install it

Via ComfyUI Manager, search "RyanOnTheInside." Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside.git
cd ComfyUI_RyanOnTheInside
pip install -r requirements.txt

Restart ComfyUI. Install ComfyUI-Whisper as well if you haven't already - it's what produces the alignment_data this node needs to have anything to convert.

Common issues & troubleshooting

fps mismatch is the recurring bug across this entire Whisper family, and it matters more here than anywhere else in it, because converting timestamps to frame numbers is this node's entire job. If your actual render comes out at a different frame rate than what you set here - or you change your render settings later and forget to update this node - every prompt change in the resulting schedule lands on the wrong frame while the output string still looks perfectly well-formed. It fails silently rather than throwing an error, which makes it easy to miss until you actually watch the render and notice the prompt shifts feel off-beat from the dialogue.

And since the output is a raw, syntax-specific string, it only does something useful if whatever you pipe it into actually understands prompt-travel formatting. If you're not already using a prompt-scheduling node elsewhere in your workflow, this output has nowhere to go - it's not a general-purpose string, it's built for one specific kind of downstream node.

CategoryRyanOnTheInside/FlexFeatures/Sources/Whisper

Inputs (2)

NameTypeDefaultDescription
alignment_datawhisper_alignmentβ€”
fpsFLOAT24.000.1–120Frame rate of the video to sync with (0.1 to 120.0 fps). Used to convert timestamps to frame numbers.

Outputs (1)

NameTypeDescription
STRINGSTRINGβ€”