FL Song Gen Style Transfer
Steal the vibe, not the song — FL SongGen Style Transfer
- model
- reference_audio
- mixed_audio
- vocal_audio
- bgm_audio
A text description gets you a song like the one you imagined. A reference recording gets you a song that actually sounds like it - same genre, same instrumentation, same rhythm, same vocal character. That's the whole job of this node: it's FL SongGen Generate with one extra input, reference_audio, that steers the result with real audio instead of words.
How it works
You feed it any ComfyUI AUDIO clip, and the node does three things before the model ever sees it:
- Resamples it to the model's 48 kHz.
- Truncates it to the first 10 seconds - this is the part people miss. Feed it a full song and the last 90% is silently thrown away.
- Runs it through Demucs to split it into vocal and instrumental stems, so the model can copy the singing style and the backing sound separately.
The author's tip: use the chorus of a reference track, because that's where the style is most concentrated. Ten seconds of a chorus tells the model more than a minute of a verse.
The inputs that matter
- model - from the Model Loader, same as Generate.
- lyrics - the same tagged format,
[verse] ... ; [chorus] ..., with phrases separated by periods. - reference_audio - the style source. This is what makes the node.
- description - optional, and worth using with the reference rather than instead of it. Add text to pin down what the audio can't say: voice gender when the clip is ambiguous, a specific emotion, a BPM. But the README is upfront that if your description fights the reference audio, results get unpredictable. Keep them complementary.
Everything else - duration (clamped to the model's max), temperature, cfg_coef, top_k, gen_type, seed - is identical to Generate, including the gen_type trap: on the default mixed, only mixed_audio has sound and the vocal_audio/bgm_audio outputs are silence. Set separate for real stems.
Outputs are the same three AUDIO dicts as Generate, so any audio save or preview node works.
Install
ComfyUI Manager (search "FL Song Gen"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI_FL-SongGen.git
cd ComfyUI_FL-SongGen
pip install -r requirements.txt
Restart ComfyUI. Note that style transfer pulls in an extra piece: the Demucs model (htdemucs.pth) auto-downloads on first use, on top of the song model checkpoints in ComfyUI/models/songgen/. If you only use this node, you still need the full Model Loader dependency set - the reference path depends on all of it.
Troubleshooting
- The reference barely influences the result - check how long the clip is. Only the first 10 seconds count, and if that window is an intro or a quiet section, there's no style to copy. Trim to the chorus yourself before loading.
- Stems are silent -
gen_typeleft onmixed; switch toseparate. - Output sounds wrong - your description is fighting the audio. Drop the description, or make it agree with what the reference actually is.
- Slow first run - the Demucs download plus model load. Subsequent runs are faster.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| model | SONGGEN_MODEL | Loaded SongGeneration model | |
| lyrics | STRING | [intro-short] ; [verse] Hello world.This is a test ; [chorus] Singing along.Making music ; [outro-short] | Formatted lyrics with section tags |
| reference_audio | AUDIO | Reference audio for style (max 10 seconds used) | |
| descriptionopt | STRING | Optional style description to combine with reference audio (e.g., 'female, pop, emotional') | |
| durationopt | FLOAT | 6030–270 | Target duration in seconds |
| temperatureopt | FLOAT | 0.900.1–2 | Sampling temperature (higher = more random) |
| cfg_coefopt | FLOAT | 1.50.5–5 | Classifier-free guidance strength |
| top_kopt | INT | 501–500 | Top-k sampling (lower = more focused) |
| gen_typeopt | COMBO | mixed | Output type: mixed, separate (all tracks), vocal only, or bgm only |
| seedopt | INT | -1-1–2147483647 | Random seed (-1 for random) |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| mixed_audio | AUDIO | — |
| vocal_audio | AUDIO | — |
| bgm_audio | AUDIO | — |