ComfyUI Node

Audio Waveform (FFMPEG)

Peak and RMS waveform images, straight from the FFmpeg binary

By kaushiknishchay·Created 7 months ago·Updated 5 months ago· 8
Audio Waveform (FFMPEG)
  • audio
  • IMAGE
width640
height240
bg_color#c0c0c0
peak_color#3232c8
rms_color#6464dc
split_channelstrue

Audio Waveform (FFMPEG) is the detail node of the three in this pack. Where its matplotlib sibling gives you one thin mono trace, this one shells out to real FFmpeg and uses its showwavespic filter to render both the peak level and the RMS (root-mean-square) level - the classic filled-in waveform you see in music players, where the darker RMS body sits inside a bright peak outline. If your visualization needs to read like a professional audio editor's output, this is the one.

How it works. The node writes your AUDIO input to a temporary WAV file with soundfile, then runs an ffmpeg command that renders one showwavespic pass for the peak trace and a second for RMS, overlays the two, drops the result onto a solid background color, and writes a single PNG frame. That PNG comes back as a normal IMAGE tensor. All the cleverness is in the filter graph; you just get the picture.

The inputs. Seven required:

  • audio - the standard AUDIO type. Everything else is cosmetic.
  • width / height - output size, default 640×240 (clamped 128–2048 wide, 64–1024 tall).
  • bg_color, peak_color, rms_color - free-form hex strings, defaults #c0c0c0, #3232c8, #6464dc. This is the node where the README's "hex supported" claim is actually true: you can type any color you want.
  • split_channels - boolean, default on. When true, stereo tracks render as two stacked waveforms (left/right); flip it off and they merge into one.

The one real gotcha: FFmpeg must be on your PATH. This node is the only one in the pack that needs a system binary, and it fails hard without one - subprocess.run(..., check=True) throws and the node red-flags. The README covers it, platform by platform:

# Linux
sudo apt install ffmpeg
# macOS
brew install ffmpeg

On Windows, grab a build from gyan.dev, extract it, and add the bin folder to your System PATH - then restart ComfyUI so the fresh PATH is actually picked up.

Install. Same as the rest of the pack: ComfyUI Manager (search "Audio Waveform Visualizer"), or

cd ComfyUI/custom_nodes/
git clone https://github.com/kaushiknishchay/ComfyUI-Audio-Waveform-Visualizer audio-visualizer

then restart. Python deps are matplotlib, soundfile, plus torch/numpy/Pillow. No model downloads. The pack is by Nishchay Kaushik, an audio-focused ComfyUI dev who also maintains the Qwen3-ASR transcription node.

Troubleshooting. If you get an FFmpeg error, it's almost always the PATH, not the node - install the binary, restart ComfyUI, retry. And if the image comes out opaque when you expected transparency, that's by design. Unlike Audio to Waveform Image, this node renders a solid bg_color behind the wave (RGB output), so it's a finished graphic rather than an overlay. Perfect for video-production frames; for compositing over footage, the matplotlib sibling is the transparent one. Peak plus RMS in a single pass is well worth the one-time setup.

CategoryAudioTools

Inputs (7)

NameTypeDefaultDescription
audioAUDIO
widthINT640128–2048
heightINT24064–1024
bg_colorSTRING#c0c0c0
peak_colorSTRING#3232c8
rms_colorSTRING#6464dc
split_channelsBOOLEANtrue

Outputs (1)

NameTypeDescription
IMAGEIMAGE