Civitai MiniMax Music 3
MiniMax Music 3 in ComfyUI
- diffusion_model
- text_encoder
- vae
- loras
- api_config
- blob
- workflow_id
- raw_json
Song generation is the one audio job where the hosted services still beat everything local - Suno made that the consensus years ago, and it hasn't moved. This node is that category inside ComfyUI: MiniMax's Music 3 model, a hosted music generator that takes a structured description and optional lyrics and returns an actual song, as a native AUDIO output in your graph. No audio model to download, no inference rig, just Buzz.
What it is
Civitai MiniMax Music 3 from civitai/civitai-comfy-nodes, under Civitai/Audio. It's a miniMaxMusic3 recipe on Civitai's orchestration API: MiniMax is the Shanghai lab behind Hailuo video and a full audio line, and Music 3 is their diffusion-based song generator. Mechanically it's a cloud job like every node in this pack - prompt components up, poll, audio back.
The interesting part is the architecture leaking through the inputs. Music 3 is a diffusion model with a MiniMax text encoder and an audio VAE - and the pack lets you swap all three with model selector overrides and even apply LoRAs to the pair. That's a lot of power you will almost never touch, but it's nice to know it's there.
The inputs that matter
caption- the required text, and the one that decides your result. The tooltip is the author's own advice and you should take it: for best results use Global Metadata, Vocal Details, and Arrangement sections. Structure your description and the model rewards you.lyrics- optional, and it accepts section markers like[Intro],[Verse],[Chorus],[Outro]. This is how you get an actual song structure instead of a wall of sound.seed- reproducible generation. Set it to lock a result, randomize to explore.max_duration- up to 360 seconds, default 120. The tooltip notes the model may end the song earlier when the lyric structure is complete - so don't be confused when a 3-minute budget returns a 2:10 track with a clean outro.steps(30),cfg(1.7),top_k(50) - diffusion sampling knobs. The 1.7 cfg default is low for a reason; these hosted defaults are tuned.diffusion_model/text_encoder/vae/loras- the override sockets. Leave them empty unless you know why you're changing them.
The outputs
blob- an AUDIO output. Wire it to a Preview Audio / Save Audio node and it behaves like any locally-decoded audio.workflow_idandraw_json- the pack standard;raw_jsonis where you'd check cost.
Installing it
ComfyUI Manager → Civitai Comfy Nodes → Install → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/civitai/civitai-comfy-nodes.git
pip install -r civitai-comfy-nodes/requirements.txt
requests + python-socketio; the audio decoding uses PyAV, which ships inside ComfyUI.
Gotchas
- Credentials and Buzz, per song. Music generation is metered, and songs aren't the cheapest thing on the roster.
raw_jsonshows the run cost. - A blank caption is the #1 way to get garbage. This isn't a prompt-refinement model; give it the Global/Vocal/Arrangement structure or accept whatever it guesses.
- The caption and lyrics are separate inputs - don't jam the lyrics into the caption and leave the lyrics field empty. The model reads structure from the lyrics field specifically.
- Credential order - Civitai Auth node →
CIVITAI_API_TOKEN→ stored OAuth from the sidebar. - Expect a real song back, not a demo loop, but treat the mix as a starting point - hosted music is genuinely good now, and still not a finished master.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| caption | STRING | Structured music description. For best results use Global Metadata, Vocal Details, and Arrangement sections. | |
| lyrics | STRING | Lyrics with section markers such as [Intro], [Verse], [Chorus], and [Outro]. | |
| seed | INT | 00–4294967295 | Random seed for reproducible generation. |
| max_durationopt | FLOAT | 120.000.03999999910593033–360 | Maximum generated song duration in seconds. The model may end the song earlier when the requested lyric structure is complete. |
| stepsopt | INT | 301–100 | Number of diffusion sampling steps. |
| cfgopt | FLOAT | 1.700–100 | Classifier-free guidance scale used by both text encoding and sampling. |
| top_kopt | INT | 501–16384 | Top-k sampling limit used by the MiniMax music text encoder. |
| diffusion_modelopt | CIVITAI_AIR | Optional diffusion model override. | |
| text_encoderopt | CIVITAI_AIR | Optional MiniMax text encoder override. | |
| vaeopt | CIVITAI_AIR | Optional audio VAE override. | |
| lorasopt | CIVITAI_LORAS | Optional LoRAs to apply to both the diffusion model and MiniMax text encoder. Compatibility with the selected base resources is the caller's responsibility. | |
| api_configopt | CIVITAI_CONFIG | Optional Civitai Auth connection; defaults to CIVITAI_API_TOKEN or stored OAuth login. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| blob | AUDIO | — |
| workflow_id | STRING | — |
| raw_json | STRING | — |