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

Extend Music · V4.5

Keep the song going, if you have its audio_id

By felipederosilva·Created about a month ago·Updated about 22 hours ago· 3
Extend Music · V4.5
    • 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►

    Songs end too early. You get two minutes of something that actually works, and you want four. This node asks Suno's V4.5 model to continue an existing track - same vibe, new bars - and drops the result back into your graph as a normal AUDIO object.

    What it actually does

    It's a remote call, not a local model. The node assembles a Suno "extend" request, submits it to KIE.ai, then waits - polling the record-info endpoint every few seconds until the task finishes or timeout_seconds (default 1200, i.e. twenty minutes) expires. KIE's transport model here is ai-music-api/extend, with V4_5 carried in the input payload as the version.

    The important part is that you are continuing a Suno track, not a file. The required input is audio_id - the provider's ID for a track that Suno itself generated. Not a URL, not a waveform, not your own MP3. That's the one thing beginners don't expect, and it's why this node is almost always wired downstream of a Generate Music node rather than used on its own.

    The inputs that matter

    audio_id is required and it's a string you copy out of a previous generation's raw_json output - the track id field that looks like e231••••-••••-••••-••••••8cadc7dc. Nothing else in the node will get you one.

    continue_at is the part you'll actually fiddle with: the second at which the extension begins, default 60. Set it near the end of the original track. Set it early and Suno effectively re-writes the middle, which is interesting but not what "extend" usually means to you.

    prompt (required widget, default text) is treated as lyrics for the extension, and only when lyrics isn't filled in - lyrics wins if both are present. style should echo the original track or the join will sound like a DJ cut. title is cosmetic; negative_tags is the usual ban list. style_weight, weirdness_constraint, audio_weight and variety are the same dials as the generation node.

    One gotcha baked into the docs: if instrumental is on, don't send prompt or vocal_gender at all - clear the text box rather than leaving the default sentence in it. (Empty optional strings are dropped before submission, so clearing genuinely works.)

    Outputs

    audio is the decoded result, ready for SaveAudio or for whatever comes next in the chain. all_urls_json holds every result URL from the response, url the primary one, task_id the KIE job handle if you want the detail nodes, raw_json the full provider payload - which is where you'll grab the new track's audio_id if you want to extend again. The node also emits credits_consumed and credits_left, and prints both on its face after a run.

    Setting it up

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

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

    Restart, then paste your KIE.ai key in Settings → KIE.ai Nodes Next → Connection. The key is validated before it's saved, stays out of your workflow JSON, and shows as a masked fingerprint. Headless installs can set KIE_API_KEY instead. There are no model downloads and no heavy dependencies - the pack is a pure API client (requests, Pillow, numpy, PyYAML).

    Where it bites

    Extending your own audio is a different node. People reach for this one after uploading an MP3 to a host and get a rejection, because audio_id wants a Suno track ID. For your own files, use the Upload And Extend Audio node in the same folder, which takes a source URL instead.

    The version is legacy. KIE's docs mark V4.5, V4.5PLUS, V4.5ALL, V5 and V5.5 as (Discontinued); V6, V6_MINI and V6_WILD are the current ones. This node is here because the API page still documents it. If it starts failing with an unsupported-model error, that's why - move to the V6 sibling.

    instrumental defaults to off here (unlike the generation node), so an extension of an instrumental can unexpectedly get vocals. Turn it on deliberately, and clear the prompt text when you do.

    duration and persona_model are inert on this version - the docs scope both to the V5.5/V6 family.

    If you want extension without per-call cost, ACE-Step is the local option: roughly Suno-adjacent quality on instrumentals, weaker on vocals, and you can retry all afternoon for the price of electricity.

    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—