FL HeartMuLa Transcribe
Steal the lyrics from any song, then remix it with AI
- audio
- lyrics
FL HeartMuLa Transcribe is the loop-closer of the pack: feed it an AUDIO and it returns the lyrics as a string - ready to paste straight into FL HeartMuLa Conditioning for a remix. It's powered by HeartTranscriptor, a Whisper-based model fine-tuned specifically for lyrics transcription, which makes it notably better at catching sung words than a generic speech transcriber.
How it works
Give it a standard ComfyUI AUDIO input (a song you loaded, or the output of FL HeartMuLa Decode) and it runs the waveform through the HeartTranscriptor pipeline, returning a single lyrics string. The text isn't auto-formatted with [Verse] / [Chorus] markers - you'll add those yourself when you feed it back into Conditioning - but it does capture the actual sung content, which is the hard part.
First use downloads the transcriptor model from Hugging Face into ComfyUI/models/heartmula/HeartTranscriptor-oss. It's a separate download from the main 3B model, so the first run surprises people who already had the generator cached. After that it's cached in memory and fast.
It runs on CUDA in fp16 if you have it, otherwise CPU in fp32. There's no device toggle - it just picks the best thing available.
Why you'd bother
The natural workflow is a remix loop:
- Load an audio file (or generate one with the other HeartMuLa nodes)
- Transcribe it to get the lyrics
- Feed those lyrics - with structure markers added - into Conditioning, pick new tags
- Sample and decode to hear your version
It's also handy for testing: HeartMuLa "almost never misses lyrics," per community reports, so transcribing its own output is a quick way to sanity-check a generation without listening to the whole track.
Installation
Same pack, same drill:
cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI_FL-HeartMuLa.git
cd ComfyUI_FL-HeartMuLa
pip install -r requirements.txt
Or ComfyUI Manager → search "FL HeartMuLa" → Install → restart. Then the transcriptor model downloads itself on first use - no manual step, just patience.
Common issues
- Empty
lyricsoutput - transcription failed and the node returned""instead of raising. Check the console for the real error; the usual culprits are a missing transcriptor download or an audio input in an unexpected shape. - First run is slow / looks hung - it's downloading
HeartTranscriptor-oss. Watch the console for snapshot_download progress. - Transcription is rough on instrumentals - it's a lyrics model; if there are no vocals, output gets sketchy. That's expected behavior, not a bug.
- Sample-rate mismatch artifacts - the node resamples internally, but very weird input rates can degrade accuracy. Feed it normal 44.1/48 kHz audio.
If you just want the lyrics of an existing song for your own inspiration, this is a one-node answer. If you're building the remix pipeline, it's the input stage that makes the whole loop possible.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | Audio to transcribe lyrics from |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| lyrics | STRING | — |