Nodes/ComfyUI-AudioScheduler/Batch Amplitude Schedule
ComfyUI Node

Batch Amplitude Schedule

The node that turns sound into a curve you can drive an animation with

By a1lazydog·Created 3 years ago·Updated 2 years ago· 112
Batch Amplitude Schedule
  • audio_fft
  • amplitude
operationmax
lower_band_range500
upper_band_range4000

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 - default max) - how each frame's spectrum is collapsed into one value. max is the loudest bin in the band, so it's punchy and follows transients; avg is the mean energy, smoother and more forgiving; sum is total energy and produces the biggest numbers. Start with max; switch to avg if 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. AudioToAmplitudeGraph is 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.

CategoryAudioScheduler/Amplitude

Inputs (4)

NameTypeDefaultDescription
audio_fftAUDIO_FFT
operationCOMBOmax3 options: avg, max, sum
lower_band_rangeINT5000–100000
upper_band_rangeINT40000–100000

Outputs (1)

NameTypeDescription
amplitudeAMPLITUDE