Suno v6 · Text to Audio
Two songs per run, and lyrics are optional
- image_urls
- reference_video_urls
- reference_audio_urls
- audio
- task id
Song generation is the one audio job where the API still clearly wins. Local music models got good enough to be interesting - ACE-Step is genuinely the open Suno, and it runs on a 4 GB card - but the audio-generation essay is honest about where it lands: quality approaching Suno v4.5/v5, with vocals and lyrics as the weak suit. If you need a song that sounds like a song, you call Suno.
Suno v6 · Text to Audio is that call, from inside ComfyUI, for 10.8 credits a run. Which buys you two versions, not one - the variety dial is how different they are from each other.
What the node does
It wraps suno/v6/text-to-audio on PopNow's servers. Nothing runs locally: text goes up, AUDIO comes back as an ordinary ComfyUI audio value, so Save Audio writes it or anything downstream that takes audio takes it. No GPU, no weights, no dependency on a music node pack - and it's the only route to a Suno-quality track from inside your graph.
Results arrive as one audio batch padded to the length of the longest. Save Audio writes one file each, which is what you want here, because there are two of them.
The two ways to write a song
The prompt/lyrics/generate_lyrics triangle is the whole node, and getting it right is most of the work.
You write the lyrics. Put your words in lyrics, put the sound in prompt (genre, mood, tempo, instruments, voice - up to 1,000 characters), and turn generate_lyrics off. The sections are shaped by bracketed tags like [Verse], [Chorus], [Bridge] - and per the tooltip, those tags shape the song and are not sung. That's the trick to a chorus that actually arrives where you want it.
Suno writes the lyrics. Leave lyrics empty, leave generate_lyrics on, and the model writes words from your prompt. This is the mode for "I need a 90-second indie-folk track about a dog who runs a bakery" and it's better than you'd expect. title only applies once there are lyrics or an instrumental - otherwise the model names the song itself.
Instrumental. instrumental on, no vocals at all. title applies; vocal_gender doesn't.
vocal_gender forces female or male lead and only applies with lyrics. negative_prompt is styles or elements to keep out - useful for the "no autotune, no EDM drop" notes.
The dials worth understanding
style_weight (0 to 1) is how hard the track sticks to the style you described. weirdness is how experimental it may get - 0 conventional, 1 unusual. variety is the interesting one: 0 off, 1 normal (the model default), 2 high, 3 extra, 4 max - it controls how different the two versions in a run are from each other. Vary it to audition two directions at once; set it to 0 when you want two takes of the same idea.
All four default to -1, which the pack leaves out of the request so the model decides. That's a nice touch - -1 isn't a magic value, it means "don't send this field at all".
audio_weight only matters if you're using a persona: it's how strongly the persona's audio shapes the result, vocals only. persona_id takes an existing Suno persona's ID and persona_model says whether that's a style_persona or a voice_persona.
The mood inputs nobody notices
image_urls (up to five), reference_video_urls (one, up to 100 MB and 241 seconds) and reference_audio_urls (one clip, 6 seconds to 30 minutes) are autogrow sockets that only apply when the model writes the lyrics. They're a steer for the writing, not a style transfer. Five stills of neon rain and a late-night city will push the generated lyrics somewhere; the style still comes from prompt.
Install
Manager → search PopNow → Install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui
Then a key from popnow.ai/api/console/keys in Settings > PopNow, or POPNOW_API_KEY=sk-popnow-... python main.py on a server. Zero dependencies, no model downloads.
Where people get burned
Lyrics and the [Chorus] tag order. Section tags in the wrong places give you a song that builds to nothing. Structure it like a songwriter, not like a list of lines.
No seed field. Suno runs aren't seed-reproducible here, so you can't re-roll a good one and get the same song back - save the audio when you like it, and note the task id, which is the only handle you get on a run afterwards.
10.8 credits a run, no cheap retries. That's about eleven cents for two songs. Fine for a project, noticeable when you're auditioning twenty briefs. Set Max credits per run in Settings > PopNow before a long session, and remember a cancelled run keeps going and is charged if it succeeds.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Describe the song: genre, mood, tempo, instruments and voice. With lyrics or an instrumental this is the style (up to 1,000 characters); with no lyrics the model writes the words from it. | |
| lyrics | STRING | Words to sing, sung in order. Section tags such as [Verse], [Chorus] and [Bridge] shape the song and are not sung. | |
| generate_lyrics | BOOLEAN | true | Let the model write the lyrics from the prompt. Only applies when lyrics is empty and instrumental is off. |
| instrumental | BOOLEAN | false | Generate music with no vocals. |
| title | STRING | Song title (metadata, not sung). Applies with lyrics or an instrumental; otherwise the model names the song. | |
| negative_prompt | STRING | Styles or elements to keep out of the song. | |
| vocal_gender | COMBO | model default | Make a female or male lead vocal more likely. Applies with lyrics. |
| style_weight | FLOAT | -1.00-1–1 | How closely to follow the style in the prompt, from 0 to 1. -1 leaves it to the model. |
| weirdness | FLOAT | -1.00-1–1 | How experimental the song may get, from 0 (conventional) to 1 (unusual). -1 leaves it to the model. |
| audio_weight | FLOAT | -1.00-1–1 | How strongly a persona's audio shapes the result, from 0 to 1. Songs with vocals only. -1 leaves it to the model. |
| variety | INT | -1-1–4 | How different the two versions are from each other: 0 off, 1 normal (the model default), 2 high, 3 extra, 4 max. -1 leaves it to the model. |
| persona_id | STRING | ID of an existing Suno persona to reuse its style or voice. | |
| persona_model | COMBO | model default | Whether persona_id is a style persona or a voice persona. |
| image_urlsopt | COMFY_AUTOGROW_V3 | Up to 5 mood images (JPEG, PNG or WebP, 10 MB each). Only when the model writes the lyrics. | |
| reference_video_urlsopt | COMFY_AUTOGROW_V3 | One reference video (MP4 or WebM, up to 100 MB and 241 seconds). Only when the model writes the lyrics. | |
| reference_audio_urlsopt | COMFY_AUTOGROW_V3 | One reference audio clip (MP3 or WAV, 6 seconds to 30 minutes). Only when the model writes the lyrics. |
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. |