Nodes/ComfyUI_FL-SongGen/FL Song Gen Auto Style
ComfyUI Node

FL Song Gen Auto Style

One dropdown, no style strings — FL SongGen Auto Style

By filliptm·Created 8 months ago·Updated 4 months ago· 62
FL Song Gen Auto Style
  • model
  • mixed_audio
  • vocal_audio
  • bgm_audio
lyrics[intro-short] ; [verse] Hello world.This is a test ; [chorus] Singing along.Making music ; [outro-short]
auto_stylePop
duration60
temperature0.90
cfg_coef1.5
top_k50
gen_typemixed
seed-1

Not everyone wants to write female, warm, pop, emotional, piano and drums, the bpm is 120 by hand every time. This is the "just make me a song" node: pick a genre preset, paste your lyrics, and go. It's the same generation engine as FL SongGen Generate, but the style comes from a dropdown of twelve presets instead of a description string - Pop, R&B, Dance, Jazz, Folk, Rock, Chinese Style, Chinese Tradition, Metal, Reggae, Chinese Opera, and Auto.

How it works

The interesting bit is how the preset steers the model. Where Generate passes a text description, Auto Style uses pre-trained style tokens: a file called new_prompt.pt lives in ComfyUI/models/songgen/, and the node looks up the embedding for your chosen preset and conditions generation on it directly. No text parsing, no typos, no BPM phrase to get wrong.

Two consequences worth knowing:

  • The presets lean heavily Chinese (three of the twelve are Chinese styles) because the base model is a Tencent release and the strongest training data is there. If you're writing English pop, Pop, R&B, or Rock will behave, and the others may feel like they're singing with an accent.
  • If new_prompt.pt is missing, the node logs a warning and falls back to no style conditioning. Your song still generates - it just won't be stylistically directed. So a missing file shows up as "songs that all sound generic," not as an error.

Inputs and outputs

Required: model (from the Model Loader), lyrics (the same tagged format), and auto_style (the preset). There is deliberately no description field - that's the point. The optional duration, temperature, cfg_coef, top_k, gen_type, and seed are identical to Generate, including the same gotcha: on the default gen_type of mixed, mixed_audio is the only output with sound, and vocal_audio/bgm_audio are silence until you switch to separate.

Outputs are the same three AUDIO dicts: mixed_audio, vocal_audio, bgm_audio.

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, and the first run downloads the model checkpoints to ComfyUI/models/songgen/ automatically - a few gigabytes, so go make coffee. This node leans on the same heavy stack (torch, transformers, diffusers, librosa, k-diffusion, x-transformers) as the rest of the pack.

Troubleshooting

  • Every preset sounds the same - check ComfyUI/models/songgen/new_prompt.pt exists; without it, Auto Style silently generates with no style at all.
  • Stems are silent - gen_type is on mixed; use separate.
  • Chinese presets feel off for English lyrics - expected; the Chinese-tuned presets shine on Chinese lyrics, so pick a general one for English.
  • "Auto" did something weird - that preset literally means "let the model decide," so variance is the feature.
CategoryFL Song Gen

Inputs (9)

NameTypeDefaultDescription
modelSONGGEN_MODELLoaded SongGeneration model
lyricsSTRING[intro-short] ; [verse] Hello world.This is a test ; [chorus] Singing along.Making music ; [outro-short]Formatted lyrics with section tags
auto_styleCOMBOPopPreset style for generation
durationoptFLOAT6030–270Target duration in seconds
temperatureoptFLOAT0.900.1–2Sampling temperature (higher = more random)
cfg_coefoptFLOAT1.50.5–5Classifier-free guidance strength
top_koptINT501–500Top-k sampling (lower = more focused)
gen_typeoptCOMBOmixedOutput type: mixed, separate (all tracks), vocal only, or bgm only
seedoptINT-1-1–2147483647Random seed (-1 for random)

Outputs (3)

NameTypeDescription
mixed_audioAUDIO
vocal_audioAUDIO
bgm_audioAUDIO