Nodes/SongBloom_ComfyUI/SongBloom Audio Analyzer
ComfyUI Node

SongBloom Audio Analyzer

Check your reference clip before SongBloom hears it

By xuchenxu168·Created 12 months ago·Updated 10 months ago· 15
SongBloom Audio Analyzer
  • audio
  • analysis_report
  • is_suitable

SongBloom's output quality is downstream of your reference clip's quality - feed it a muddy, clipped, or too-short sample and the song inherits the problems. This node is the cheap pre-flight check: it looks at an AUDIO tensor, measures the things that actually matter to the generator, and tells you in plain text whether that clip is going to work as a style reference.

It measures duration, sample rate, channel count, RMS energy, and peak amplitude, then runs five specific suitability checks. The output is a report you can read and a single boolean you can wire into the graph.

The checks it runs

  • Duration under 5 seconds → flagged too short. This is the hard blocker: SongBloom's audio prompt wants roughly 5–15 seconds to latch onto.
  • Duration over 30 seconds → noted as "will be trimmed." Not a failure - the prompt node cuts it down - but worth knowing your clip is getting chopped.
  • Sample rate outside 44.1k/48k → "will be resampled." The pipeline resamples to 48kHz anyway, so this is informational.
  • Silence (RMS below a threshold) → flagged. A silent reference is a broken reference.
  • Peak over 0.95 → flagged as clipping risk.

Here's the subtle bit worth understanding: the is_suitable boolean is false only when something is a real problem - too short, silent, or clipping. Things the pipeline will silently fix (long clips, odd sample rates) still leave is_suitable true. So don't panic at every warning line; panic at "too short" and "silent," because those are the ones that produce garbage songs.

Inputs and outputs

  • audio (required) - the AUDIO you're considering as a reference (or any audio you want health-checked).
  • analysis_report (STRING) - the full report: duration, sample rate, channels, RMS, peak, plus the issues list. Wire it into a Show Text node if you want it readable on the canvas.
  • is_suitable (BOOLEAN) - the verdict. You could gate a generation on this in a custom flow, but honestly its best use is as a "check before you commit to a long GPU run" signal.

Where it fits

The intended slot is right before SongBloomAudioPrompt: load or crop a candidate clip (SongBloomAudioCropper is the natural partner - crop to 5–15s, then analyze the crop), check is_suitable, and only then feed it forward. It's also handy for debugging a song that came out wrong - run it on your own reference and you'll often spot the silence or clipping that the generator dutifully amplified.

Install

Same 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. No model files, no GPU - it's pure tensor math, so it runs in a blink and costs nothing to leave in a workflow.

CategorySongBloom/Utils

Inputs (1)

NameTypeDefaultDescription
audioAUDIO

Outputs (2)

NameTypeDescription
analysis_reportSTRING
is_suitableBOOLEAN