DiffSynth: MiniMax Music 3 Inference
MiniMax Music 3 Inference — prompt the arrangement, tag the lyrics
- pipe
- audio
Local music generation has two shapes. There's ACE-Step, the open answer that everyone points at, and there's the API camp where Suno still wins outright. MiniMax Music 3 sits in between: the closed Hailuo lab's music line, released as weights you can run, in a pack whose whole point is that you don't need a subscription to try it.
This node is the whole interface. Four required inputs, two optional ones, one audio output. How you fill them decides almost everything.
The required inputs
pipe from the loader, prompt, lyrics, seed, and num_inference_steps (default 30).
Two of those are text fields, and the difference between them is the entire craft of this node:
prompt is the production brief. The pack's own template shows the format that works - genre, tempo, key, mood, then voice and arrangement, in that order:
Genre: acoustic pop. BPM: 96. Key: C major. Warm and intimate, building gently
into the chorus. Vocals: soft female lead, close and breathy, light stacked
harmonies in the chorus. Arrangement: fingerpicked guitar and soft piano;
brushed drums and upright bass enter in the chorus.
Note how much of it is arrangement, not adjectives. "Sad song" gets you nothing. "Slow build, brushed drums entering at the chorus, upright bass" gets you a song that sounds like the one in your head. Treat it like a note to a session musician.
lyrics is the words, with section tags. The template's version starts with [verse] and carries on with structure markers rather than one undifferentiated block. If you leave it as the default blank space you're asking for an instrumental, which the model will generally attempt.
The optional inputs
max_audio_duration - a float in seconds, default 60, and it's a real ceiling, not a suggestion. If your lyric sheet needs three minutes, this is where you say so. The field is deliberately generous at the top end; the practical limit is your patience for a long diffusion run.
cfg_scale - default 1.7, which is a noticeably non-default-looking number. It's the guidance scale this pipeline was tuned at: low enough to avoid the over-contrasted, hollow sound CFG pushes on distilled audio models, high enough to keep prompt adherence meaningful. Unlike the guidance-distilled image models at CFG 1, this one does listen to cfg_scale, so small moves in either direction are worth trying if the vocals sit wrong in the mix.
Output is a single audio, at the sample rate this pipeline declares for itself - 44100 for Music 3.
Install
ComfyUI Manager → DiffSynth-ComfyUI → install → restart. Or:
pip install git+https://github.com/modelscope/DiffSynth-Studio.git
cd ComfyUI/custom_nodes && git clone https://github.com/modelscope/DiffSynth-ComfyUI.git
Load general_minimax_music3 from the Template tab. Wirings and formats both come free that way.
Where people get burned
Writing a lyric, expecting a song. Verse and chorus tags make a real difference to structure. A wall of text tends to produce a wall of singing.
Using a prompt like a caption. This is closer to a producer's brief than to an image prompt. Specificity about instruments and dynamics pays off; mood words alone do not.
Asking for six minutes and wondering why it's slow. max_audio_duration is linear in run time. Start at 30 seconds, get the arrangement right, then extend.
Judging it against Suno on vocals. It won't win that comparison, and it isn't trying to. It wins on being local, free per run, and endlessly re-rollable - which for sketching and iterating on a hook is worth more than a polished vocal nobody asked for.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| pipe | DIFFSYNTH_PIPE | — | |
| prompt | STRING | — | |
| lyrics | STRING | — | |
| seed | INT | 00–4294967295 | — |
| num_inference_steps | INT | 301–200 | — |
| max_audio_durationopt | FLOAT | 600–10000 | — |
| cfg_scaleopt | FLOAT | 1.70–10000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |