Generate Music · V6_WILD
Prompt-to-song when your genre isn't on the menu
- 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
What it is, and who it's for
KIE_Next_V6_WILD_3ead98e2 writes and performs a song from a prompt inside ComfyUI, running Suno's V6_WILD model over KIE.ai's API. KIE's description - "pushes creative boundaries for bolder, more distinctive musical expression" - is the pitch: this is the sibling to keep loaded when the safe version keeps handing you something generic.
Full disclosure, same as anywhere in this pack: nothing here runs on your machine. The compute is KIE's, the bill is your KIE credit balance, and the prompt leaves your box. What you get for that is the one job local open-weight music models haven't nailed - vocals and lyric phrasing - while keeping the result as a native ComfyUI audio object in the same graph as your video or image work.
How it works
The node assembles the request from the widgets, submits it to KIE's task queue and then polls for the result on its own - 2.5 seconds initially, backing off toward 15 - inside timeout_seconds (default 1200, up to 7200). On success the audio is downloaded and decoded into ComfyUI's AUDIO dict. V6_WILD rides inside the request payload while the outer envelope carries KIE's market model name; builds before v0.4.10 got that inverted, so update and restart if you're seeing model rejections.
Two booleans run the whole node
custom_mode (true by default) decides how much you control. On, style and title carry the song and the weight knobs matter. Off, prompt is a description and the model writes its own lyrics.
instrumental (true by default) then decides what's required. In custom mode: instrumental means only style and title are needed; with vocals on, you also need prompt, which is sung as written. In non-custom mode: instrumental needs style + prompt, and a vocal song needs style, prompt and lyrics - where lyrics is an attachment layered alongside the description in prompt, not a replacement for it.
There's an automatic fix worth knowing because it's the one place the pack edits your intent: image references are only accepted with custom mode off, so when the node sees image_urls connected it flips custom_mode to false locally, drops the fields that become invalid, and says so in the console. You don't get a provider-side failure after the upload.
Inputs that matter
prompt, style, title, negative_tags - the song description, genre, label and exclusion list. duration - 10–360 seconds, custom mode only. lyrics - explicit lyrics; [Verse]/[Chorus] style tags are the expected shape. variety - 0 to 4, and on WILD the top end genuinely means top end. style_weight, weirdness_constraint, audio_weight - 0.65 each; weirdness_constraint is the one to raise on this model, since it's already leaning that way. vocal_gender - a nudge, not a switch. persona_id and persona_model - a saved Suno style or voice persona, if you've made one.
Then the reference sockets, which are the reason this node is more than a text box: image_urls (a normal IMAGE socket, batch-friendly), audio_1, audio_2, audio_3, video_1, video_2, video_3. Connected media is uploaded to KIE automatically and substituted as URLs - so you can condition a generation on a reference track or a look without touching a file host.
Outputs
audio is the track as a native ComfyUI audio object. url is the primary result URL. all_urls_json is the full list - read it, because two takes come back and only the first reaches the socket. task_id is the job id, and raw_json is where the track id lives if you want to feed Extend Music afterwards. credits_consumed and credits_left report the receipt.
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. The dependency list is requests, Pillow, numpy, PyYAML - light, no model downloads, no GPU footprint. There's a one-click Windows installer in the repo's dist/ folder, and ComfyUI Manager support is the direction of travel (registry metadata ships under publisher felipeosilva), but a plain clone is the install that always works.
Paste your KIE.ai key once via Settings → KIE.ai Nodes Next → Connection. It's validated before replacing a stored key and only ever shown as a masked fingerprint; headless installs can set KIE_API_KEY instead, which takes priority.
Rough edges
A request with no usable inputs gets rejected upstream - custom mode wants at least style, lyrics or negative_tags; non-custom mode wants one of the references, style or lyrics. audio_weight does nothing on instrumental output. Timed-out jobs are usually still running, so poll task_id with KIE • Task Status before resubmitting. And explicit or aggressive lyric content can trip KIE's content filter, which is a failure with a reason in raw_json rather than a silent miss.
Inputs (24)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | A calm and relaxing piano track with soft melodies | A 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_mode | BOOLEAN | true | Determines whether advanced parameter customization is enabled. - If `true`: Allows detailed control - If `false`: Simplified mode |
| instrumental | BOOLEAN | true | Determines 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`). |
| styleopt | STRING | Classical | Music 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. |
| titleopt | STRING | Peaceful Piano Meditation | Title 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_tagsopt | STRING | Heavy Metal, Upbeat Drums | Music styles or traits to exclude from the generated audio. Optional. Use to avoid specific styles. |
| vocal_genderopt | COMBO | m | Vocal 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_weightopt | FLOAT | 0.650–1 | Only 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_constraintopt | FLOAT | 0.650–1 | Only available when Custom Mode (`custom_mode: true`) is enabled. Controls experimental/creative deviation. Optional. Range 0–1, up to 2 decimal places. |
| audio_weightopt | FLOAT | 0.650–1 | Only 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_idopt | STRING | persona_123 | Persona 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_modelopt | COMBO | style_persona | Persona model. Only available for V5 (Discontinued), V5.5 (Discontinued), V6, V6_MINI, and V6_WILD. |
| durationopt | FLOAT | 20.0010–360 | Audio duration. Optional; only valid when `custom_mode` is true and the model is V5_5 (Discontinued), V6, V6_MINI, or V6_WILD. |
| image_urlsopt | IMAGE | — | |
| varietyopt | FLOAT | 1.000–4 | Only 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 |
| lyricsopt | STRING | Lyrics 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_1opt | AUDIO | — | |
| audio_2opt | AUDIO | — | |
| audio_3opt | AUDIO | — | |
| video_1opt | VIDEO | — | |
| video_2opt | VIDEO | — | |
| video_3opt | VIDEO | — | |
| timeout_secondsopt | INT | 120030–7200 | — |
| callback_urlopt | STRING | Optional KIE callback URL. Leave empty for normal ComfyUI use. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| url | STRING | — |
| all_urls_json | STRING | — |
| task_id | STRING | — |
| raw_json | STRING | — |
| credits_consumed | FLOAT | — |
| credits_left | FLOAT | — |