Manual Whisper Alignment Data β‘π ‘π π £π
Hand-type speech timing (when you don't want to run Whisper)
- alignment_data
Read the node's own placeholder text and it tells you exactly what it's for: "This is a manual alignment node. You should use ComfyUI-Whisper instead for proper speech-to-text with timing." That's the author being upfront - this node doesn't run any speech recognition. It lets you type in word/phrase-level timing data by hand, in the same JSON shape that a real Whisper alignment step would produce, so the rest of your graph can consume it as if it came from actual transcription.
Why this exists (and when you actually want it)
RyanOnTheInside's pack has a "Whisper" branch of feature sources - nodes meant to let video react to spoken words and their timing. Running that pipeline for real means wiring in ComfyUI-Whisper to actually transcribe audio and produce alignment data. This node is the shortcut around that: if you already know exactly what's being said and when - you wrote the script, you're testing downstream nodes, or you want word-level timing without the transcription step being a source of error - you can type the alignment JSON directly and skip running Whisper altogether. It's also the fastest way to unit-test anything downstream that consumes alignment data, since you control the exact input instead of depending on a model's transcription accuracy.
The input and output
One field: alignment_text (required, multiline STRING), a JSON array where each entry needs three keys - value (the text), start and end (timing in seconds). The node ships with a working example as its default:
[
{"value": "Hello", "start": 0.0, "end": 0.5},
{"value": "world", "start": 0.6, "end": 1.0}
]
Output is a single value of type whisper_alignment (labeled alignment_data) - a pack-specific type meant to feed the same downstream nodes that a real ComfyUI-Whisper output would.
How to install it
The pack's README came back empty for install specifics, so use the standard path:
ComfyUI Manager: search "RyanOnTheInside", install, restart.
Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside
Restart ComfyUI. Note this node has no Whisper model dependency of its own - that's the whole point of it - but if you want the real transcription pipeline it's standing in for, you'll separately need ComfyUI-Whisper installed, which pulls in an actual Whisper model and its dependencies.
Troubleshooting
Malformed JSON in alignment_text is the main failure mode - missing a comma, an unclosed bracket, or a mismatched quote will break it, so if the node errors out, validate your JSON in a plain text editor first. Beyond that: each entry needs all three keys (value, start, end), so a copy-paste edit that drops one will produce alignment data that's silently wrong rather than obviously broken - downstream nodes expecting timing may just misbehave rather than error clearly. And if you're building a real production workflow rather than testing, don't get too attached to this node - its own default text tells you to switch to ComfyUI-Whisper once you need actual transcription.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| alignment_text | STRING | [{"value": "This is a manual alignment node. You should use ComfyUI-Whisper instead", "start": 0.0, "end": 6.26}, {"value": "for proper speech-to-text with timing. https://github.com/yuvraj108c/ComfyUI-Whisper", "start": 7.98, "end": 9.38}] | JSON array of speech segments. Each object needs: - value: Text content - start: Start time in seconds - end: End time in seconds Example format: [ {"value": "Hello", "start": 0.0, "end": 0.5}, {"value": "world", "start": 0.6, "end": 1.0} ] |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| alignment_data | whisper_alignment | β |