Nodes/ComfyUI Web Viewer/AUDIO Emotion Visualizer @ vrch.ai
ComfyUI Node

AUDIO Emotion Visualizer @ vrch.ai

Turn music moods into radar charts and word clouds

By VrchStudio·Created 2 years ago·Updated 22 days ago· 356
AUDIO Emotion Visualizer @ vrch.ai
  • raw_data
  • MOODS_RADAR_IMAGE
  • MOODS_WORDCLOUD_IMAGE
  • VALENCE_AROUSAL_IMAGE
image_width640
image_height480
background_color#111111
font_color#EFEFEF
font_sizemedium
radar_themepastel
radar_top_k6
radar_normalizefalse
radar_show_labelstrue
radar_show_valuestrue
wordcloud_themepastel
wordcloud_layoutsequential_flow
wordcloud_top_k12
wordcloud_use_opacitytrue
wordcloud_size_scalehigh
va_themeno_background
va_show_minor_gridlinestrue
va_show_mood_labelsfalse
va_show_axis_labelstrue
va_show_value_labelstrue
va_point_color#FFCC00
debugfalse

The AUDIO Emotion Visualizer @ vrch.ai is what makes the pack's emotion detection look like something. The Music to Emotion Detector scores a track and hands you RAW_DATA; this node takes that JSON and renders it as three actual images - a radar chart of the mood scores, a word cloud of the top moods, and a valence-arousal scatter plot. Wire the images into a Web Viewer and you've got a live "mood board" that redraws as the music changes.

That's the whole appeal in one sentence: it converts abstract model outputs into something you can look at, stream to a browser, or even feed back into a video pipeline. It's the display half of the pack's music emotion example workflow, and it doubles as a debugging tool - a radar chart tells you in one glance whether the detector is actually tracking the song or just staring at a flat line.

How it works

You feed raw_data - the JSON from the Music2Emotion Detector - in one side, and three IMAGE outputs come out the other:

  • MOODS_RADAR_IMAGE - mood scores plotted as a radar chart. radar_top_k (3–12) picks how many moods to show, radar_normalize scales them, and the toggles control whether labels and values are drawn.
  • MOODS_WORDCLOUD_IMAGE - the moods as a word cloud sized by score. wordcloud_top_k, wordcloud_size_scale, and a handful of layout options (center_spiral, concentric_rings, sequential_flow, …) control the look.
  • VALENCE_AROUSAL_IMAGE - the track's position in valence-arousal space. The va_ options tune the gridlines, axis labels, and the point color.

Then there's a long list of styling inputs: image_width/image_height, background_color, font_color, font_size, and a shared theme system (pastel, ocean, sunset, forest, neon, mono-blue, mono-gray) that applies to each chart independently - radar_theme, wordcloud_theme, va_theme. If the defaults feel like a default, this is one of those nodes where ten minutes of theme-swapping is genuinely fun. debug logs the render.

Installing it

Standard pack install:

cd ComfyUI/custom_nodes
git clone https://github.com/VrchStudio/comfyui-web-viewer
pip install -r comfyui-web-viewer/requirements.txt

Or install "ComfyUI Web Viewer" via ComfyUI Manager and restart. No models to fetch - but remember the upstream detector needs the optional Music2Emotion submodule, and without it there's no raw_data to visualize.

Practical notes

  • This node expects the Detector's JSON, not arbitrary audio data. Plugging a Mic Loader's RAW_DATA into it won't render anything meaningful - the field names won't match. Keep the chain Detector → Visualizer.
  • The images are plain IMAGE tensors, so they compose like any other image in ComfyUI - save them, upscale them, put them in a batch, or stream them through a Web Viewer for the realtime effect.
  • For a snappier live update, keep radar_top_k and wordcloud_top_k modest. At the max settings the charts take noticeably longer to redraw every generation cycle, which matters when your workflow is re-running on instant queue.
Categoryvrch.ai/audio

Inputs (23)

NameTypeDefaultDescription
raw_dataJSON
image_widthINT640256–2048
image_heightINT480256–2048
background_colorSTRING#111111
font_colorSTRING#EFEFEF
font_sizeCOMBOmedium5 options: extra small, small, medium, large, extra large
radar_themeCOMBOpastel7 options: pastel, ocean, sunset, forest, neon, mono-blue, +1
radar_top_kINT63–12
radar_normalizeBOOLEANfalse
radar_show_labelsBOOLEANtrue
radar_show_valuesBOOLEANtrue
wordcloud_themeCOMBOpastel7 options: pastel, ocean, sunset, forest, neon, mono-blue, +1
wordcloud_layoutCOMBOsequential_flow4 options: center_spiral, archimedean_spiral_desc, concentric_rings, sequential_flow
wordcloud_top_kINT123–64
wordcloud_use_opacityBOOLEANtrue
wordcloud_size_scaleCOMBOhigh3 options: low, medium, high
va_themeCOMBOno_background8 options: no_background, pastel, ocean, sunset, forest, neon, +2
va_show_minor_gridlinesBOOLEANtrue
va_show_mood_labelsBOOLEANfalse
va_show_axis_labelsBOOLEANtrue
va_show_value_labelsBOOLEANtrue
va_point_colorSTRING#FFCC00
debugBOOLEANfalse

Outputs (3)

NameTypeDescription
MOODS_RADAR_IMAGEIMAGE
MOODS_WORDCLOUD_IMAGEIMAGE
VALENCE_AROUSAL_IMAGEIMAGE