Upload And Extend Audio · V4.5ALL
Your own track, made longer
- audio
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
This is the sibling of the Extend Music node with one crucial difference: it doesn't care who made the track. Point it at an audio file you already have - your own recording, a Suno export, a stem you mixed in a DAW - tell it where to pick up, and let Suno's V4.5ALL model carry on from there.
How it works
Remote call, same shape as everything else in this pack. The node assembles the "upload and extend" request, posts it to KIE.ai, and then sits in the queue polling for a result until timeout_seconds (default 1200, twenty minutes) is exhausted. KIE's transport model is ai-music-api/upload-and-extend-audio, and V4_5ALL is passed as the model version in the payload. The finished audio comes back decoded as a standard ComfyUI AUDIO object - the audio analog of getting an IMAGE back from an API image node.
The inputs you'll actually touch
upload_url is required and it wants a publicly reachable URL, not a file path. In the current build this is a plain string widget, so if you just generated a track three nodes upstream, you'll need to get it online before KIE can read it - the pack ships upload helpers under KIE Next / Utility for that. There's a hard limit worth internalising: keep the source under 8 minutes.
continue_at is the real dial - the second where the extension should begin, default 60. Put it at the tail of the track. Put it in the middle and Suno will effectively re-perform the rest, which can be a feature (a fix for a bad bridge) or a bug (it quietly rewrites the bit you liked).
prompt is required as a widget and is used as lyrics for the extension, but only when lyrics is empty - lyrics takes priority. style should match the source; title and negative_tags are cosmetic and exclusion lists respectively. style_weight, weirdness_constraint, audio_weight and variety behave as elsewhere: nudge-y, optional, and only occasionally decisive.
instrumental is the trap. It defaults to true, and the docs are explicit that when it's on you should not pass prompt, lyrics or vocal_gender at all. It also changes what counts as "done": with it on, the source alone is enough. Clear the prompt box rather than leaving the default sentence sitting there if you flip it.
What comes out
Seven outputs. audio is the decoded extension - so is the output the whole extended song or only the new section? The tooltip describes the result as the extended audio track, and the provider's response also carries a source_audio_url alongside the new audio_url, so in practice you're extending a track, not just producing a tail. Treat all_urls_json as your safety net: it holds every URL the response returned. url, task_id and raw_json are the debugging trio, and credits_consumed / credits_left tell you what the run cost and what's left in the account (also rendered on the node itself after each run).
Installation
ComfyUI Manager → search ComfyUI-KIE-Nodes-Next ("KIE.ai Nodes Next"). Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
Restart ComfyUI. Dependencies are requests, Pillow, numpy, PyYAML - this pack downloads zero model weights. Then Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key; the key is checked against KIE before it's stored, kept out of workflow JSON, and shown masked. KIE_API_KEY beats it for server installs.
Where it bites
That 8-minute ceiling is a rejection, not a trim. Send a 12-minute file and the task fails rather than being cut down.
Version status. V4.5ALL sits in the (Discontinued) group in KIE's parameter docs (with V4, V4.5, V4.5PLUS, V5, V5.5); V6/V6_MINI/V6_WILD are the current family. The V5 and V4.5PLUS variants of this same node exist in the same folder, and if you're choosing fresh, pick a V6 sibling.
Extending is not genre transfer. If you want the source re-sung or re-styled, that's Upload And Cover Audio - a different node, different endpoint, different result.
Blocking behaviour. The node holds the queue while it waits. Running it inside a long video batch means everything downstream of the audio step stalls for minutes at a time; that's expected, not a hang.
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 | — |