Upload And Extend Audio · V6_WILD
Upload And Extend Audio · V6_WILD for loops, jams and songs that refuse to end
- audio
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
Extending something you made yourself
KIE_Next_V6_WILD_33d8036a takes an audio URL you give it, asks Suno to keep the music going from a point you specify, and hands the result back as a ComfyUI audio object. It runs the V6_WILD model - KIE's description is "pushes creative boundaries for bolder, more distinctive musical expression" - which makes it the version to choose when the source is a texture, a jam or a loop and you'd rather the continuation went somewhere new than tidily matched.
This is the file-based counterpart to Extend Music, which extends by Suno track id. Both exist because the starting points differ: one is a file you own, the other a generation that only exists as a task result.
A local jam you recorded, fed in at bar 32 and returned as a full arrangement, is the use case that makes this worth wiring. So is building a longer bed for a video edit.
Under the hood
The node posts the extend request to KIE's task API and then waits for it, polling every 2.5 seconds and backing off toward 15 until it resolves or timeout_seconds (default 1200, up to 7200) runs out. The finished audio gets downloaded and decoded into ComfyUI's AUDIO dict. V6_WILD is carried inside the request body while the outer job envelope uses KIE's market model name for the endpoint - pre-0.4.10 builds sent the wrong one and failed on model grounds, so update and restart if that's what you're seeing.
Nothing runs locally. No model files, no VRAM, and the source audio leaves your machine for KIE's servers, which also means they have to be able to fetch it.
The fields that decide the outcome
upload_url- required, and it must be publicly fetchable. Local file → KIE • Upload Audio → use the returned URL. The documented ceiling is 8 minutes of source audio.prompt- a required widget that functions as lyrics for the new section. With WILD I'd write it as a direction rather than a script.continue_at- the second mark where the extension begins, default 60, and it has to fall inside your upload's duration. Land it slightly before the end of the original and the join tends to disappear; land it exactly at the end and you can hear it.instrumental- defaults to true, so a first run with no other changes gives you a wordless continuation. The docs also forbid passingprompt,lyricsorvocal_genderwhile it's true.style- keep it close to the source's genre; that's what the docs recommend, and with WILD already loose you don't want to compound the drift.negative_tags- the exclusion list, and its shipped default is "Relaxing Piano." That's the docs' example text, not a judgement about your upload. Change it.style_weight,weirdness_constraint,audio_weight- 0.65 each. WILD gives you more room here than MINI does:weirdness_constraintis the boldness dial,audio_weightthe loyalty-to-source dial.variety- 0 to 4, and at the top end the two takes it returns can be barely related.title,vocal_gender,persona_id+persona_model,lyrics- labels, a voice nudge, a saved Suno style or voice persona, and explicit lyrics that beatpromptwhen both are set.
Outputs
audio is the extended track - native ComfyUI audio, ready to save or mux. url is the primary result URL, all_urls_json is the complete URL list from the response (your route to the alternate take, since only the first lands on the socket), task_id is the job id you'd reuse to extend again, raw_json is the verbatim provider response, and credits_consumed / credits_left report the spend.
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 afterwards. The pack needs requests, Pillow, numpy and PyYAML and nothing else - no checkpoints, no downloads, no GPU work. A one-click Windows installer lives in the repo's dist/ folder, and ComfyUI Manager support is where the project is headed (registry metadata ships under publisher felipeosilva), though the clone remains the install that always works.
Paste your KIE.ai API key once under Settings → KIE.ai Nodes Next → Connection. The pack checks it against KIE before replacing a saved key and only ever shows a masked fingerprint. Headless installs can use KIE_API_KEY, which takes priority.
What goes wrong
Unreachable URLs and over-long uploads are provider-side failures with a reason in raw_json. A timeout isn't a death sentence - KIE • Task Status or KIE • Wait for Task on the task_id will tell you whether the job actually finished. And the mild, unglamorous issue that isn't an error at all: extensions of a loop tend to drift in tempo if continue_at lands somewhere rhythmically awkward. Pick a bar line.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| upload_url | STRING | https://storage.example.com/upload | The URL of the source audio file to extend. Required. Source audio (`upload_url`) is enough to generate. Ensure the uploaded audio does not exceed 8 minutes in length. |
| prompt | STRING | Extend the music with more relaxing notes | Lyrics for the extended audio. Optional. - Used as lyrics only when `lyrics` is not provided. If `lyrics` is present, `prompt` is not used as lyrics. - V6, V6_MINI, and V6_WILD: Maximum 5000 characters. - Not required. Source audio (`upload_url`) is enough to generate. - Do not pass this parameter when `instrumental` is `true`. |
| instrumentalopt | BOOLEAN | true | Determines whether the audio is instrumental (without lyrics). Optional; defaults to `false`. - If `true`: generate instrumental music (no vocals). Do not pass `lyrics`, `prompt`, or `vocal_gender`. - If `false`: use `lyrics` as lyrics (fall back to `prompt` if `lyrics` is not provided). |
| continue_atopt | FLOAT | 60.00-10000–10000 | The time point (in seconds) from which to start extending the music. - Value range: greater than 0 and less than the total duration of the uploaded audio. - Specifies the position in the original track where the extension should begin. |
| styleopt | STRING | Classical | Music style, e.g., Jazz, Classical, Electronic. Optional. - Not required. Source audio (`upload_url`) is enough to generate. - Character limits by model: - **V6, V6_MINI & V6_WILD**: Maximum 1000 characters - **V5_5 & V5** (Discontinued): Maximum 1000 characters - **V4_5PLUS & V4_5** (Discontinued): Maximum 1000 characters - **V4_5ALL** (Discontinued): Maximum 1000 characters - **V4** (Discontinued): Maximum 200 characters |
| titleopt | STRING | Peaceful Piano Extended | Music title. Optional. - Maximum 100 characters. - Displayed in player interfaces and filenames. |
| negative_tagsopt | STRING | Relaxing Piano | Music styles to exclude from generation |
| vocal_genderopt | COMBO | m | Vocal gender preference for the singing voice. Optional. Use 'm' for male and 'f' for female. Based on practice, this parameter can only increase the probability but cannot guarantee adherence to male/female voice instructions. Do not pass this parameter when `instrumental` is `true`. |
| style_weightopt | FLOAT | 0.650–1 | Strength of adherence to the specified style. Optional. Range 0–1, up to 2 decimal places. |
| weirdness_constraintopt | FLOAT | 0.650–1 | Controls experimental/creative deviation. Optional. Range 0–1, up to 2 decimal places. |
| audio_weightopt | FLOAT | 0.650–1 | Balance weight for audio features vs. other factors. Optional. Range 0–1, up to 2 decimal places. |
| 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 | The persona model is only available for models version V5 (Discontinued), V5_5 (Discontinued), V6, V6_MINI, and V6_WILD. |
| lyricsopt | STRING | [Verse] Keep the melody flowing Into a gentle bridge [Chorus] Let the piano rise and fall | Lyrics for the extended audio. Optional. - Takes priority over `prompt` as lyrics. If omitted, `prompt` is used as lyrics when provided. - V6, V6_MINI, and V6_WILD: Maximum 5000 characters. - Not required. Source audio (`upload_url`) is enough to generate. - Do not pass this parameter when `instrumental` is `true`. |
| varietyopt | INT | 10–4 | Controls the diversity and stylistic variation of generated results. Optional. Integer range 0–4, 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 |
| 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 | — |