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

Generate Music · V5.5

The full text-to-song node, and its two modes

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

This is the node that makes songs. Text in, track out, at Suno's V5.5 tier. It's the busiest node in the Suno family - sixteen-ish widgets - and most of the confusion around it comes from one field: custom_mode.

If you've looked at local music generation, you know the trade already. ACE-Step runs on a 4GB card and is genuinely good at instrumental music; its vocals and lyrics are its weak spot. Suno's vocal quality is the reason people still pay per call. So the decision is roughly: local for instrumental beds and experimentation, this node when the song needs a singer that doesn't sound like a compromise. Every call spends KIE credits and sends your prompt off the machine.

How it works

The pack builds its node library from KIE's official API docs on startup, splitting one documentation page into one node per published model version. That's why there's no model dropdown here - the class is fixed to V5_5. The node assembles the documented request body, submits it to KIE's task endpoint (envelope model ai-music-api/generate, inner model V5_5), polls the record-info endpoint every couple of seconds with backoff until the task reports success, then downloads the first audio result and returns a native AUDIO. Failures raise with the task id and the provider's message.

The inputs that matter

Three are required, and together they define the mode you're in:

  • custom_mode - default true (detailed control). Set it false for simplified mode and the endpoint mostly ignores the detailed controls.
  • instrumental - default true (no lyrics). In custom mode with instrumental true, only style and title are needed; with it false, style, title and prompt are required, and prompt becomes the exact lyrics. Confusing? Yes. Read the tooltip on the node; it spells out the whole matrix.
  • prompt - in custom mode it's sung strictly as lyrics; in non-custom mode it's the core idea and the lyrics get written for you.

Then the controls that only bite in custom mode: style (up to 1000 characters on this tier), title (up to 80 characters), negative_tags, vocal_gender (m/f, and the docs admit it only nudges probability), style_weight, weirdness_constraint, audio_weight (docs: not supported when there are no vocals), persona_id / persona_model, duration (10–360s - valid here, since it's blessed for V5.5 and V6), variety (0–4), and lyrics (takes priority over prompt; 5000-character cap on the current tiers).

And the reference sockets, which are the best part of this node: image_urls takes an IMAGE (a style or mood reference), and audio_1/2/3 and video_1/2/3 take native AUDIO and VIDEO inputs - the pack uploads them for you and passes the URLs along. No URL pasting.

Outputs: audio, url, all_urls_json (the endpoint's own example response contains two tracks - this is where you keep both), task_id, raw_json, credits_consumed, credits_left.

The trap nobody reads about

Connect an IMAGE and leave custom_mode at its default and KIE rejects the request after uploading your file. The pack defends you: when it sees image references on Generate Music, it forces non-custom mode before submitting and drops the now-invalid custom-only fields (duration, style, title, negative_tags, vocal/weight fields, persona_id, instrumental), printing what it changed. Good behavior - but it means a graph that looks like it's set up one way submits another. Read the console line, don't be surprised by the result.

Installing

ComfyUI Manager, search "KIE Nodes Next"; the README describes registry publication as still-in-preparation, so the clone route is the reliable one:

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

Restart, then paste your key at Settings → KIE.ai Nodes Next → Connection - validated before it replaces a working key, masked fingerprint only, with KIE_API_KEY taking priority on headless machines. Four small dependencies, no torch, no checkpoints.

Where people get burned

  • Mode mismatch. Setting custom_mode true, leaving instrumental true, and filling in lyrics gets you no lyrics. The mode matrix is not decoration.
  • Two tracks per request. audio gives you the first one. To keep the other, read all_urls_json and pull the second URL through a download node.
  • No key configured produces a clear error naming the settings path.
  • Mixed-release installs are refused on startup - if the version and generated-node build disagree, delete the folder and reinstall.
  • V5.5 is discontinued in KIE's own docs. The V6 node is the current tier; this one is for reproducing what already exists. The one thing V5.5 still buys you over V5 is duration, which the V5 tier's docs don't support.

Start with the defaults, run one call, and listen. Then change exactly one knob per run. Music is the job where the API still wins - but it wins on iteration, and iteration is what costs credits.

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—