Music Flamingo Analysis
Music Flamingo Analysis
- audio
- description
Stop describing tracks by hand
This is the closest ComfyUI has to "JoyCaption, but for music." You drop in a song, and out comes a paragraph - genre, tempo, key, instrumentation, song structure. Behind it is NVIDIA's Music Flamingo, a real audio-captioning model (Audio Flamingo 3) that got wrapped up as a single, dead-simple ComfyUI node. One audio input, one text output, nothing else in the way. If you've ever wanted to generate a Suno prompt from a reference track, caption a pile of music for a training set, or just get a second opinion on what a song actually is, this is the node you reach for.
The author, C0untFloyd (CountFloyd_ on Reddit), built it after asking r/StableDiffusion for a local "joycaption for audio" and then announcing it as vibe-coded. Take that framing seriously: it's a thin but genuinely working wrapper around a strong model, not a polished ecosystem. It does one thing, and it does it fine.
How it works
Mechanically it's a chat model wearing an audio hat. The node takes the standard Comfy AUDIO dict from a plain Load Audio node (a waveform tensor plus a sample rate), writes it to a temporary WAV file with torchaudio, then builds a chat-template conversation containing your prompt text and that audio file. AutoProcessor tokenizes it, and AudioFlamingo3ForConditionalGeneration generates a response token by token - which is why a full song takes minutes, not milliseconds. Only the generated continuation is decoded and returned.
Two nice touches buried in the source: it loads in bfloat16 when your GPU supports it (falling back to fp16, then fp32), and it wires a real ComfyUI progress bar plus the Stop button into generation via a custom stopping criterion. So at least it's honest about how long it's taking.
The inputs and output that matter
Only four inputs, and you'll mostly touch two:
- audio - the
AUDIOoutput of a Load Audio node. Single clip only; the code rejects anything that isn't shape[1, C, T], so don't try to batch. - prompt - the question you're asking the model. The default asks for genre, tempo, key, instruments, and structure, and it's a sensible starting point. This is where you tune the output: ask for "a Suno-style prompt" or "production notes" and you'll get very different answers.
- max_new_tokens - 512 by default, up to 1024. Raise it if the description cuts off mid-thought.
- device -
gpuorcpu. Default gpu; CPU loads fp32 and crawls. Only use it to prove the model works on a cardless box.
The single output, description, is a plain STRING - wire it into a Show Text node to read it, or feed it onward if you're building prompts or logging captions.
Installing it
ComfyUI Manager (search "comfyui-musicflamingo"), or the manual way:
cd ComfyUI/custom_nodes
git clone https://github.com/C0untFloyd/comfyui-musicflamingo
Then restart ComfyUI. The catch is the first run: it downloads the NVIDIA weights, roughly 16 GB, and stashes them in ComfyUI/models/checkpoints/musicflamingo - not the standard Hugging Face cache, so it'll show up in your checkpoints folder. Go make a coffee.
Where people get burned
The real trap is the dependency: the pack requires transformers>=5.0.0, a very new release, because it imports AudioFlamingo3 straight out of transformers.models.audioflamingo3. If any of your other custom nodes pin an older transformers, that upgrade can silently break them - the classic Comfy dependency hell where fixing one node breaks two others. Worth knowing before you click install in Manager.
After that, set expectations: ~16 GB of disk, minutes per full-length track (the author quotes about five minutes on a 5060 Ti), and no batching. It's a captioning LLM for audio, not a fingerprinting tool. For anything real, use a GPU and give the prompt a moment to do its job.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | — | |
| prompt | STRING | Describe this track in full detail - tell me the genre, tempo, and key, then dive into the instruments and describe the song structure. | — |
| max_new_tokens | INT | 5121–1024 | — |
| device | COMBO | gpu | 2 options: gpu, cpu |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| description | STRING | — |