ElevenLabs Pro - Audio Normalize
Make your TTS clips the same loudness, not just louder
- audio
- audio
Generate five TTS clips and they'll come back at five different loudnesses - same model, same voice, still different. ElevenLabsPro_AudioNormalize is the local, free node that fixes that, scaling any AUDIO clip to a target loudness so your narration doesn't swing between whisper and shout. It's peak or RMS normalization, done in pure torch, no API involved.
Two inputs matter:
- mode -
peak(default) scales so the loudest sample hits the target;rmsscales so the average energy lands on it. Peak is the quick fix for "clip too quiet," RMS is the one that makes clips actually match each other, which is what you want when concatenating a multi-paragraph read. - target_db - the loudness you're aiming for, in dBFS. The default of -1 is nearly full-scale, loud but close to clipping. The tooltip's hint is the one to remember: -16 is roughly broadcast loudness - that's the setting broadcasters and podcasters standardize on, and the one that'll make your output play nicely with real-world audio instead of blowing out speakers.
The math is boring and correct: it converts dBFS to a linear amplitude, measures the current peak (or RMS), computes gain = target / current, and scales the waveform. If the clip is silent it leaves it alone rather than dividing by zero. Sample rate is preserved. One output, audio.
Why it's a node and not a "just use an audio editor" step: you're already in the graph. Normalize then Concat gives you a voiceover where every paragraph sits at the same level before you export - no manual gain-riding across eight clips. Feed normalized audio into Speech to Speech and you're also giving the API a cleaner input than a clip that peaks inconsistently. And it's a genuinely good habit: normalize before you listen, not after you've mixed, because level-matching upstream prevents a whole class of "why is clip 3 so loud" surprises downstream.
Install is the pack standard:
cd ComfyUI/custom_nodes
git clone https://github.com/IxMxAMAR/ComfyUI-ElevenLabs-Pro.git
pip install -r ComfyUI-ElevenLabs-Pro/requirements.txt
Restart ComfyUI, or install "ComfyUI-ElevenLabs-Pro" via ComfyUI Manager. Just requests and soundfile in requirements; this node only touches torch, so there's nothing extra to download.
The honest limitations: normalization is a static gain change, not a compressor or a limiter. If one clip has a single loud spike, peak mode will pull the whole clip down around it and everything else gets quiet - that's peak mode doing exactly what you asked. If you're normalizing to the loudest thing you have (like matching TTS to a full-volume music track), you can't push past the source; you can only scale it. And since it operates on the in-memory dict, it doesn't overwrite your saved file - run it before Save Audio, not after.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | — | |
| modeopt | COMBO | peak | 2 options: peak, rms |
| target_dbopt | FLOAT | -1.0-60–0 | Target dBFS. -1 = nearly full-scale; -16 ≈ broadcast loudness. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |