Nodes/KIE.ai Nodes Next/Extend Music · V4.5ALL
ComfyUI Node

Extend Music · V4.5ALL

Continue a track you generated, not a track you own

By felipederosilva·Created about a month ago·Updated a day ago· 3
Extend Music · V4.5ALL
    • audio
    • url
    • all_urls_json
    • task_id
    • raw_json
    • credits_consumed
    • credits_left
    ◄audio_ide231****-****-****-****-****8cadc7dc►
    ◄promptExtend the music with more relaxing notes and a gentle bridge section►
    ◄styleClassical►
    ◄titlePeaceful Piano Extended►
    ◄continue_at60.00►
    ◄negative_tagsHeavy Metal, Upbeat Drums►
    ◄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►
    ◄instrumentalfalse►
    ◄timeout_seconds1200►
    ◄callback_url►

    Extend Music is the "and then what?" node. You generated a track, liked 90 seconds of it, and the thing just stops. This node asks Suno's V4.5ALL model to carry on from a point you choose, and returns the result as a normal ComfyUI AUDIO object you can save, loop, or feed into a music video.

    The one thing that trips everyone

    The required input is audio_id, and it is not a URL. It's the provider's internal ID for a track Suno made - the kind of string that shows up in the API response as id. So this node is always the second half of a chain: generate first, then extend. Hand it an MP3 link and it fails, because the endpoint genuinely can't read one. Extending your own existing audio is a different node (Upload And Extend Audio) on a different endpoint.

    Where do you find the ID? Generate Music returns raw_json, which contains the provider's full response with an id per take. That's your copy-paste source. It's a small friction the pack doesn't hide, and it's the reason a lot of people think this node is broken when it's actually just mis-fed.

    What it does under the hood

    A remote call. The node builds the extend request, submits it to KIE.ai under the transport model ai-music-api/extend, and passes V4_5ALL as the version inside the payload. Then it blocks - polling the record-info endpoint roughly every 2.5 seconds until the job resolves or timeout_seconds (default 1200 seconds) expires.

    continue_at is the dial that matters: the second at which the extension begins, default 60. Set it at the tail of the original. Set it early and you've asked for a re-write, which Suno will happily attempt.

    prompt is used as the extension's lyrics, but only if lyrics is empty - lyrics wins when both are filled. style should mirror the source track, or the seam will be obvious. instrumental defaults to false here, so an extension of an instrumental will try to sing at you; turn it on deliberately, and clear the prompt box when you do, because the docs say neither prompt nor vocal_gender should be sent in instrumental mode.

    variety, style_weight, weirdness_constraint and audio_weight are the same optional nudges as the generation node. duration and persona_model are documented as V5.5/V6-family only, so they're inert on this version.

    Outputs

    audio is the decoded extension, ready for SaveAudio. all_urls_json keeps every result URL from the response (Suno generally returns more than one take, and audio is the first), url is the primary result, task_id is the KIE job handle, raw_json is the full payload - grab the new track's id from there if you want to extend it again, which is exactly how people build three-minute songs out of one good idea. credits_consumed and credits_left close the loop on cost, and both are printed on the node face after a run.

    Getting it installed

    ComfyUI Manager, search ComfyUI-KIE-Nodes-Next, or:

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

    Restart afterwards. The pack pulls only requests, Pillow, numpy and PyYAML - no weights, no CUDA, nothing to place in models/. Then paste your key once in Settings → KIE.ai Nodes Next → Connection; it's validated against KIE before saving, never written into your workflow, and shown as a masked fingerprint. KIE_API_KEY overrides the stored key for headless installs.

    Caveats worth knowing

    Version status. KIE's parameter docs list V4.5ALL in the (Discontinued) bucket with V4, V4.5, V4.5PLUS, V5 and V5.5; V6, V6_MINI and V6_WILD are current. Expect this node to be a legacy path, and switch siblings if the version is retired outright.

    Extends are metered, and you don't get to audition first. Each call spends credits whether the join is seamless or not. Iterating on continue_at is the expensive kind of fidgeting - decide the cut point before you press Run.

    Keep the node's default title field sane. title shows up in file names and player UIs downstream, and the default "Peaceful Piano Extended" ends up stamped on a lot of unexpected tracks.

    CategoryKIE Next/Audio/Suno/Music Generation

    Inputs (17)

    NameTypeDefaultDescription
    audio_idSTRINGe231****-****-****-****-****8cadc7dcUnique identifier of the audio track to extend. Required for all extension requests.
    promptSTRINGExtend the music with more relaxing notes and a gentle bridge sectionLyrics 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 (`audio_id`) is enough to generate. - Do not pass this parameter when `instrumental` is `true`.
    styleoptSTRINGClassicalMusic style specification for the extended audio. Optional. - Not required. Source audio (`audio_id`) is enough to generate. - Character limits by model: - **V4**(Discontinued): Maximum 200 characters - **V4_5 & V4_5PLUS**(Discontinued): Maximum 1000 characters - **V4_5ALL**(Discontinued): Maximum 1000 characters - **V5_5 & V5**(Discontinued): Maximum 1000 characters - **V6, V6_MINI, and V6_WILD**: Maximum 1000 characters - Should typically align with the original audio's style for best results.
    titleoptSTRINGPeaceful Piano ExtendedTitle for the extended music track. Optional. - Maximum 100 characters. - Displayed in player interfaces and filenames.
    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 generated audio. - Specifies the position in the original track where the extension should begin.
    negative_tagsoptSTRINGHeavy Metal, Upbeat DrumsMusic styles or traits to exclude from the extended audio. Optional. Use to avoid specific undesired characteristics.
    vocal_genderoptCOMBOmVocal gender preference. Optional. 'm' denotes a male voice, and 'f' denotes a female voice. In practice, this parameter only influences the probability and does not guarantee strict adherence to the gender instruction. This parameter is not required if `instrumental` is set to `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 applicable to the V5 (deactivated), V5.5 (deactivated), V6, V6_MINI, and V6_WILD models.
    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 (`audio_id`) 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
    instrumentaloptBOOLEANfalseIndicates whether it is an instrumental track. If true, passing the `lyrics`, `prompt`, and `vocal_gender` parameters is prohibited.
    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—