Nodes/KIE.ai Nodes Next/Extend Music · V5
ComfyUI Node

Extend Music · V5

Continue an old track without changing its voice

By felipederosilva·Created 2 months ago·Updated 2 days ago· 3
Extend Music · V5
    • 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►

    Suno's extend endpoint takes a track that already exists and carries it further from a point you choose. This node is that endpoint at the V5 tier, which KIE's docs list as discontinued - so its real use is continuity: extending a song your workflow already made on V5 without switching model generations mid-song.

    Why that matters: a different Suno tier is not a louder or quieter version of the same singer, it's a different model with different vocal character. Extend a V5 track with a V5.5 or V6 node and the seam is audible. If you're maintaining an older workflow, keep the tier matched and this node keeps working.

    How it works

    Like every model node here, this class was generated from KIE's published API documentation at startup - one node per documented model version, so V5 is baked in and there's no dropdown. The node builds the documented request body, submits it to KIE's task endpoint (envelope model ai-music-api/extend, inner model V5), then polls KIE's record-info endpoint every couple of seconds with exponential backoff until the task completes. It downloads the resulting mp3 and returns a native ComfyUI AUDIO; a failed task raises with the task id and the provider's error.

    The inputs that matter

    • audio_id - the track to extend, and this is the field people get wrong. It is a Suno track identifier, not a URL and not a local file. You get it from a previous generation's raw_json or task_id outputs. If your source is a file you own, this is the wrong node - use Upload And Extend Audio, which takes an upload_url.
    • prompt - used as lyrics only when lyrics is empty, and it must not be set when instrumental is true.
    • continue_at - seconds, default 60. Per the docs it has to be greater than 0 and less than the total duration of the source. This is the knob that decides whether you get a continuation or a remix.

    Optional steering: style (keep it aligned with the original for the best join), title, negative_tags, vocal_gender, style_weight, weirdness_constraint, audio_weight, persona_id / persona_model, lyrics, variety (0–4), instrumental (false by default on this node), timeout_seconds (1200), and callback_url, which you should leave empty.

    Outputs: audio, url, all_urls_json, task_id, raw_json, credits_consumed, credits_left. Extension returns a new track rather than editing the source, so keep task_id around if you plan to extend again - the chain you build is generate → extend → extend, each step consuming the previous result.

    Installing

    ComfyUI Manager, search "KIE Nodes Next". The README still describes registry publication as being prepared, so the manual install is the one that reliably works today:

    cd ComfyUI/custom_nodes
    git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
    pip install -r ComfyUI-KIE-Nodes-Next/requirements.txt
    

    Restart, then paste your key once at Settings → KIE.ai Nodes Next → Connection. It's checked against KIE before it replaces a stored key, and only a masked fingerprint is ever shown; KIE_API_KEY wins over the saved key on servers. Dependencies are requests, Pillow, numpy and PyYAML - no torch, no model downloads, zero VRAM, which is the entire appeal of an API-node pack.

    Where people get burned

    • Passing a URL as audio_id. The node will happily submit and KIE will fail the task. Upload And Extend is the node for files.
    • continue_at past the end of the track. The docs require it to be inside the source duration; a value of 60 on a 40-second track is a guaranteed failure.
    • No key configured throws an error naming the settings path - check it before anything else.
    • A timeout is not a cancellation. The node stops polling at timeout_seconds; the remote task may still complete, and you'll have paid for it. Check credits_consumed before rerunning.
    • Mixed installs are refused on startup. If the pack reports a version and generated-node build mismatch, delete the whole folder and reinstall from the repo.
    • Discontinued tier. V5 is what the docs say it is. Use the V6 sibling for new work; use this one to keep an old song's voice intact.

    One habit worth having: extend in short hops. Two extensions of fifteen seconds generally hold together better than one of thirty, and the join is where things go wrong, not the length.

    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—