Nodes/JK HeartMuLa (Style Transfer)/HeartMuLa Music Generator
ComfyUI Node

HeartMuLa Music Generator

Local music with great vocals and a mind of its own

By Crono141·Created 3 months ago·Updated 3 months ago· 0
HeartMuLa Music Generator
  • model
  • cmuq
  • tokens
lyrics
tags
duration_seconds30.00
seed0
temperature1.00
top_k50
cfg_scale1.50

This is the whole point. HeartMuLa Music Generator is the core of the pack - the 3B LLM that takes lyrics and tags and writes an actual song. Feed it a vocal line and some style words, get back audio tokens, then decode them with the HeartMuLa Audio Decoder and hear what it cooked up. It's the closest thing to a local Suno in open weights, and like all of them, the quality split is specific: vocals and lyric delivery are genuinely good, genre obedience is not.

The community verdict after the January 2026 launch was blunt: the model "barely listens to any of the genre tags you feed it," each generation is "basically a gacha roll," and it's slow. But the same people agreed the vocals "sound really damn good and it almost NEVER misses lyrics." That's the honest trade - this is a TTS-derived model that learned to sing before it learned to respect genres.

What it does

Takes the HEARTMULA_MODEL from the HeartMuLa Loader, plus:

  • lyrics and tags - the two text conditions. Tags are comma-separated style words.
  • duration_seconds (1–300, default 30) - how long the song runs.
  • seed, temperature (0.1–2), top_k (1–1000), cfg_scale (0.1–5) - the sampling controls.
  • cmuq (optional) - the style-transfer embedding from HeartMuLa Style Embed. Leave it unconnected and you get stock tag-only generation.

Output is HEARTMULA_TOKENS, which wires straight into the Audio Decoder. Generation and decode are deliberately two nodes - tokens are the "latent" of this pipeline.

The settings that actually matter

cfg_scale is the difference between tags working and tags being ignored. The default is 1.5, which the community found too weak - one early user thought the source was buggy until they raised cfg and the tags snapped into obedience. People reporting solid results were running cfg_scale around 5 with temperature 0.5. So: if your "synthwave, 80s" prompt comes back as ambient mush, this is the first dial to touch, not the tags.

duration_seconds is a real time investment. It's an autoregressive model and it's slow - a minute of audio can take several minutes of wall clock on consumer hardware, with ~19–20 GB VRAM for a no-optimization run on a 3090. Start at 30 seconds (the default) and iterate on tags before committing to longer runs.

The mechanism, briefly

preprocess() builds the conditioning from lyrics and tags, then injects a muq_embed vector - a 512-dim style embedding that heartlib hardcodes to zeros for tag-only generation. Style transfer works by overwriting that zero vector with a reference clip's embedding before sampling. Classifier-free guidance is handled inside the model. The generator also clears other models off the GPU before it runs (unload_all_models) and moves its own weights back to CPU after, so expect it to be greedy while active and tidy afterwards.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/Crono141/ComfyUI-JK-HeartMuLa.git
cd ComfyUI-JK-HeartMuLa
pip install -r requirements.txt

Restart ComfyUI, then make sure the model weights are cloned into ComfyUI/models/HeartMuLa/ (see the HeartMuLa Loader article - nothing auto-downloads). The pack needs a recent ComfyUI with the V3 node API.

Where it fits

In the wider audio-generation picture, HeartMuLa is the open-weights contender for sung music - ACE-Step is stronger on instrumentals, weaker on vocals, and this is nearly the mirror image. If you want local music with real singing, this is currently your best open bet. If you want genre control and consistency, be ready to babysit cfg and re-roll. And the style-transfer cmuq input? The README is unusually honest about it: it's experimental, and tag-only generation usually sounds better. Don't build your workflow around it.

CategoryJK-HeartMuLa

Inputs (9)

NameTypeDefaultDescription
modelHEARTMULA_MODEL
lyricsSTRING
tagsSTRING
duration_secondsFLOAT30.001–300
seedINT00–18446744073709550000
temperatureFLOAT1.000.1–2
top_kINT501–1000
cfg_scaleFLOAT1.500.1–5
cmuqoptJKHEARTMULA_CMUQ

Outputs (1)

NameTypeDescription
tokensHEARTMULA_TOKENS