MiniMax Music 3 — Director Musical Compacto
Turn \"sad synthwave about leaving\" into a production brief
- llm
- caption
- lyrics
- max_duration
- status
What it is
The music sibling of the compact H3 director, and the odd one out in this pack - the author's own README calls it "retained for later music testing." You give it a plain-language request; an LLM turns that into a proper production brief plus lyrics, sized to a duration you specify.
It does not generate audio. It writes the two things a music model wants: a caption (genre, groove, tempo, vocal character, and a section-by-section arrangement plan) and a set of lyrics, then hands both to whatever node actually renders sound. This is the same job the video director does for H3, just for MiniMax's music line - and it's the same shape of tool that ACE-Step users reach for when they want more than "dreamy synthwave, 120bpm".
How it works
Internally it's a composer brief. The system prompt tells the model to write a coherent composition rather than a list of adjectives, to respect any genre, tempo, instruments or language you specified, to make reasonable creative choices where you left gaps, and to keep the caption in the 250–450 word range. The response has to be strict JSON with exactly four keys - global_metadata, vocal_details, arrangement, lyrics - and the node then assembles the first three into a labelled caption while passing the lyrics through untouched.
The lyrics handling is the good part, and it's the reason to prefer this node over just asking a chatbot. It refuses to let the model rewrite your words. If you supply lyrics with [Verse]/[Chorus] tags, they come back exactly as written. If you supply unstructured lyrics, it compares the model's version against yours word by word, ignoring section tags, and if they don't match it errors out with "Music director changed supplied lyrics" - refusing to send altered lyrics downstream. For instrumental mode it goes further: lyrics are forced empty and the vocal direction is replaced with an explicit "no vocals, singing, humming, speech, choir or vocal samples" line, and the instruments carry all melodic roles.
Inputs and outputs
llm- required, sameLLMMODELtype as the H3 director's provider input.request- the plain-language brief. Style, emotion, voice, instruments, language. Empty → error.lyrics- optional. Empty means "write me original lyrics"; text means "keep my words and my structure."instrumental- overrides everything vocal.max_duration- 1 to 300 seconds, default 60. The system prompt is explicit that this is an upper bound, not a promise of exact timing.seed,max_tokens(3072),temperature(0.65, up to 2).
Outputs: caption (the production brief, section-labelled), lyrics (yours or newly written), max_duration (a straight passthrough so your generation node stays in sync with what the brief was written for), and status - a one-line human report like "Instrumental: letra ignorada; sin voces." or "Letra del usuario conservada."
Wire caption to your music node's caption/style field, lyrics to its lyrics field, max_duration to its duration input, and status to a preview text node so you can see at a glance whether you got instrumental output or your own words back.
Install and wiring
cd ComfyUI/custom_nodes
git clone https://github.com/elgalardi/ComfyUI-VisionPromptAssistant
# restart; or ComfyUI Manager → "Vision Prompt Assistant"
No dependencies, no model downloads, ComfyUI 0.30+. Provider first, though: it needs an LLMMODEL, so drop in one of the pack's loaders (OpenRouter, Ollama, chat API, or local Qwen3-VL) and connect llm_model → llm.
Common issues
The error messages and the UI speak Spanish. The display name is "MiniMax Music 3 - Director Musical Compacto", two tooltips are Spanish, and so are the status strings and the empty-request error ("Escribe una petición musical antes de ejecutar el director."). The caption and lyrics it produces are English production direction and your chosen language respectively - it's only the surrounding chatter that's localized.
"Music director response was truncated." The model hit max_tokens mid-answer. Raise max_tokens or shorten the request.
A lyrics mismatch error. You supplied lyrics, the model paraphrased them, and the node refused. Add section tags to your lyrics ([Intro], [Verse], [Chorus]) and they'll be returned verbatim; unstructured lyrics are the case that gets compared word for word. This is a guardrail, not a bug.
The caption doesn't fit your generator. Be realistic about what you're holding: this is a brief written for MiniMax Music 3, with Global Metadata: / Vocal Details: / Arrangement: labels. ACE-Step or Stable Audio will take the text, but check what their prompt field actually expects before wiring it blind. And there is no independent community track record for this node or for MiniMax Music 3 in general - the lab's music line has historically been its least documented, and essentially nobody in the public ComfyUI threads is running this path yet. Treat it as a well-built prompt front-end with a thin evidence base, which is roughly how its own author labels it.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| llm | LLMMODEL | — | |
| request | STRING | Petición musical simple: estilo, emoción, voz, instrumentos e idioma. | |
| lyrics | STRING | Letra opcional. Vacía: crea letra original. Con texto: conserva tus palabras y estructura. | |
| instrumental | BOOLEAN | false | — |
| max_duration | FLOAT | 601–300 | — |
| seed | INT | 00–18446744073709550000 | — |
| max_tokens | INT | 3072256–8192 | — |
| temperature | FLOAT | 0.650–2 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| caption | STRING | — |
| lyrics | STRING | — |
| max_duration | FLOAT | — |
| status | STRING | — |