SongBloom Batch Processor
Queue up a dozen songs from one model load
- model
- audio_prompt
- batch_report
- songs_generated
The boring truth about SongBloom is that each generation is a multi-minute GPU job, and the model load itself is the slow, VRAM-hungry part. If you want to try ten different lyrics against the same model and the same reference clip, the smart move is to load the model once and generate ten times. That's the entire point of this node: it takes a list of lyrics, runs them all through the same loaded model with the same audio prompt, and saves each result to disk.
It's a convenience, but a real one. The alternative - re-running the whole graph per lyric set, reloading weights each time - is the kind of thing that turns an afternoon experiment into a day. If you're hunting for the right words over a fixed musical idea, this is the node you reach for.
Inputs that matter
- model (required) - the
SONGBLOOM_MODELfromSongBloomModelLoader. Load once, batch many. - lyrics_list (required) - multiple lyrics in one multiline box, separated by a line containing
---. That's the delimiter; the node splits on it and each chunk becomes one song. The default text shows the format. - batch_size (required) - 1–10, default 1. Controls how the list is chunked for processing (mostly relevant to pacing/memory; it doesn't mean parallel GPU work, so don't expect a speedup).
- audio_prompt (optional) - the
AUDIOreference, shared by every song in the batch. - cfg_coef / steps (optional) - the generation knobs for the whole batch. Note there's no
quality_presetortop_khere; you get these two dials and defaults otherwise. - base_filename (optional) - default
batch_song. Outputs land asbatch_song_001.flac,batch_song_002.flac, … in ComfyUI's output directory. The batch always saves FLAC.
Outputs are batch_report (STRING) - a summary of how many lyrics were found, processed, and where files went - and songs_generated (INT), the count, which you can route into anything that wants to know "did this work."
The honest warnings
- This is a long-running job. One song at 50 steps on a mid-range card is minutes; a batch of ten is potentially an hour. Set
stepsaccordingly and don't queue a batch of 10 at 200 steps unless you have a weekend. - It saves directly to the output folder - the node is its own saver, so you don't add a
SongBloomAudioSaverafter it. If you want songs elsewhere, move them after the run. - Each entry still needs to be valid SongBloom lyric format. The node doesn't run your list through the lyric processor; malformed lyrics just produce malformed songs. Pre-validate with
SongBloomLyricValidatoror run each chunk throughSongBloomLyricProcessorbefore it lands in the list. - VRAM. A batch doesn't reduce per-song memory; it just avoids the reload cost. On a tight card, keep
bfloat16on the loader and keepstepsmodest.
Install
Standard pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/xuchenxu168/SongBloom_ComfyUI
cd SongBloom_ComfyUI
pip install -r requirements.txt
ComfyUI Manager: search "SongBloom_ComfyUI". Restart and it's under SongBloom/Utils. The batch node needs the model loaded (and its ~8GB download on first use), so it's not the first node you should try - get one song working in SongBloomGenerator first, then scale up.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| model | SONGBLOOM_MODEL | — | |
| lyrics_list | STRING | # Enter multiple lyrics separated by '---' # Example: Lyrics 1 here --- Lyrics 2 here --- Lyrics 3 here | — |
| batch_size | INT | 11–10 | — |
| audio_promptopt | AUDIO | — | |
| cfg_coefopt | FLOAT | 1.50.1–10 | — |
| stepsopt | INT | 5010–200 | — |
| base_filenameopt | STRING | batch_song | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| batch_report | STRING | — |
| songs_generated | INT | — |