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

Extend Music · V6

Keep a song going on the current Suno tier

By felipederosilva·Created about a month ago·Updated a day ago· 3
Extend Music · V6
    • 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 from an API come back short, and "more of that" is the most common next request. This node carries a track further from a point you pick, using the V6 tier - the live one, now that KIE's docs mark V5 and V5.5 as discontinued.

    The one thing to internalise: audio_id is a Suno track identifier. It comes back in a generation's outputs, not from your filesystem. That makes the natural pattern generate-then-extend inside one graph. If your source is a file you own, use Upload And Extend Audio instead - it takes a URL, and mixing the two up is the classic first mistake with this pair.

    There's a second, subtler reason to keep tiers matched while extending: a different Suno generation is a different vocal character. Extending a V6 track with a V5 node gives you an audible seam. Same tier, same singer.

    How it works

    The pack builds node classes from KIE's official API docs at startup, one per documented model version, so V6 is baked into this class and there's no dropdown to change. The node assembles the documented request body, submits it to KIE's task endpoint (envelope model ai-music-api/extend, inner model V6), then polls KIE's record-info endpoint every couple of seconds with backoff until the task succeeds. It downloads the resulting mp3 and returns a native ComfyUI AUDIO; a failed task raises with the task id and the provider's message.

    The inputs that matter

    • audio_id - the track to extend. Source audio alone is enough to generate, per the docs; everything else is steering.
    • prompt - used as lyrics only when lyrics is empty, and it must not be set when instrumental is true.
    • continue_at - seconds, default 60, and the docs' constraint is precise: greater than 0 and less than the total duration of the source. This is the field that determines whether the join sounds like a continuation.

    Then the steering controls: style (keep it aligned with the original - this tier allows up to 1000 characters), title, negative_tags, vocal_gender, style_weight, weirdness_constraint, audio_weight, persona_id / persona_model (Suno's reusable style or voice persona - the docs scope these to V5, V5.5, V6 and the V6 variants), lyrics (up to 5000 characters on V6, and it wins over prompt), variety (0–4), instrumental (false by default here), timeout_seconds (1200) and callback_url (leave empty).

    Outputs: audio, url, all_urls_json, task_id, raw_json, credits_consumed, credits_left. Extension produces a new track rather than editing the original, so all_urls_json is where the full set lives, and keeping task_id around lets you chain further extensions.

    Installing

    ComfyUI Manager, search "KIE Nodes Next" - the README still describes registry publication as prepared rather than live, so the manual route is the one that reliably works:

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

    Restart and set the key once at Settings → KIE.ai Nodes Next → Connection. It's validated against KIE before it replaces a working key, the frontend only ever sees a masked fingerprint, and KIE_API_KEY overrides the saved key for headless installs. Four small dependencies, no torch, no model files, no VRAM.

    Where people get burned

    • A URL in audio_id. The node submits, KIE rejects. Files belong on the Upload And Extend node.
    • continue_at outside the track. Chosen too late it fails; chosen too early you get a re-sung chorus. Check the duration.
    • No key configured → an explicit error naming the settings path.
    • A timeout is not a cancellation. Polling stops at timeout_seconds; the job may still finish on KIE's side, and you've paid for it either way. Check credits_consumed before running again.
    • Mixed-release installs are refused at import. Version and generated-node build must match; if they don't, delete the folder and reinstall.
    • Tier mismatch across a chain. If you extend, then extend the extension with a different tier's node, expect a change in voice.

    Extend in short hops rather than one long jump. Fifteen seconds twice usually joins better than thirty once, and if the seam is bad you've only lost one cheap call finding out.

    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—