Nodes/SD HeartMuLa/SD HeartMuLa Transcribe
ComfyUI Node

SD HeartMuLa Transcribe

Pull the Lyrics Back Out of Any Song

By singldevΒ·Created 7 months agoΒ·Updated 7 months agoΒ· 0
SD HeartMuLa Transcribe
  • audio
  • lyrics

The odd one out, in a good way. SD HeartMuLa Transcribe is the only node in this pack that doesn't generate anything - it listens. Give it any audio, and it returns the lyrics as text, using HeartTranscriptor, a Whisper-based model the HeartMuLa team fine-tuned specifically for transcribing sung vocals. This is the node that closes the loop: you can generate a song, run it back through here, and see exactly what the model thought it was singing.

First run downloads the transcriptor from HuggingFace (HeartMuLa/HeartTranscriptor-oss) into ComfyUI/models/HeartTranscriptor-oss/, on top of the model downloads you already made for the generator. It's a separate, smaller download, and it's cached in memory after that - the node keeps the loaded pipeline around, so repeat runs skip both the disk load and the download.

The mechanism is what you'd expect from a Whisper-family model: your audio gets converted from ComfyUI's AUDIO dict into a waveform tensor, resampled as needed, pushed through the transcriptor, and the recognized text comes back as a plain string. There's nothing to configure - the input list is a single required field:

  • audio - any AUDIO input. That's the fun part: because it's the standard ComfyUI audio type, you're not limited to this pack's output. Load an MP3 with a VHS LoadAudio node or any other audio loader, wire it in, and it'll transcribe whatever you throw at it. Singing, rapping, a podcast, a demo from your DAW - it doesn't care where the audio came from.

The one output, lyrics (STRING), is a plain text blob. The classic workflow is to feed it back into the Conditioning node's lyrics box - transcribe a reference track, drop the text into a new generation, and let HeartMuLa attempt its own version of the song. It's a decent round-trip: the model's lyrics are one of its genuinely good skills (community consensus is that it "almost never misses" the words it's given), so the transcription loop tends to be surprisingly usable.

Honest caveats, because it's still Whisper-under-the-hood. Transcription quality varies with audio production - a clean, vocal-forward mix transcribes well; a busy full-band mix with the voice buried will come back with garbled or half-guessed lines. It returns the raw recognized text without section markers, so if you want the output to feed a fresh generation with [Verse] / [Chorus] structure, you'll be doing a little manual editing. On CPU the transcriptor is slowish (fine for a single song, not great for a batch), and if it fails it returns an empty string and logs the traceback rather than crashing your graph - same defensive pattern as the Decode node.

My take: this is the sleeper node of the pack. The generation side gets all the attention, but Transcribe is what makes the whole thing feel like a creative tool rather than a slot machine - being able to lift lyrics from audio you actually like and remix them through the generator is genuinely useful. It's the one node worth wiring up even if you're only half-interested in the music side.

Category🎡SD HeartMuLa

Inputs (1)

NameTypeDefaultDescription
audioAUDIOAudio to transcribe lyrics from

Outputs (1)

NameTypeDescription
lyricsSTRINGβ€”