Batch Amplitude Schedule
The node that turns sound into a curve you can drive an animation with
- audio_fft
- amplitude
This is the heart of the whole pack. Everything before it (AudioToAudioData, AudioToFFTs) is setup, and almost everything after it (ClipAmplitude, TransientAmplitudeBasic, NormalizeAmplitude, NormalizedAmplitudeDrivenString) is refinement. BatchAmplitudeSchedule is the node that actually reduces each frame's spectrum to a single number - a loudness-over-time curve - that you can then drive denoise, ControlNet strength, prompt switches, whatever.
If you've ever seen an audio-reactive music video built in ComfyUI, this is the node doing the "listen to the beat and move the picture" part. It's the pack's answer to the same job the AnimateDiff audio-reactive scene does with Yvann's nodes: get a number per frame out of the audio and use it to steer the generation.
The knobs that matter
- operation (
avg,max,sum- defaultmax) - how each frame's spectrum is collapsed into one value.maxis the loudest bin in the band, so it's punchy and follows transients;avgis the mean energy, smoother and more forgiving;sumis total energy and produces the biggest numbers. Start withmax; switch toavgif the curve looks spiky. - lower_band_range / upper_band_range (defaults 500 / 4000) - which frequencies count as "loud." This is the secret to the pack's power. The default band is mid-frequency (roughly where vocals and guitars live), but the kick drum lives around 50–100 Hz and hi-hats up near 5–8 kHz. Pick a band that matches the instrument you want to react to.
AudioToAmplitudeGraphis designed to help you find where your track's energy actually is.
Output: a single AMPLITUDE value per frame (a pandas series under the hood), so its length matches your frames_per_second × duration.
Gotchas
lower_band_range must be less than upper_band_range - the node raises a ValueError if you invert them, so keep the low one low. And think about band width: too narrow a band and your curve goes noisy and erratic (one transient dominates), too wide and everything blurs into one flat pulse. The example workflow in the repo uses 350–1200 Hz for one curve and a different band for another, running two schedules off one track - a trick worth stealing. Set the band after you've seen your AudioToAmplitudeGraph, not before.
Install-wise it comes with the pack: ComfyUI Manager search "ComfyUI-AudioScheduler", or git clone https://github.com/a1lazydog/ComfyUI-AudioScheduler into custom_nodes and restart. Pure CPU math, no models.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| audio_fft | AUDIO_FFT | — | |
| operation | COMBO | max | 3 options: avg, max, sum |
| lower_band_range | INT | 5000–100000 | — |
| upper_band_range | INT | 40000–100000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| amplitude | AMPLITUDE | — |