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

Generate Music · V5

The legacy Suno tier, and when it's still the right pick

By felipederosilva·Created about a month ago·Updated a day ago· 3
Generate Music · V5
  • 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►

KIE's own documentation calls V5 discontinued. So why does this node exist, and why would you touch it?

Two reasons, both honest. First, reproducibility: if you generated something on V5 last year and you want more of it, "use the newer model" is not an option - the newer model is a different voice. Second, this node is what an existing workflow already points at. KIE keeps the tier callable, the pack generates a node for every model version it finds, and so you get a node named Generate Music · V5 sitting next to the V5.5 and V6 ones. For anything new, use the V6 node. For keeping old work alive, this is it.

The wider context is unchanged: local music (ACE-Step) is where you go for free instrumental work and experimentation, the API is where you go when vocals need to hold up. Every call costs credits and leaves the machine.

How it works

The pack generates its node classes from KIE's official API documentation at startup, one node per documented model version, so V5 is baked into this class - there's no model dropdown to accidentally change, and no way to upgrade the tier by editing a widget. The node builds the documented request body, submits it to KIE's task endpoint (envelope model ai-music-api/generate, inner model V5), polls KIE's record-info endpoint every couple of seconds with backoff, then downloads the resulting audio and returns it as a ComfyUI AUDIO. Failures raise with the task id and the provider's message.

The inputs that matter

Three required, and they set the mode:

  • custom_mode - default true for detailed control, false for simplified.
  • instrumental - default true. Per the docs: in custom mode with this true, only style and title are required; with it false, style, title and prompt are required and prompt is used as exact lyrics.
  • prompt - exact lyrics in custom mode, a loose creative brief in non-custom mode.

Optional, and mostly custom-mode-only: style (this tier's docs cap it at 1000 characters), title (80 characters), negative_tags, vocal_gender, style_weight, weirdness_constraint, audio_weight, persona_id / persona_model, lyrics (takes priority over prompt), variety (0–4), plus the reference sockets image_urls (IMAGE), audio_1/2/3 and video_1/2/3 - the pack uploads those media inputs itself, which is why there's no URL plumbing in sight.

One version-specific caveat worth stating plainly: the duration widget is present on this node, but the docs only bless it for V5.5, V6, V6_MINI and V6_WILD. On the V5 node it's documented as not applicable. Leave it alone and let the model decide the length.

Outputs: audio, url, all_urls_json (generation usually returns more than one track - this is where the full set lives), task_id, raw_json, credits_consumed, credits_left. The two credit floats are also rendered on the node after a run, which is the cheap way to see what a tier costs before you commit a session to it.

A trap the pack handles for you

If you connect an IMAGE to image_urls and leave custom_mode at its default, KIE rejects the request - but only after your file has been uploaded. The pack catches this: on Generate Music it forces non-custom mode locally, strips the fields that are only valid in custom mode (duration, style, title, negative_tags, the weight/vocal fields, persona_id, instrumental), and logs what it removed. Useful, but it means the payload isn't literally what your widgets say. Watch the console.

Installing

ComfyUI Manager, search "KIE Nodes Next". The README describes the registry listing as prepared rather than shipped, so if Manager has nothing:

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

Restart and set the key once at Settings → KIE.ai Nodes Next → Connection. It's validated before it replaces a working key, only a masked fingerprint reaches the frontend, and KIE_API_KEY overrides it for headless installs. Four small dependencies, no torch, no model files.

Where people get burned

  • Expecting modern features on a discontinued tier. duration doesn't apply here, and the tier's character is what it is.
  • Mode mismatch - custom mode plus instrumental true plus lyrics gets you an instrumental. Read the matrix.
  • No key configured raises an explicit error pointing at the settings page.
  • Mixed-release installs are refused at import. Version and generated-node build must agree; if they don't, delete the folder and reinstall.
  • Two results per call. audio is the first; the rest are in all_urls_json.

If you're maintaining an old workflow, keep this node exactly as it is and don't retune it - changing the tier changes the output, which defeats the point of using the old node at all.

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—