MiniMax Music 3.0 · Text to Audio
A finished stereo song from one node
- audio
- task id
Music generation in ComfyUI has a local answer - ACE-Step runs on surprisingly small GPUs, and it is genuinely good at instrumentals - but vocals are where it and every open model still struggle. If the thing you need is a chorus with actual singing on it, that's the gap this node fills. It's a hosted song generator wired into your graph, priced at 27 credits ($0.27) per run.
What it is
PopNow_minimax_music_3_0_text_to_audio calls MiniMax Music 3.0 through the PopNow pack and hands back a ComfyUI AUDIO - a finished stereo track you can save or feed into another node. MiniMax is the Shanghai lab behind Hailuo video; music and speech sit in the same generation line, and the company has been pointing its voice models at ElevenLabs-class quality for a while.
No model is downloaded, no GPU is used, and the output isn't stemming out of a diffusion sampler - it's one request, one rendered song. Billing is per run rather than per second, so a three-minute track and a thirty-second jingle cost the same. That's a nudge to ask for the whole song.
How it works
Two text fields do all the work: a style brief and the lyrics, plus three switches. PopNow generates the track and returns it; the node decodes it and returns a standard AUDIO dict (waveform, sample_rate) that Save Audio writes out. Several results come back as a batch, and Save Audio writes one file per item, so a multi-take run doesn't silently overwrite itself.
The inputs
prompt- the style brief: genre, mood, tempo, instruments, and the kind of voice. This is production direction, not lyrics. "Slow trip-hop, dusty drums, muted trumpet, breathy female vocal, 80 BPM" is the register it wants.lyrics- the words to sing, one line per row. Section tags like[Verse],[Chorus]and[Bridge]on their own rows shape the arrangement, which is the closest thing this has to a structure control. Up to 3000 characters.generate_lyrics- on by default. With it on andlyricsempty, the model writes words from your prompt. Lyrics you do send are sung as written.instrumental- no vocals, no lyrics needed. Tick this for score and background beds.bitrate- MP3 bitrate;256 kbpsis the default.sample_rate-44100by default.
Outputs are audio and task id. Wire audio to Save Audio; the task id is what you quote to support or look up in the API console.
Writing a brief that lands
The failure mode is a prompt that reads like a playlist entry: "epic cinematic orchestral, emotional, powerful". Useful briefs name a tempo, two or three instruments, a production texture and a vocal type. If you want a specific era or genre, say it plainly - the model handles "90s boom bap with vinyl crackle" better than "nostalgic hip hop vibes".
For the lyrics, keep the lines short enough to be sung in one breath, and use the section tags. Choruses that repeat verbatim with the same tag come back more consistent than free-form paragraphs. If you're scoring a video, generate instrumental first, then try the same brief with vocals - one of the two usually wins, and it isn't always the one you'd guess.
Install
Manager → search PopNow → Install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui
Restart, then add a key from popnow.ai/api/console/keys in Settings > PopNow, and restart again so the node list is built from your account. Dependencies: none beyond ComfyUI itself - the pack's pyproject.toml declares an empty list, and audio decoding uses the PyAV that ComfyUI already bundles.
Troubleshooting
PopNow 40201 is credits. PopNow content_rejected means the model declined the request - likely the lyrics - and failed runs are refunded. If the audio downloads but ComfyUI throws when you preview it, check the node actually produced an audio asset; the pack raises a clear "the result has no audio stream" error in that case rather than handing you a silent file.
One expectation to set: this is a song generator, not a stem splitter or a loop tool. You get a mixed stereo track. If you need stems for editing, that's a different workflow.
Inputs (6)
| 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. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | Several results come back as a batch; Save Audio writes one file each. |
| task id | STRING | The PopNow task id, for the API console logs or support. |