Audio Player (Advanced) ๐ต
The last node on your wire, and the one you'll actually listen through
- audio
ComfyUI's built-in audio handling is basically a save button. You generate, you export, you find the file, you play it in another app. Audio Player (Advanced) ๐ต is the node that kills that loop: you wire any AUDIO output into it and you get a full in-graph audio monitor - waveform, spectrum, a stereo analyzer, transport controls, loudness stats, and a download menu. If you do any audio-generating work in ComfyUI (ACE-Step music, Stable Audio, or the increasingly common video-with-audio pipelines), this is the terminal node you want at the end of the wire. It was built by qualar and shipped in the axces2000 pack.
How it works
The Python side does the math, the JavaScript draws the pictures. When the node runs it takes the audio dict - a waveform tensor plus sample rate - and computes the duration, whether it's stereo, and the integrated LUFS loudness. It writes a WAV into ComfyUI's temp folder and builds a compact 120-bar RMS peak summary, which the frontend fetches over a separate /audio_player/peaks/ route rather than stuffing it into the websocket message. That's a deliberate design choice to dodge ComfyUI's websocket size limits on long audio - nice touch.
The visualization has four switchable modes, cycled from the button in the bottom-right corner:
- Waveform - stereo RMS bars, left channel purple, right orange, with a scrubbing playhead.
- Spectrum - a real-time FFT frequency plot with a labeled Hz axis.
- Analyzer - a stereo goniometer (phase/width scope) plus a correlation meter. The one to watch if you're checking whether generated stereo actually is stereo.
- Spectrogram - a scrolling psychoacoustic heatmap.
The stats bar above always shows sample rate, mono/stereo, and integrated LUFS - genuinely useful when you're trying to match loudness across generations, since ComfyUI won't tell you that anywhere else. LUFS is computed with scipy's K-weighting filter and falls back to plain RMS if scipy isn't installed, so don't panic if you see slightly different numbers than a pro DAW.
The one input, and the downloads
There's a single required input, audio (AUDIO), and no outputs - this is an output/terminal node by design. Wire it to the last audio connection in your pipeline, the same one that would feed SaveAudio. Inside, the transport gives you volume/mute, skip-to-start/end, play/pause, and loop.
The โฎ menu downloads what you're hearing: WAV, MP3 at 128/192/320 kbps, and FLAC. Here's the gotcha worth knowing: the README claims MP3 is encoded in-browser via lamejs with "no server round-trip," but the shipped code routes every format through server-side conversion - WAV/FLAC/OGG via the soundfile library, MP3/M4A/OPUS/WEBM via an ffmpeg subprocess. That means the MP3 and FLAC downloads need ffmpeg on the PATH of the machine running ComfyUI. The desktop/portable build bundles it, but if you installed ComfyUI by hand and the MP3 export errors out, that's the first thing to check.
Troubleshooting
- No peaks / "Audio file not found - re-run the node": the temp WAV didn't survive a server restart or clean. Re-run the workflow - the node regenerates it on every execution.
- Nothing plays: check you actually wired an
AUDIOoutput in. The node has nothing to feed it, and it can't be typed into. - MP3/FLAC download fails: see above -
ffmpegneeds to be on PATH (ffmpeg -versiontells you fast). - It's a dead end by design. If you still need the audio saved, wire a SaveAudio node in parallel off the same output - this node doesn't pass anything through.
Installing it
Same as the rest of the pack: ComfyUI Manager, search axces2000, install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/axces2000/comfyui-axces2000.git
pip install -r comfyui-axces2000/requirements.txt
Then restart ComfyUI. The pack needs torchaudio and soundfile from requirements.txt; scipy is optional (it just upgrades the loudness math from RMS to true LUFS). No model files to download. It's a small MIT-licensed utility pack - don't expect a huge community around it, but for a "please let me actually hear this" node, it punches well above its footprint.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | โ |
Outputs (0)
No outputs