Nodes/RyanOnTheInside/Audio Feature Visualizer ***BETA*** βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
ComfyUI Node

Audio Feature Visualizer ***BETA*** βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜

Burn waveforms, spectrograms and MFCCs onto your video (beta)

By ryanontheinsideΒ·Created 2 years agoΒ·Updated 5 months agoΒ· 852
Audio Feature Visualizer ***BETA*** βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
  • audio
  • video_frames
  • IMAGE
β—„visualization_typeβ–Ύβ–Ί
β—„frame_rate30.0β–Ί
β—„x_axisβ–Ύβ–Ί
β—„y_axisβ–Ύβ–Ί
β—„cmapβ–Ύβ–Ί
β—„visualizerβ–Ύβ–Ί

Most audio-analysis nodes exist to extract a signal that quietly drives something else. This one is the opposite: it renders the audio analysis itself directly onto your video frames, for when you actually want the visualization visible - music-video-style waveforms, spectrograms, or one of the fancier audio-DSP plots layered right over the footage.

Marked BETA in its display name, from ryanontheinside's audio tooling.

How it works

It requires both an audio clip and video frames together, since it's overlaying analysis onto existing footage rather than generating a standalone graphic. visualization_type picks what gets drawn: waveform and spectrogram are the familiar ones; mfcc is a compact timbre "fingerprint" often used for speech and instrument recognition; chroma tracks pitch-class/harmony energy, useful for visualizing key and chord changes; tonnetz is a related tonal-relationship space; spectral_centroid plots a single line tracking the sound's "brightness" - roughly where its energy sits in the frequency range.

The inputs and outputs that matter

  • audio and video_frames - both required, since this overlays onto existing frames.
  • visualization_type - the main creative decision (waveform / spectrogram / mfcc / chroma / tonnetz / spectral_centroid).
  • frame_rate - sync this to your actual video's frame rate or the overlay will drift out of time with the footage.
  • x_axis / y_axis - each has its own set of scale options (time / mel / log / frames / off / chroma for x; similar plus linear / tonnetz for y), and which combination makes sense depends on your chosen visualization_type.
  • cmap - 11 standard colormap choices (magma, inferno, viridis, and others), purely cosmetic.
  • visualizer - pygame or matplotlib backend; matplotlib tends to look more configurable but renders slower, pygame is faster.

Output is an IMAGE.

How to install it

Via ComfyUI Manager, search RyanOnTheInside. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside

Audio feature extraction like this typically leans on librosa under the hood - if ComfyUI Manager didn't pull dependencies automatically, run pip install -r requirements.txt from inside the cloned folder and restart.

Common issues & troubleshooting

It's beta - expect the roughest edges of the pack here. If something looks glitchy or a combination of settings produces odd output, you're not necessarily doing anything wrong.

Axis options that don't match your visualization type. Not every x_axis/y_axis pairing makes sense for every visualization_type - start from sensible pairings (time/linear for a waveform, mel/log for a spectrogram) and adjust from there rather than mixing options at random.

Overlay drifts out of sync with the audio. Double-check frame_rate matches your actual video sequence's frame rate - a mismatch here is the most common reason the visualization stops lining up with what's actually playing.

Import errors on first launch. If ComfyUI fails to load this node specifically, it's usually a missing Python dependency (librosa, matplotlib, or pygame) rather than a broken install - install the pack's requirements.txt and restart.

CategoryRyanOnTheInside/Audio/Filters

Inputs (8)

NameTypeDefaultDescription
audioAUDIOInput audio to visualize
video_framesIMAGEVideo frames to overlay visualization on
visualization_typeCOMBOType of visualization (waveform, spectrogram, mfcc, chroma, tonnetz, spectral_centroid)
frame_rateFLOAT30.00.1–120Frame rate of the visualization (0.1 to 120 fps)
x_axisCOMBOX-axis scale type
y_axisCOMBOY-axis scale type
cmapCOMBOColor map for the visualization
visualizerCOMBOVisualization backend to use (pygame or matplotlib)

Outputs (1)

NameTypeDescription
IMAGEIMAGEβ€”