Normalize Amplitude
Get your curve into 0-to-1 so it can drive anything
- amplitude
- normalized_amp
Most parameters you want to drive with audio live in a 0-to-1 world - ControlNet strength, denoise, weight schedules. Raw amplitude from BatchAmplitudeSchedule does not. NormalizeAmplitude is the step that reconciles them: it divides the whole amplitude series by its maximum, so the loudest moment becomes exactly 1.0 and everything else scales proportionally. Output is the pack's NORMALIZED_AMPLITUDE type, and nearly every "drive a generation with music" workflow passes through here.
It's also the gate to the pack's fancier consumers: GateNormalizedAmplitude, NormalizedAmplitudeToNumber, NormalizedAmplitudeToGraph, and the marquee NormalizedAmplitudeDrivenString all expect normalized input. You can think of it as the pack's "make it a 0–1 signal" utility, which is why it shows up in the README's basic example before anything interesting happens.
The one knob that matters
- invert_normalized (optional, default
false) - flips the curve with1 - value, so it's highest when the audio is quietest.
That inversion is a quiet superpower and the README's "two amplitude" example is built on it: run one normalized curve into positive conditioning and the inverted one into negative conditioning, and a single track drives two opposite animations - when the music is loud the first one pushes, when it drops the second takes over. Cheap, no extra audio analysis, and it's the kind of trick that makes audio-reactive work feel alive.
Input: amplitude (AMPLITUDE). Output: normalized_amp (NORMALIZED_AMPLITUDE).
Gotchas
Normalization divides by the global max, so one loud hit shrinks everything else on the curve. If your track has a single enormous transient and the rest is quiet, normalize and you'll get a mostly-flat signal - tame the spikes first with ClipAmplitude or smooth them with TransientAmplitudeBasic, then normalize. Also, because values land in 0–1, any downstream INT conversion truncates to zero; if you need integers, scale up before converting.
Install with the pack: ComfyUI Manager search ComfyUI-AudioScheduler, or git clone https://github.com/a1lazydog/ComfyUI-AudioScheduler into custom_nodes and restart. No models, no VRAM - it's a divide and a subtract.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| amplitude | AMPLITUDE | — | |
| invert_normalizedopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| normalized_amp | NORMALIZED_AMPLITUDE | — |