AUDIO Get Genres @ vrch.ai
Ask ComfyUI what genre a track actually is
- audio
- audio
- genres
The AUDIO Get Genres @ vrch.ai node answers a surprisingly annoying question: what genre is this audio? You feed it an AUDIO input and it hands back a text list of the genres it detects. It's one of those nodes you don't think you need until you're building a realtime music-reactive workflow and realize you want the visuals to match the song - a jazz track and a dubstep track should not drive the same palette.
It's a classifier, not a fortune teller. Give it audio, get a comma-separated genres string back, and the confidence threshold decides how strict it is about what it's willing to call a genre.
How it works
The node runs the incoming AUDIO through a genre classifier and reports the labels that clear the bar. The threshold input (a float from 0 to 1, default 0.01) is the confidence cutoff - at the default nearly everything with a pulse gets labeled, which is useful for a broad read of what's in the track; crank it toward 1 and you'll only get the genres the model is genuinely sure about. When you're scoring a whole song, a low threshold plus a look at the full list usually tells you more than one forced answer.
Outputs worth knowing:
- genres (STRING) - the detected genre labels as text, ready to feed a prompt, a display node, or a text-to-speech line.
- audio (AUDIO) - the original audio passed straight through, so you can chain this node into a saver or a visualizer without rerouting your graph.
It's marked as an output node, so think of it as the end of a detection chain rather than something you build more graph on top of.
Installing it
Same pack install as every other vrch.ai node:
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" from ComfyUI Manager and restart ComfyUI. No models to download and no third-party dependencies for this one - it ships with the pack.
Practical notes
This node pairs naturally with the pack's audio pipeline: a Microphone Loader or Audio Recorder upstream, an Audio Visualizer or an emotion detector downstream if you want the full picture of a track. And since genres is plain text, it drops straight into a text node that feeds your sampler prompt - which is the trick that makes a "music-reactive" workflow actually feel reactive instead of random.
One expectation to keep straight: genres are a vibe, not a fingerprint. Two listeners will disagree about what a track "is," and so will this model. Use the labels as a directional hint for styling your generation, not as ground truth you'd defend in court.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | — | |
| threshold | FLOAT | 0.010–1 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| genres | STRING | — |