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

Upload And Extend Audio · V4

Where the song stops being too short

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

    Extend is the odd one out in the Suno endpoint family, and the most useful for anyone assembling a soundtrack in a graph. You give it a track and a timestamp, and it keeps going from there.

    The practical case is the same one that plagues every video workflow: your generated clip is 90 seconds and the edit needs two minutes. Locally you'd be re-prompting and hoping; here you're asking the model to continue the actual audio you already have, which is a much better bet than generating a second track and crossfading it badly.

    Filling the form

    upload_url is required and is a URL string to the source track, capped at eight minutes by the tooltip. That's a URL field, so the usual pair is KIE • Upload Audio upstream - it takes a ComfyUI AUDIO object, converts it to 16-bit PCM WAV, hosts it, and hands you the string this node wants.

    continue_at is the field that matters and the one people get wrong: the point in seconds where the extension begins, with the widget defaulting to 60. KIE's constraint is precise - greater than 0, less than the total duration of the uploaded audio. Point it past the end and you haven't extended anything, you've asked about a moment that doesn't exist.

    prompt is the lyric text for the new section, used only if lyrics is empty, and - per the tooltip - it should not be passed at all when instrumental is on. Speaking of instrumental: the widget defaults to true while its own tooltip says it "defaults to false". The widget wins; if you want vocals, turn it off explicitly. That kind of drift between a provider's prose and its schema is normal in this ecosystem, and it's why reading the tooltips beats trusting them.

    Then the same optional set as the other Suno nodes: style (200 characters on V4), title (100 characters here), negative_tags, vocal_gender (m or f, a nudge rather than a guarantee), style_weight, weirdness_constraint, audio_weight, lyrics, variety (0–4), persona_id with persona_model, and timeout_seconds, which at 1200 seconds is generous but not absurd for a music task. callback_url stays empty unless you're running a server that wants webhooks.

    A note on the mode flag

    Because ComfyUI sends every visible widget's value, leaving example lyric text in prompt while instrumental is on still ships that text to the provider. Clear fields you don't mean rather than relying on the mode switch to ignore them - the pack omits empty optional strings but doesn't second-guess a filled one.

    Outputs

    Seven, as with the rest of the Suno family: audio, url, all_urls_json, task_id, raw_json, credits_consumed and credits_left. The audio output is a native object, so wire it into a Save Audio or preview node, and if you're extending in stages, feed the saved result back through the upload node and extend again - that's how you build a long track out of a short one. Keep task_id in the graph if you're iterating; it's the only handle you have if you need to check on a job.

    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 afterwards, then set your API key once under Settings → KIE.ai Nodes Next → Connection - the pack validates the key before saving it, shows a masked fingerprint, and confirms CONNECTED with your balance. ComfyUI Manager can install the pack for you (search "KIE.ai Nodes Next"), and on a headless box KIE_API_KEY in the environment takes priority over the saved key.

    The version question

    This is the V4 node, and KIE's docs list V4 as discontinued while the style limits in the tooltips (200 characters here versus 1000 on later versions) betray its age. It works and it's cheap. But extension quality matters more than most Suno features - you're asking the model to continue a musical idea coherently - and the newer model versions are meaningfully better at it. If the V6 variant of this node exists in your menu, use it, and treat this one as the compatibility path for a workflow you already built.

    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—