SongBloom Generator
The node at the center of every SongBloom workflow
- model
- audio_prompt
- generated_audio
- generation_info
- saved_path
This is the node that does the actual song. Everything else in the pack - the lyric tools, the audio prompt, the savers - exists to feed this one thing. You hand it a model from SongBloomModelLoader, a chunk of tag-formatted lyrics, and optionally a 10-second audio reference, and it runs SongBloom's autoregressive sketch + diffusion refinement pipeline to produce up to about 2m30s of music. On a mid-range GPU that's a few minutes per song, so budget your queue accordingly.
The inputs that matter
Two are required, and then a long optional row that controls quality:
- model - the
SONGBLOOM_MODELfrom the loader. - lyrics - must be in SongBloom's tag format:
[intro],[verse],[chorus],[bridge],[inst],[outro], sections separated by commas, sentences by periods. Garbage in, garbage out - this format is not optional. Run it throughSongBloomLyricProcessorfirst if you want it cleaned.
Then the ones you'll actually touch:
- quality_preset -
Ultra High(CFG 4.0 / 200 steps / top_k 50),High(3.0 / 100 / 100),Balanced(2.0 / 75 / 150),Fast(1.5 / 50 / 200), orCustom.Highis the default and the right place to start. Steps are the vocal-quality knob - the community quickly learned that the 30-ish step defaults you see in some SongBloom wrappers make voices sound tinny and robotic; 100+ steps fixes most of it. - cfg_coef / steps / top_k - only read when
quality_presetisCustom. CFG controls how hard the model follows your lyrics. - audio_prompt - the
AUDIOoutput fromSongBloomAudioPrompt. SongBloom is audio-prompted: it takes a short reference clip and sings your lyrics over a close cousin of that melody. Skip it and you get silence driving the song. - low_memory_mode and max_memory_retries - on an OOM, the node backs off (fewer steps, higher top_k, shorter prompt, cache cleared) and retries instead of dying.
- prompt_max_seconds - caps how much of the audio reference gets fed in (default 10s). Lower it to 5s on tight VRAM.
- max_frames - the song-length ceiling, roughly 25 frames per second. 12000 ≈ 150s. This is the biggest single VRAM lever; drop it for testing.
- seed -
-1for random, or a number to reproduce a song. - dtype -
float32orbfloat16, mirroring the loader.
The outputs
- generated_audio (
AUDIO) - the song. Wire it intoSongBloomAudioSaverorSongBloomAudioPreview. - generation_info (
STRING) - duration and status text. - saved_path - comes back as
"Not saved": this node deliberately does not write a file. That's the saver's job.
Honest troubleshooting
The pack's failure modes map to the model's weaknesses, not the node's. English lyrics often come out as gibberish while Chinese works well - the model is heavily trained on Chinese pop, and this is the #1 community complaint. Don't blame your workflow. Also: keep expectations realistic on the cap. The model name says 150s and it mostly refuses to meaningfully exceed that; the pack doesn't support the newer 240s weights. And if you're on 8GB of VRAM or less, treat bfloat16 + Fast/Balanced + low_memory_mode as the baseline, not the fallback.
Install is the same as the whole pack - clone https://github.com/xuchenxu168/SongBloom_ComfyUI into custom_nodes, run pip install -r requirements.txt, restart. ComfyUI Manager users can search "SongBloom_ComfyUI".
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| model | SONGBLOOM_MODEL | — | |
| lyrics | STRING | — | |
| audio_promptopt | AUDIO | — | |
| quality_presetopt | COMBO | High | 5 options: Ultra High, High, Balanced, Fast, Custom |
| low_memory_modeopt | BOOLEAN | false | — |
| max_memory_retriesopt | INT | 20–5 | — |
| prompt_max_secondsopt | INT | 101–30 | — |
| max_framesopt | INT | 120001000–20000 | — |
| cfg_coefopt | FLOAT | 3.00.1–10 | — |
| stepsopt | INT | 10010–500 | — |
| top_kopt | INT | 1001–1000 | — |
| use_samplingopt | BOOLEAN | true | — |
| seedopt | INT | -1-1–4294967295 | — |
| dtypeopt | COMBO | float32 | 2 options: float32, bfloat16 |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| generated_audio | AUDIO | — |
| generation_info | STRING | — |
| saved_path | STRING | — |