Nodes/KIE.ai Nodes Next/Generate Music · V6_MINI
ComfyUI Node

Generate Music · V6_MINI

Generate Music · V6_MINI is the whole Suno prompt-to-song node, references included

By felipederosilva·Created about a month ago·Updated a day ago· 3
Generate Music · V6_MINI
  • image_urls
  • audio_1
  • audio_2
  • audio_3
  • video_1
  • video_2
  • video_3
  • audio
  • url
  • all_urls_json
  • task_id
  • raw_json
  • credits_consumed
  • credits_left
◄promptA calm and relaxing piano track with soft melodies►
◄custom_modetrue►
◄instrumentaltrue►
◄styleClassical►
◄titlePeaceful Piano Meditation►
◄negative_tagsHeavy Metal, Upbeat Drums►
◄vocal_genderm►
◄style_weight0.65►
◄weirdness_constraint0.65►
◄audio_weight0.65►
◄persona_idpersona_123►
◄persona_modelstyle_persona►
◄duration20.00►
◄variety1.00►
◄lyrics►
◄timeout_seconds1200►
◄callback_url►

The one you probably want first

If you're going to learn a single node from this family, learn this one. KIE_Next_V6_MINI_e5ffe3de is prompt-to-song on KIE's V6_MINI tier, and unlike its Cover/Extend/Add-Vocals siblings it doesn't need source audio - just a description, a style and a title, and it also accepts image, audio and video references as real ComfyUI sockets.

Where the other nodes in this pack shine is stitching one specific job onto audio you already have. This one is the workhorse underneath: a song from nothing, in a graph, so the output can flow straight into a video pipeline instead of living in a browser tab. That's the argument for API music nodes in the first place - generating the track is only half the job, and having it already inside ComfyUI as an AUDIO object is the other half. Local models cover a lot of this ground free; clean vocals and lyric phrasing are still the hosted models' advantage.

The mode matrix you have to understand

Two required booleans decide almost everything, and the tooltip lays it out:

  • custom_mode = true (the default) means you're in control: style and title carry the song, and the extra weights apply. instrumental then splits it - true needs only style and title; false additionally needs prompt, which is sung verbatim as your lyrics.
  • custom_mode = false is the simplified mode: prompt becomes a description and lyrics get written for you. Then instrumental true needs style + prompt, and false needs style, prompt and lyrics, where lyrics acts as an attachment alongside the description in prompt.

Most of the "why did it ignore my lyrics" and "why is my description being sung" confusion is just these two toggles disagreeing with your expectations. There's one automatic behaviour worth knowing: image references are only legal when custom mode is off, and the pack detects that combination and switches custom_mode to false for you locally, dropping the now-invalid custom-only fields before the request goes out. It prints a line about it rather than failing remotely, which is the right call.

The rest of the inputs

style, title, negative_tags - the genre, the label, and the exclusion list. duration - 10 to 360 seconds, and only valid in custom mode. persona_id + persona_model - apply a saved Suno style or voice persona. style_weight, weirdness_constraint, audio_weight, all 0.65 - how strictly the style holds, how experimental it gets, and how the audio features are weighted (that last one does nothing on vocal-free output, per the tooltip). variety - 0 to 4, from "same style twice" to "unreasonably varied." vocal_gender - a probability nudge only, in custom mode only.

And the references: image_urls takes a normal IMAGE socket (batches welcome), while audio_1/audio_2/audio_3 and video_1/video_2/video_3 each take one native audio or video input. Anything you connect gets uploaded to KIE automatically and swapped in as a URL - no copy-pasting links.

Outputs

audio - the finished track, native ComfyUI audio. url - the first result URL. all_urls_json - every URL in the response, and your route to the second take, since only the first reaches the socket. task_id - the job handle. raw_json - the full provider payload, which is where you look up the track id that Extend Music needs. credits_consumed and credits_left - the spend, also drawn on the node after the run.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
cd ComfyUI-KIE-Nodes-Next && pip install -r requirements.txt

Restart ComfyUI. Dependencies are requests, Pillow, numpy and PyYAML - no model files, nothing to download, zero VRAM. Windows users have the one-click installer in the repo's dist/ folder. ComfyUI Manager support is the pack's stated direction (registry metadata ships under publisher felipeosilva); the clone is the route that works today.

Then paste your KIE.ai API key once in Settings → KIE.ai Nodes Next → Connection - validated before it replaces a working key, shown only as a masked fingerprint. Servers can use KIE_API_KEY, which takes priority.

Failures worth expecting

The node waits for the job by polling, 2.5 seconds rising to about 15, until timeout_seconds (1200 by default) expires. If it times out, the task usually isn't dead - check the task_id with KIE • Wait for Task before resubmitting and paying for a second run. Provider failures surface with KIE's reason in raw_json; content-filter rejections on explicit lyrics are the common one. Empty-reference combinations get rejected upstream too: in non-custom mode you need at least one of the reference inputs, style, or lyrics, and in custom mode at least style, lyrics or negative tags.

CategoryKIE Next/Audio/Suno/Music Generation

Inputs (24)

NameTypeDefaultDescription
promptSTRINGA calm and relaxing piano track with soft melodiesA description of the desired audio content. Optional. - Custom mode (`custom_mode=true`): When provided, the prompt is used strictly as lyrics and sung in the generated track. Character limits by model: - V4: Maximum 3000 characters - V4_5, V4_5PLUS, V4_5ALL, V5_5, V5: Maximum 5000 characters - Non-custom mode (`custom_mode=false`): When provided, the prompt serves as the core idea. Lyrics are generated automatically based on it and do not strictly match the input. Maximum 3000 characters. `prompt` is not required. In non-custom mode, provide at least one of `image_urls`, `video_urls`, `audio_urls`, `style`, or `lyrics`. In custom mode, provide at least one of `style`, `lyrics`, or `negative_tags`. Generation is rejected if all related inputs are empty.
custom_modeBOOLEANtrueDetermines whether advanced parameter customization is enabled. - If `true`: Allows detailed control - If `false`: Simplified mode
instrumentalBOOLEANtrueDetermines whether the audio should be instrumental (no lyrics). - In Custom Mode (`custom_mode: true`): - If `true`: Only `style` and `title` are required. - If `false`: `style`, `title`, and `prompt` are required (`prompt` is used as the exact lyrics). - In Non-custom Mode (`custom_mode: false`): - If `true`: Only `style` and `prompt` are required. - If `false`: `style`, `prompt`, and `lyrics` are required (`lyrics` is used as a lyrics attachment and can be used together with the audio description in `prompt`).
styleoptSTRINGClassicalMusic style specification for the generated audio. - Character limits by model: - **V4** (Discontinued): Maximum 200 characters - **V4_5 and V4_5PLUS** (Discontinued): Maximum 1000 characters - **V4_5ALL** (Discontinued): Maximum 1000 characters - **V5_5 and V5** (Discontinued): Maximum 1000 characters - **V6, V6_MINI, and V6_WILD**: Maximum 1000 characters - Common examples: Jazz, Classical, Electronic, Pop, Rock, Hip-hop, etc.
titleoptSTRINGPeaceful Piano MeditationTitle for the generated music track. - Required in Custom Mode (`custom_mode: true`). - Max length: 80 characters. - Will be displayed in player interfaces and filenames.
negative_tagsoptSTRINGHeavy Metal, Upbeat DrumsMusic styles or traits to exclude from the generated audio. Optional. Use to avoid specific styles.
vocal_genderoptCOMBOmVocal gender preference. Optional. Use `m` for male and `f` for female. This parameter is only effective when `custom_mode` is true. In practice, it only increases probability and cannot guarantee male/female voice instructions are followed.
style_weightoptFLOAT0.650–1Only available when Custom Mode (`custom_mode: true`) is enabled. Strength of adherence to the specified style. Optional. Range 0–1, up to 2 decimal places.
weirdness_constraintoptFLOAT0.650–1Only available when Custom Mode (`custom_mode: true`) is enabled. Controls experimental/creative deviation. Optional. Range 0–1, up to 2 decimal places.
audio_weightoptFLOAT0.650–1Only available when Custom Mode (`custom_mode: true`) is enabled. Relative weight of audio features. Optional. Range 0–1, up to 2 decimal places. - `audio_weight` is not supported when there are no vocals
persona_idoptSTRINGpersona_123Persona ID or Voice ID to apply to the generated music. Optional. Use this to apply a specific persona style to your music generation. To generate a Persona ID, use the [Generate Persona](https://docs.kie.ai/suno-api/generate-persona) endpoint to create a personalized music Persona based on generated music. To generate a Voice ID, use the [Generate Voice](https://docs.kie.ai/suno-api/suno-voice-generate) endpoint.
persona_modeloptCOMBOstyle_personaPersona model. Only available for V5 (Discontinued), V5.5 (Discontinued), V6, V6_MINI, and V6_WILD.
durationoptFLOAT20.0010–360Audio duration. Optional; only valid when `custom_mode` is true and the model is V5_5 (Discontinued), V6, V6_MINI, or V6_WILD.
image_urlsoptIMAGE—
varietyoptFLOAT1.000–4Only available when Custom Mode (`custom_mode: true`) is enabled. Controls the diversity and stylistic variation of generated results. Optional. Range 0–4, integer, default 1. - **`0`**: off (exact style) — fully off, strictly the same style - **`1`**: normal (balanced variety) — default, balances stability and diversity - **`2`**: high (distinct styles) — produces results with clearly different styles - **`3`**: extra (bold exploration) — higher variation, encourages bold exploration of different styles - **`4`**: max (unreasonably varied) — maximum diversity; results may differ in style very significantly
lyricsoptSTRINGLyrics for the generated audio. Optional. - V6: Maximum 5000 characters. - When `custom_mode=true`, `lyrics` is used as lyrics first; if `lyrics` is not provided, `prompt` is used as lyrics. - When `custom_mode=false`, `lyrics` is used as a lyrics attachment and can be used together with the audio description in `prompt`.
audio_1optAUDIO—
audio_2optAUDIO—
audio_3optAUDIO—
video_1optVIDEO—
video_2optVIDEO—
video_3optVIDEO—
timeout_secondsoptINT120030–7200—
callback_urloptSTRINGOptional KIE callback URL. Leave empty for normal ComfyUI use.

Outputs (7)

NameTypeDescription
audioAUDIO—
urlSTRING—
all_urls_jsonSTRING—
task_idSTRING—
raw_jsonSTRING—
credits_consumedFLOAT—
credits_leftFLOAT—