MiniMax Music 3.0 · Text to Music
A Finished Song for Eighteen Cents, Vocals Included
- audio
- task id
Song generation is the job the open ecosystem never really won. The KB's audio survey says it plainly: local closed the cloning gap and the music gap, but the API still takes the two jobs where reliability matters most, and best-in-class song generation is one of them. This node is the honest version of that trade - a style prompt in, a stereo MP3 with vocals and backing out, $0.18 per run.
What it does
MiniMax Music 3.0 is the song-generation model from the lab behind Hailuo video and the MiniMax Speech line. Give it a style brief and lyrics and you get a finished arrangement; leave the lyrics empty with generate_lyrics on and it writes them for you. Songs ran about one to four minutes in testing, which is a real song rather than a loop.
For $0.18 a shot, the sensible way to use it is iteratively: you're generating options, not a finished master. Which is exactly how it differs from the local route. You could run ACE-Step for free on your own card and iterate forever, and plenty of people do; you'd be trading that for setup, VRAM and a quality ceiling. When you just want a chorus for a video, the metered call is not a bad deal.
The inputs that matter
- prompt (required) - the style brief. Genre, mood, tempo, instruments, kind of voice. This is the arrangement knob; don't waste it on a genre word.
- lyrics - one line per row. Section tags on their own rows -
[Verse],[Chorus],[Bridge]- shape the structure, which is the single most useful trick on this node. Lyrics you send are sung as written; the model doesn't tidy them up. - generate_lyrics - on by default, and only does anything when lyrics is empty. If you've written your own, this is inert.
- instrumental - off by default. Turn it on for music with no vocals; lyrics aren't needed then.
- bitrate (default 256 kbps) and sample_rate (default 44100) - MP3 output settings. Most people never touch them.
Outputs are audio and task id. The audio output is a ComfyUI AUDIO, so a Save Audio node writes it. The node's own tooltip warns that several results can come back as a batch, in which case Save Audio writes one file per result - check your output folder before assuming a failed second run.
How this pack runs it
Inputs are generated from the model's published schema, so the widgets are exactly the API's parameters. On Run the node takes a quote, creates a task with an idempotency key (so a retried request can't bill you twice), polls while reporting progress on the node, downloads the MP3 into an audio batch and prints the final charge. There are no model files to fetch; nothing runs on your machine.
Installing it
ComfyUI Manager → SpicyAPI → install → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi
Then restart ComfyUI, open Settings > SpicyAPI, paste a key from spicyapi.ai/console/keys, and restart once so the node list is rebuilt from your account catalogue. Nothing else to install: the pack ships no Python dependencies and uses ComfyUI's own aiohttp, torch and PyAV. A headless install can use SPICY_API_KEY instead of the settings field.
What to watch for
Each run is a flat $0.18, and a "one more variation" session gets to five dollars faster than you'd think - set Max cost per run in Settings > SpicyAPI and the node will refuse anything above your ceiling before a task is created. There's no seed on this node, so re-running gives you a different song rather than a repeat; queue deliberately. If you cancel mid-generation, the job keeps running server-side, is charged if it completes, and the result is available in your console for up to 14 days. And a content_rejected result means the model declined - nothing charged, and nothing you can do about it from the node side.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Style brief for the song: genre, mood, tempo, instruments and the kind of voice. The words to sing go in lyrics. | |
| lyrics | STRING | Words to sing, one line per row. Section tags such as [Verse], [Chorus] and [Bridge] on their own rows shape the arrangement. | |
| generate_lyrics | BOOLEAN | true | Write lyrics from the prompt when lyrics is empty. Lyrics you send are sung as written. |
| instrumental | BOOLEAN | false | Generate music with no vocals; lyrics are not needed. |
| bitrate | COMBO | 256 kbps | MP3 bitrate in bits per second. |
| sample_rate | COMBO | 44100 | Sample rate in Hz. |
| seed | INT | 00–2147483647 | This model takes no seed, so the number is never sent. Changing it makes ComfyUI run the node again: set 'control after generate' to randomize for a new result on every run; every run is billed. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | Several results come back as a batch; Save Audio writes one file each. |
| task id | STRING | The SpicyAPI task id, for the console logs or support. |