Nodes/KIE.ai Nodes Next/Upload And Extend Audio · V4.5PLUS
ComfyUI Node

Upload And Extend Audio · V4.5PLUS

Bring your own track, get a longer one

By felipederosilva·Created about a month ago·Updated a day ago· 3
Upload And Extend Audio · V4.5PLUS
    • audio
    • url
    • all_urls_json
    • task_id
    • raw_json
    • credits_consumed
    • credits_left
    ◄upload_urlhttps://storage.example.com/upload►
    ◄promptExtend the music with more relaxing notes►
    ◄instrumentaltrue►
    ◄continue_at60.00►
    ◄styleClassical►
    ◄titlePeaceful Piano Extended►
    ◄negative_tagsRelaxing Piano►
    ◄vocal_genderm►
    ◄style_weight0.65►
    ◄weirdness_constraint0.65►
    ◄audio_weight0.65►
    ◄persona_idpersona_123►
    ◄persona_modelstyle_persona►
    ◄lyrics[Verse] Keep the melody flowing Into a gentle bridge [Chorus] Let the piano rise and fall►
    ◄variety1►
    ◄timeout_seconds1200►
    ◄callback_url►

    Of the two extend nodes in this pack, this is the one that doesn't demand a Suno-generated track. It works from a URL to any audio file, so it can extend a recording you made, a stem you bounced, or a track Suno made that you no longer have the ID for. The model doing the continuing is Suno's V4.5PLUS.

    What it does

    Posts a request to KIE.ai - transport model ai-music-api/upload-and-extend-audio, V4_5PLUS nested as the version - then blocks and polls until the job resolves or timeout_seconds (default 1200 seconds, twenty minutes) is spent. The finished audio is downloaded and decoded locally into a ComfyUI AUDIO object, using torchaudio with a PyAV fallback from ComfyUI's own environment.

    Inputs that actually matter

    upload_url is required, a public URL, and this build exposes it as a plain text box rather than an audio socket - so tracks created upstream in the same graph need to be hosted somewhere KIE can reach. The limit is 8 minutes on the source; longer files are rejected, not shortened.

    continue_at (default 60, seconds) is where the extension begins. Put it at the end of the material you want to keep. Put it earlier and the model re-performs what follows, which is occasionally the fix for a weak bridge and usually not what you asked for.

    prompt is required as a widget and functions as lyrics for the new section - but only when lyrics is empty; lyrics takes precedence. style should echo the source or you'll hear exactly where the two halves meet. instrumental defaults to true, and in that mode the docs say don't send prompt, lyrics or vocal_gender - clear the prompt box instead of leaving the placeholder text in it.

    Then the usual dials: negative_tags for exclusions, variety for spread between takes, and style_weight / weirdness_constraint / audio_weight for gentle pushing. duration and persona_model are documented as V5.5/V6-family only, so they're dead controls on this version.

    Outputs

    audio is the extended track - wire it to SaveAudio, into a video pipeline, or into the pack's own audio utilities. all_urls_json holds every URL the provider returned (multiple takes are normal; the audio output is the first), url is the primary link, task_id is the KIE job ID, and raw_json is the full response for when you need to see what was actually sent. credits_consumed and credits_left report the cost of the run and both appear on the node face afterwards, so credit burn is visible while you work.

    Install

    Via ComfyUI Manager, search ComfyUI-KIE-Nodes-Next ("KIE.ai Nodes Next"). Or do it by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
    

    Restart ComfyUI. Nothing else to install - the pack's only requirements are requests, Pillow, numpy and PyYAML, which is why there are no model directories to populate and no VRAM involved. Then open Settings → KIE.ai Nodes Next → Connection, paste your KIE.ai API key, and let the pack validate it; the saved key lives outside your workflow JSON and shows up as a masked fingerprint. If you run headless, KIE_API_KEY in the environment takes priority over the saved value.

    Things that catch people out

    A hosted URL is not optional. A localhost link, a network share, or a local path won't work - KIE's servers fetch the audio. The pack ships upload helpers under KIE Next / Utility specifically for this.

    Extending a cover or a mashup works, but style matching becomes your job. This endpoint has no memory of the original prompt, so if you don't set style to match, the second half will drift.

    V4.5PLUS is retired-adjacent. KIE's parameter docs mark it (Discontinued) next to V4, V4.5, V4.5ALL, V5 and V5.5; V6, V6_MINI and V6_WILD are current. The node is legitimate - the page is still documented - but it's a legacy branch. If the API eventually refuses the version, the V5 variant of this node and the V6 family are the exits.

    Paid, no preview. Each call spends credits. Chaining several extensions to build a long track is the most credit-hungry thing you can do with this pack, so plan the cut points before you hit Run.

    CategoryKIE Next/Audio/Suno/Music Generation

    Inputs (17)

    NameTypeDefaultDescription
    upload_urlSTRINGhttps://storage.example.com/uploadThe 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.
    promptSTRINGExtend the music with more relaxing notesLyrics 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`.
    instrumentaloptBOOLEANtrueDetermines 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_atoptFLOAT60.00-10000–10000The 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.
    styleoptSTRINGClassicalMusic 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
    titleoptSTRINGPeaceful Piano ExtendedMusic title. Optional. - Maximum 100 characters. - Displayed in player interfaces and filenames.
    negative_tagsoptSTRINGRelaxing PianoMusic styles to exclude from generation
    vocal_genderoptCOMBOmVocal 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_weightoptFLOAT0.650–1Strength of adherence to the specified style. Optional. Range 0–1, up to 2 decimal places.
    weirdness_constraintoptFLOAT0.650–1Controls experimental/creative deviation. Optional. Range 0–1, up to 2 decimal places.
    audio_weightoptFLOAT0.650–1Balance weight for audio features vs. other factors. Optional. Range 0–1, up to 2 decimal places.
    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_personaThe persona model is only available for models version V5 (Discontinued), V5_5 (Discontinued), V6, V6_MINI, and V6_WILD.
    lyricsoptSTRING[Verse] Keep the melody flowing Into a gentle bridge [Chorus] Let the piano rise and fallLyrics 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`.
    varietyoptINT10–4Controls 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_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—