Upload And Extend Audio · V6_MINI
Make your own recording keep going
- audio
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
What it's for
You have audio that isn't a Suno track - a jam, a loop, a voice memo, a rough mix - and you want more of it. KIE_Next_V6_MINI_5b331494 uploads that file's URL to KIE, asks Suno to continue from a point you choose, and drops the result back into ComfyUI as native audio. It's the file-based twin of Extend Music, which does the same trick for tracks that already live on Suno's side.
Why the MINI tier? Because extension is an iterative job. You'll run it five times with different continue_at values before one seam sounds right, and MINI is the version KIE describes as "lightweight and fast." Audition here; if you find a continuation you love and want the same idea rendered with more detail, rerun it on the bigger version of the same endpoint.
How it works
The node assembles the request from its widgets and submits it to KIE's task queue, then polls for completion itself - 2.5 seconds at first, backing off toward 15, bounded by timeout_seconds (default 1200). On success the returned audio is fetched and decoded into ComfyUI's AUDIO object. The V6_MINI model version goes inside the request payload; the outer envelope carries KIE's market name for this endpoint. Credits are spent on KIE's side and reported back on the node.
Two consequences of being an API node rather than a local one: your source audio has to be reachable by KIE's servers (a public URL, not a local path), and the audio itself leaves your machine.
Inputs worth knowing
upload_url- the source track. It's a URL field, not an audio socket, so a local file goes through KIE • Upload Audio first and you paste what it returns. The tooltip carries a hard limit: keep it under 8 minutes.prompt- lyrics for the extended portion when there are vocals. Required widget, though the docs treat the source audio as sufficient on its own.instrumental- optional and defaults to true. That's a deliberate-looking default and it's the first thing to check if your result comes back wordless. When it's on, the docs say not to passlyrics,promptorvocal_genderat all.continue_at- the time in seconds where the extension starts, default 60. It has to be greater than 0 and less than the total duration of your upload. Ask it to continue from the very last sample and you're asking for a hard splice.style- optional, and it should match the original if you want the seam to disappear.title- labelling only, 100 characters.negative_tags- what to keep out. Note the shipped default is literally "Relaxing Piano," inherited from the docs' example; if relaxing piano is what you're making, this default is working against you.style_weight,weirdness_constraint,audio_weight- 0.65 apiece. Raiseaudio_weightand pullweirdness_constraintdown for continuity.variety- 0 to 4, the stylistic-spread dial.vocal_gender,persona_id+persona_model- a probability nudge on voice and, if you have one, a saved Suno style or voice persona to apply.
Outputs
audio - the extended track, native ComfyUI audio, ready for Save Audio or a video mux. url - the first result URL. all_urls_json - every URL the provider returned, which is how you reach the second take. task_id - the job handle, and the thing to hold onto if you intend to extend again. raw_json - the raw provider response. credits_consumed and credits_left - the cost of 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 light - requests, Pillow, numpy, PyYAML - with no model files to download and no GPU cost. Windows users can run the one-click installer from the repo's dist/ folder. ComfyUI Manager listing is planned (the pack ships registry metadata as publisher felipeosilva), but today the clone is the reliable install.
Then set the key: Settings → KIE.ai Nodes Next → Connection, paste your KIE.ai API key once. It's validated before it replaces a stored key, shown only as a masked fingerprint, and KIE_API_KEY in the environment overrides it for headless setups.
Practical gotchas
A private or localhost URL fails every time, because KIE does the fetching. An upload longer than eight minutes fails the same way. If instrumental is left on you'll get a wordless extension and wonder where the vocals went. And on the timing side: when the node hits timeout_seconds, the provider may still be working - check the task_id with KIE • Wait for Task rather than paying for a second run of the same thing.
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 | — |