Audio to AudioData
The adapter that gets your music into the pack
- audio
- AUDIO_DATA
Every chain in this pack starts here. ComfyUI's own LoadAudio node hands you an AUDIO object, but the rest of AudioScheduler speaks a private type called AUDIO_DATA. AudioToAudioData is the translator between the two - feed it the audio and you get back the pack's internal format that AudioToFFTs and friends will actually accept.
So the canonical pipeline looks like: LoadAudio → AudioToAudioData → AudioToFFTs → BatchAmplitudeSchedule, and from there the amplitude curve flows into everything else. It's not a flashy node, but you can't skip it, and it's the reason the pack works with "both regular ComfyUI and VHS" audio - the README calls that out explicitly, and it's true because the node just reads the standard waveform / sample_rate fields that both loaders produce.
How it works
Mechanically it's a format conversion with no analysis of its own. It takes the waveform tensor, squeezes it, converts to 16-bit PCM, wraps it in a pydub AudioSegment, and builds the pack's AudioData object (which carries the sample rate and channel count along for later nodes). One thing worth knowing: it builds a single-channel segment regardless of the source, so stereo is effectively treated as mono here. Most people drive channel 0 anyway, and it keeps the downstream math simple.
A nice touch the README doesn't mention: the pack ships a tiny web extension that bolts a "choose file to upload" button onto the core LoadAudio node. Install the pack and you can drag an mp3 or wav straight in from the UI instead of manually placing files in your input folder. The button only accepts audio/mp3 and audio/wav.
Install
This is the entry point, so let's do the whole thing once. Via ComfyUI Manager, search for ComfyUI-AudioScheduler and click install. Or, from a terminal:
cd ComfyUI/custom_nodes
git clone https://github.com/a1lazydog/ComfyUI-AudioScheduler
Restart ComfyUI. The pack pulls in matplotlib, numpy, pandas, pydub, and scipy - all CPU-side, no model files to download, no VRAM cost. The README says Manager handles it, and on Windows portable there's an install.bat that installs requirements into python_embeded for you.
Gotchas
The most common beginner stumble is wiring the raw AUDIO output into AudioToFFTs and getting a type error - older example workflows in the wild predate this node and connect LoadAudio straight to the FFT node. If you're following a 2024 tutorial, add AudioToAudioData in between. Also, remember the mono note: if your track is stereo and the amplitude curve feels "off," that's the squeezing, not a bug. And a heads-up from the community: this pack is squarely aimed at audio-reactive music-video work - the r/comfyui thread that popularized it (April 2024, +55) was exactly that, and the extraction here is light enough that "8GB should be fine" was the working answer to how much VRAM it needs. If that's your use case, you're in the right place.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| AUDIO_DATA | AUDIO_DATA | — |