MiniMax Music
A music generator hiding inside a VLM pack
- wave_form
- sample_rate
- audio
Yes, it's odd that a vision-language node pack has a music generator in it. And yes, you'll use it anyway, because MiniMax's music models are genuinely good at turning a text prompt into a full song, and having that inside ComfyUI means your audio pipeline stays in one graph. This node calls MiniMax's music API - it generates tracks from music-3.0 / music-2.6 (plus free tiers of each), or does voice/cover-style generation with music-cover if you feed it an existing song.
The name is the one trap to watch: "MiniMax" here is the Chinese AI company, not anything to do with Min-Max text processing in your workflow. And unlike the pack's local nodes, this one does call a real API, so it needs a real key: MINIMAX_API_KEY, read only from the ComfyUI server environment. No key in the workflow, ever. If you haven't set it, the node raises a clear error telling you to set it and restart.
The mechanism is straightforward - it builds a request to one of two fixed regional endpoints and decodes the response into playable audio. You pick region (global_en for the international API, cn_zh for the China endpoint), a model, and then the creative inputs: prompt (what the music should sound like), lyrics (optional text to sing), is_instrumental to skip vocals, and lyrics_optimizer to have MiniMax clean up your lyrics before setting them. aigc_watermark is sent only to the cn_zh endpoint - it's an AI-content flag, so don't expect it to do anything on the global side. Output comes back either as a url or as hex-encoded bytes (output_format), and audio_format gives you mp3, wav, or raw pcm with your choice of sample_rate (up to 44100) and bitrate (up to 256 kbps).
For covers, you supply the source material through the optional audio_url or audio_base64 inputs and a cover_feature_id. stream toggles streaming responses, and timeout_seconds defaults to a generous 600 - music generation is slow, don't shrink it.
The three outputs wire straight into the pack's audio tools: audio is a real AUDIO socket you can connect to Play Music or Save Audio nodes, wave_form is the visualization preview, and sample_rate is there so downstream nodes know what they're working with.
Installing it
No special install beyond the pack itself - ComfyUI Manager (search "ComfyUI VLM nodes"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/gokayfem/ComfyUI_VLM_nodes
python -m pip install -r ComfyUI/custom_nodes/ComfyUI_VLM_nodes/requirements.txt
Then set MINIMAX_API_KEY in the environment that launches ComfyUI and restart. The README points at the official global and China docs for account and content requirements - worth checking, because free tiers and content rules differ by region.
Gotchas
- Key not picked up → it's an env issue, not the node. Set it where ComfyUI is launched, then restart.
- Free tiers (
music-3.0-free) exist in the dropdown and are fine for testing, but expect slower/lower-quality output and rate limits. - The
cn_zhvsglobal_ensplit is real - pick the region that matches your account. Wrong region = auth or availability errors. - This node is marked as an output node, so it doesn't need a downstream consumer to execute, but you'll almost always want to connect
audioto a Play/Save node so you can actually hear your work.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| region | COMBO | global_en | 2 options: global_en, cn_zh |
| model | COMBO | music-3.0 | 6 options: music-3.0, music-2.6, music-3.0-free, music-2.6-free, music-cover, music-cover-free |
| prompt | STRING | — | |
| lyrics | STRING | — | |
| stream | BOOLEAN | false | — |
| output_format | COMBO | hex | 2 options: url, hex |
| audio_format | COMBO | mp3 | 3 options: mp3, wav, pcm |
| sample_rate | COMBO | 44100 | 4 options: 16000, 24000, 32000, 44100 |
| bitrate | COMBO | 256000 | 4 options: 32000, 64000, 128000, 256000 |
| lyrics_optimizer | BOOLEAN | false | — |
| is_instrumental | BOOLEAN | false | — |
| aigc_watermark | BOOLEAN | false | Sent only to the cn_zh endpoint. |
| audio_urlopt | STRING | — | |
| audio_base64opt | STRING | — | |
| cover_feature_idopt | STRING | — | |
| timeout_secondsopt | FLOAT | 600.001–1800 | — |
| use_system_proxyopt | BOOLEAN | false | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| wave_form | * | — |
| sample_rate | INT | — |
| audio | AUDIO | — |