VRGDG_TranscribeLyric
Turn a Song Into Lyric Text, No External App Needed
- audio
- transcription
The music-video workflow starts with lyrics - you need the words as text before you can generate prompts from them. VRGDG_TranscribeText (also surfaced as "VRGDG_TranscribeLyric") is that first step: feed it an AUDIO tensor and it runs Whisper large-v3 and returns the transcription as a string. It's the "stop copying lyrics from the internet" node, and it does exactly one job well.
Mechanically it's straightforward Whisper, wrapped for ComfyUI. The audio is resampled to 16 kHz (Whisper's native rate), the waveform is pulled out of the AUDIO dict, and the model transcribes in 30-second chunks. That chunking matters: a full song is longer than Whisper's context window, so the node slices it, transcribes each slice, and joins the results. Longer than ~30 seconds of audio, and it's also padding the last partial chunk so auto language detection works.
The inputs that matter
- audio - any
AUDIOtensor. Plug a load node, or better, theaudiooutput ofVRGDG_GetStemsif you want vocals-only transcription (much cleaner on noisy mixes). - language -
auto(let Whisper detect, default) or any of 100+ explicit languages. Setting a language explicitly removes ambiguity - Whisper has a notorious habit of guessing wrong on heavily accented or music-heavy audio, and forcing it fixes that.
Output: transcription, a single STRING - your lyrics as text, ready to feed the prompt-creation stage of the workflow.
Install
Same pack, plus a real dependency:
cd ComfyUI/custom_nodes
git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl
pip install -r requirements.txt # includes transformers, torchaudio, etc.
The pack's requirements pull in transformers (and stable-ts, which the audio pipeline leans on), and torchaudio for resampling. The first run downloads openai/whisper-large-v3 from Hugging Face - that's a ~3GB model, so the first transcription involves a long wait. Budget for it.
Common issues
- First run hangs: it's downloading Whisper large-v3. Watch the console for the download progress rather than assuming a deadlock.
- Wrong language / garbled lyrics: set
languageexplicitly instead ofauto, especially for songs with music bleeding into the vocals. - Import error mentioning transformers or torchaudio: you cloned manually and skipped the requirements.
pip install -r requirements.txtfixes it. - VRAM concerns: Whisper large-v3 on GPU is not free, but it's transient - the model loads, transcribes, and this node doesn't keep it resident afterward.
Honest review: it's a thin wrapper around a well-known model, and the heavy lifting is all Whisper's. But "thin wrapper around the right model, wired into your graph" is genuinely useful - it keeps transcription in-pipeline so lyrics, prompts, and video stay in one workflow instead of you copy-pasting from a web app. For an offline, local music-video pipeline, that's the right shape.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | Audio input for transcription. | |
| language | COMBO | auto | Language to transcribe. 'auto' lets Whisper detect it. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| transcription | STRING | — |