FL HeartMuLa Decode
Turning token soup into an actual song
- model
- audio_tokens
- audio
After the Sampler finishes its long grind, you have a tensor of audio tokens - mathematically a song, but not a sound you can hear. FL HeartMuLa Decode is the node that fixes that. It runs the tokens through HeartCodec, the neural audio codec that ships with the model, and hands you a normal ComfyUI AUDIO that you can preview, save, or pipe into the rest of your workflow.
How it works
HeartMuLa doesn't generate waveforms directly; it generates discrete audio codes that a codec turns back into sound. That's the same trick used across modern music and voice models - the language model handles the musical structure, and the codec handles the rendering. In this pack, Decode calls the codec's detokenize on the token frames from the Sampler, producing a waveform at 48 kHz, then wraps it in ComfyUI's standard AUDIO dict (waveform + sample_rate).
That means it's the fast node. Unlike the Sampler's thousands of sequential forward passes, decoding is a single pass over the tokens. You barely notice it running, which after watching the Sampler crawl feels like a small miracle.
It takes exactly two inputs: the loaded model (which contains the HeartCodec from the Model Loader) and the audio_tokens from the Sampler. One output: audio.
What to do with the output
Wire audio into whatever ComfyUI audio sink you like:
- Preview Audio (
VHS_PreviewAudioor similar) to listen immediately - Save Audio / VHS
VHS_VideoCombineto write a file - Any audio-processing node you already use - it's a standard
AUDIO, so the pack's output drops into the wider ecosystem without adapters
Community reports consistently rate the sound quality as genuinely good, and the 48 kHz output is clean - this is the part of the pipeline that just works.
Installation
Same pack as the rest:
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. First run needs the models (auto-downloaded to ComfyUI/models/heartmula/), but there's no extra setup beyond the base requirements.
Common issues
- Silent audio output - if decoding fails, the node returns one second of silence instead of raising. It logs the real error to the console, so check there. Usually it's a shape mismatch from a stale model or mismatched tokens.
- Click or pop at the start - a known artifact of the codec rather than a bug; trimming a few milliseconds fixes it in any editor.
- No audio node found - you have a
AUDIObut no sink wired. Drop in a Preview Audio node and it'll show up.
One caveat worth knowing: the node holds the model in memory, so if you're chaining many generations, the Decode stays resident while the Sampler's caches get flushed. That's by design - decode is cheap and rerunning it beats re-sampling.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| model | HEARTMULA_MODEL | Loaded HeartMuLa model (contains HeartCodec) | |
| audio_tokens | HEARTMULA_TOKENS | Audio tokens from the Sampler node |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |