๐ VRGDG_ManualLyricsExtractor
Give It a Song, Get Back Per-Scene Lyrics
- audio
- all_lyrics_combined
VRGDG_ManualLyricsExtractor takes an audio track and transcribes the vocals into lyric text, split into segments sized to your scene length. It's how this pack turns "here's a song" into "here are the lyrics that should drive scene 1, scene 2, scene 3โฆ".
The flow it belongs to: the music-video workflow imports an audio file, and before any video is generated, someone has to know what the words are and when they happen. This node does the transcribing and, crucially, chunks the result by your scene duration, so the lyric for each video segment is right there waiting. The single output, all_lyrics_combined, is the whole transcribed-and-segmented lyric text, ready to hand off to a cleaner (like VRGDG_LyricSegmentTextCleaner) or straight into the prompt creator's lyrics field.
Inputs that matter
audio- the AUDIO input. Wire in your loaded track; the pack's audio pipeline handles decoding.scene_duration_seconds- how long each video scene will be (default 4, range 1โ10). This drives how the transcription is split: 4-second scenes mean the lyrics get cut into ~4-second chunks. Shorter scenes give finer, wordier chunks; longer scenes give more complete lines per prompt.language- transcription language. The default isenglish, with 113 options covering the obvious world languages plusauto. If your track is e.g. Spanish or Japanese, set it explicitly - it makes a real difference to accuracy.
Why it's built this way
Two design choices are worth understanding. First, the whole thing is local - there's no API key and no cloud round-trip, which keeps a music video (potentially minutes of audio) from costing you anything per run. Second, the "manual" in the name reflects that it hands you the text to review rather than trying to auto-feed video generation blind. Transcription of sung vocals is never perfect, and the workflow is built around you (or an LLM) cleaning the result before it becomes prompts. That's a wise division of labor: let the extractor do the brute-force work, keep a human (or a prompt pass) in the loop on the parts that matter.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl
Restart ComfyUI; find it under VRGDG. ComfyUI Manager: search vrgamedev. This node is one of the reasons the pack requires librosa in its requirements.txt - run pip install -r requirements.txt from the repo folder if it errors on import.
Honest note
Manage expectations on transcription quality. Sung vocals, heavy reverb, and overlapping instruments are hard for any local model, and the pack's README doesn't document which engine backs this node - so if accuracy matters for your song, test one chorus before trusting the full pipeline. Set language explicitly rather than relying on auto, and treat the output as a draft to be cleaned, not gospel.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | โ | |
| scene_duration_seconds | FLOAT | 4.001โ10 | โ |
| language | COMBO | english | 113 options: auto, english, chinese, german, spanish, russian, +107 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| all_lyrics_combined | STRING | โ |