Nodes/KIE.ai Nodes Next/Upload And Extend Audio · V5
ComfyUI Node

Upload And Extend Audio · V5

Your file, extended on the V5 stack

By felipederosilva·Created about a month ago·Updated about 22 hours ago· 3
Upload And Extend Audio · V5
    • 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►

    Same job as the other Upload And Extend nodes - hand over a hosted audio file, tell the model where to continue, get a longer track back - running on Suno's V5 version. If you've been reading V4.5 articles, here's the difference that actually matters: the persona controls work on V5. persona_id and persona_model are documented as applicable to the V5/V5.5/V6 family, so on this node they stop being decorative.

    Under the hood

    The node builds the request, posts it to KIE.ai under the transport model ai-music-api/upload-and-extend-audio, and passes V5 as the version. It then waits - polling the job until it completes or timeout_seconds (default 1200 seconds, twenty minutes) expires. The audio comes back as a ComfyUI AUDIO object, decoded locally by ComfyUI's own torchaudio or PyAV; the pack itself only needs requests, Pillow, numpy and PyYAML.

    The inputs that decide the result

    upload_url is required and must be a publicly fetchable URL - not a local path, not a network share. It's a text field in this build rather than an audio socket, so anything generated in the same graph has to be hosted first; the pack's utility nodes under KIE Next / Utility are the intended route. Source limit: 8 minutes.

    continue_at (default 60, seconds) is where the extension starts. Aim it at the end of what you want to keep.

    prompt is required as a widget and acts as the new section's lyrics when lyrics is empty - lyrics overrides it. style steers the continuation and should match the source; the docs give V5 a 1000-character budget for it, so unlike V4 you can be reasonably descriptive. instrumental defaults to true, and when it's on the docs say to send neither prompt, lyrics nor vocal_gender - clear the text boxes rather than leaving defaults in place.

    Optional: negative_tags, variety (0–4), the style_weight / weirdness_constraint / audio_weight weights, and the persona pair. persona_model takes style_persona or voice_persona, and the docs scope it to V5, V5.5, V6, V6_MINI and V6_WILD - so it's live here. duration is scoped to V5.5/V6/V6_MINI/V6_WILD and is not valid on plain V5, so leave that alone.

    Outputs

    audio is the extended track - straight into SaveAudio or a video pipeline. all_urls_json holds every URL the response carried (multiple takes are typical; audio is the first), url is the primary result, task_id is the KIE job ID, and raw_json is the full provider payload, which is where the new track's id lives if you plan to extend again. credits_consumed and credits_left come back as floats and are displayed on the node after each run.

    Installing

    ComfyUI Manager → search the title ComfyUI-KIE-Nodes-Next ("KIE.ai Nodes Next"). Manually:

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

    Restart ComfyUI. Then one-time auth: Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key. The pack checks the key against KIE before saving it over a working one, stores it in Comfy's user config rather than in your workflow, and shows a masked fingerprint with connection status. Servers can use KIE_API_KEY instead - the environment value wins. No models, no CUDA, no build step.

    Worth knowing before you spend

    V5 is on the discontinued list. KIE's parameter docs mark V5 and V5.5 (Discontinued) alongside V4, V4.5, V4.5PLUS and V4.5ALL; V6, V6_MINI and V6_WILD are current. The node works because the API page still documents it - nothing you can fix locally if that changes.

    Personas are the reason to prefer V5 over the V4.5 nodes here, so if you're extending songs in a series that should sound like the same artist, this is the legacy version to pick, and the V6 node is the forward-looking one.

    No preview, no refunds. Extensions cost credits, and whether the join works is only audible afterwards. Set continue_at deliberately, then run once.

    You still need hosting. The URL requirement is the single most common reason this node fails on someone's first try.

    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—