ComfyUI Node

Audio Plotter

Waveform, spectrogram, and diff-spec plots straight out of ComfyUI

By lucasgattas·Created 12 months ago·Updated 7 months ago· 60
Audio Plotter
  • audio_ref
  • audio_proc
  • audio_null
  • image_waveforms
  • image_spectrograms
  • image_diffspec
draw_waveformstrue
draw_spectrogramstrue
draw_diffspectrue
n_fft2048
hop512

Numbers will tell you a processor changed something; a spectrogram will show you where. This node is the eyeball stage of the Egregora null-test suite - it takes your reference, your processed audio, and your null result, and renders them as three sets of matplotlib images you can dump into a ComfyUI preview. It's the "look at it" tool that pairs with the "measure it" nodes.

Why this matters more than it sounds: audio differences have a geography. A denoiser might clean a hiss band between 6–10 kHz while slightly eating the voice's sibilance - a full-band metric will average that out to "roughly fine," but a spectrogram shows the hole exactly where the sibilance lives. The diff-spectrogram in particular is the single best way to understand what FlashSR or Fat Llama actually did to your audio, because it plots the magnitude difference between reference and processed spectra. Enhanced highs show up as a bright band. Hallucinated detail shows up as scattered garbage.

What you get

Three IMAGE outputs, each controlled by a toggle (all default on):

  • image_waveforms - stacked time-domain plots of A (original), B (processed), and the null (A − B), in one figure. Good for spotting level changes, clipping, and delay.
  • image_spectrograms - three stacked spectrograms (A, B, null) in dB. Good for the big-picture "what's in this audio."
  • image_diffspec - the difference spectrogram |Spec(A) − Spec(B)|. This is the one you'll actually learn to read.

The n_fft (default 2048) and hop (default 512) inputs control spectrogram resolution - lower hop gives finer time detail at more compute. Outputs are standard ComfyUI IMAGE tensors, so they wire straight into any preview or save node.

The inputs that matter

  • audio_ref, audio_proc, audio_null - the three required audio inputs. The audio_null from the null-test node slots in directly.
  • draw_waveforms / draw_spectrograms / draw_diffspec - turn off what you don't need to save time on long files.
  • n_fft / hop - leave at defaults unless you need finer detail.

The take

There's no install friction here - the node uses matplotlib, which ships with or alongside ComfyUI. The genuinely useful habit: run the diff-spec after every serious null test, and you'll start recognizing the fingerprints of each processor in the pack - RNNoise's band-limited surgical cuts, Fat Llama's broadband sparkle, FlashSR's high-frequency reconstruction. Seeing those fingerprints is how you stop guessing and start knowing which enhancement is worth keeping.

CategoryEgregora/Visualization

Inputs (8)

NameTypeDefaultDescription
audio_refAUDIO
audio_procAUDIO
audio_nullAUDIO
draw_waveformsoptBOOLEANtrue
draw_spectrogramsoptBOOLEANtrue
draw_diffspecoptBOOLEANtrue
n_fftoptINT2048512–8192
hopoptINT51264–4096

Outputs (3)

NameTypeDescription
image_waveformsIMAGE
image_spectrogramsIMAGE
image_diffspecIMAGE