ComfyUI Node

Whisper Transcribe

Turn audio into text, one file at a time

By royceschultz·Created 2 years ago·Updated about a year ago· 35
Whisper Transcribe
  • pipeline
  • wav_bytes
  • transcription
  • chunks
format_newlines_on_punctuationtrue
save_transcriptionfalse
save_chunksfalse
save_filenametranscription
overwrite_existingtrue

This is the workhorse of the pack - the node that actually turns audio into text. Feed it a loaded Whisper pipeline and a wav_bytes clip from any of this pack's loaders, and it hands back a transcript as a plain string, plus a second string broken into chunks. It's marked as an output node, so ComfyUI will always execute it when it's part of your graph, whether or not you're also saving anything to disk.

Why long audio specifically

The readme leads with "well suited for long duration inputs," and that's really a chunking claim. Whisper's own architecture only processes audio in roughly 30-second windows, so anything longer has to be split, transcribed piece by piece, and stitched back into one transcript. That's exactly what the two outputs reflect: transcription is the stitched-together full text, chunks is the per-segment breakdown before stitching - useful if you want rough timing or want to sanity-check what got merged into the final result. It's a small pack with modest traffic, but the people who've actually used it on real material report it holds up on messy, real-world audio - YouTube pulls, songs, whatever gets thrown at it - not just clean studio narration.

The inputs and outputs that matter

  • pipeline (TRANSCRIPTION_PIPELINE) - from Load Whisper Transcription Model.
  • wav_bytes (WAV_BYTES) - from Load Audio, Load Audio from Video, or Convert VHS Audio to WAV bytes.
  • format_newlines_on_punctuation (default on) - inserts a line break after sentence-ending punctuation, so the output reads like actual paragraphs instead of one long run-on line. Leave it on unless you're piping the text somewhere that wants it unbroken.
  • save_transcription / save_chunks (both off by default) - flip these on to also write the results to disk; leave them off and the text only exists inside the running graph.
  • save_filename (default "transcription") and overwrite_existing (default on) control where a save lands and whether a second run replaces the first.

Two outputs: transcription (STRING) - the full text, ready for a Save Text node, an LLM node for summarization, or a preview widget - and chunks (STRING) - the segment-level breakdown.

Installing it

ComfyUI Manager: search ComfyUI-TranscriptionTools, install, restart. Or by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/royceschultz/ComfyUI-TranscriptionTools

then restart. Nothing extra to fetch for this node specifically - the Whisper checkpoint itself is Load Whisper Transcription Model's job.

Common issues & troubleshooting

It ran, but you don't see any text. Being an output node means it executes, not that a result pops up on its own - wire transcription into a text preview or Save Text node, or turn on save_transcription to get a file you can open.

Garbled text or the wrong language coming out. That's Whisper itself, not this node's handful of settings - accents, overlapping speakers, and background noise degrade any Whisper model's accuracy. Fix it upstream by picking a bigger model or forcing the right language on Load Whisper Transcription Model, not here.

A second run doesn't seem to save. overwrite_existing exists precisely to stop you clobbering a previous transcript by accident. Turn it on if you want each run to replace the last, or change save_filename between runs if you want to keep both around.

Categorytranscription

Inputs (7)

NameTypeDefaultDescription
pipelineTRANSCRIPTION_PIPELINE
wav_bytesWAV_BYTES
format_newlines_on_punctuationBOOLEANtrue
save_transcriptionBOOLEANfalse
save_chunksBOOLEANfalse
save_filenameSTRINGtranscription
overwrite_existingBOOLEANtrue

Outputs (2)

NameTypeDescription
transcriptionSTRING
chunksSTRING