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

Upload And Extend Audio · V6_MINI

Make your own recording keep going

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

    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 pass lyrics, prompt or vocal_gender at 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. Raise audio_weight and pull weirdness_constraint down 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.

    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—