Nodes/KIE.ai Nodes Next/Generate Mashup Music · V4.5PLUS
ComfyUI Node

Generate Mashup Music · V4.5PLUS

The last Suno mashup before the V6 line

By felipederosilva·Created about a month ago·Updated a day ago· 3
Generate Mashup Music · V4.5PLUS
    • audio
    • url
    • all_urls_json
    • task_id
    • raw_json
    • credits_consumed
    • credits_left
    ◄upload_url_list[ "https://example.com/audio1.mp3", "https://example.com/audio2.mp3" ]►
    ◄promptA calm and relaxing piano track with soft melodies►
    ◄styleJazz►
    ◄titleRelaxing Piano►
    ◄vocal_genderm►
    ◄style_weight0.61►
    ◄weirdness_constraint0.72►
    ◄audio_weight0.65►
    ◄lyrics[Verse] Keep the melody flowing Into a gentle bridge [Chorus] Let the piano rise and fall►
    ◄variety1►
    ◄persona_idpersona_123►
    ◄persona_modelstyle_persona►
    ◄duration20►
    ◄timeout_seconds1200►
    ◄callback_url►

    Same endpoint as the V4.5 mashup node, different model version. V4.5PLUS is the "richer sound, max 8 min" rung of that ladder, and for a genre blend it's a reasonable pick inside the legacy family - bigger, denser results than V4.5, without moving up to the V6 nodes that KIE now treats as current.

    If you're building a music bed for a render, this is the kind of node that saves you from hunting royalty-free loops: two existing tracks you like, one hybrid that matches your mood, delivered as a normal AUDIO object you can pipe anywhere.

    Mechanism

    Pure API call. The node assembles a POST to KIE.ai, tagged with the transport model ai-music-api/mashup and V4_5PLUS as the model version inside the payload, then polls the task until it resolves or timeout_seconds (default 1200 - twenty minutes) runs out. Nothing loads onto your GPU; the only local work is decoding the returned MP3 into ComfyUI's audio format, using the torchaudio (or PyAV) that ComfyUI already ships with.

    Inputs you cannot skip

    upload_url_list is required and wants a JSON array of public URLs - this endpoint fetches the audio itself:

    [
      "https://example.com/a.mp3",
      "https://example.com/b.mp3"
    ]
    

    Only the first two entries are used. style, title and prompt are required widgets; style is the real steering wheel, prompt doubles as lyrics only if lyrics is empty (lyrics wins otherwise), and title lands in filenames downstream so don't leave it as "Relaxing Piano" unless that's the plan.

    Beyond that: variety (0 = strict single style, 1 = default balance, 2 = clearly distinct takes, 3 = bold exploration, 4 = maximum, wildly different), the 0–1 dialects style_weight / weirdness_constraint / audio_weight, and vocal_gender - which the docs describe honestly as only increasing the probability of the requested voice, not guaranteeing it. duration and persona_model are scoped to the V5.5/V6 family and are inert here. persona_id defaults to the placeholder string persona_123; empty optional strings are dropped before submission, so clearing it is safe.

    Outputs

    audio is the blend. all_urls_json holds every URL the response returned - mashups come back with multiple takes and audio is just the first, so this is worth wiring to a text display node if you want to compare them. url, task_id and raw_json cover linking and forensics, and raw_json is the only honest way to see what the provider actually did with your two source tracks. credits_consumed and credits_left are floats, and the node prints "credits spent / credits left" on its face after every run.

    Setup

    Manager → search the title ComfyUI-KIE-Nodes-Next; or:

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

    Restart ComfyUI afterwards. It needs requests, Pillow, numpy and PyYAML - no weights, no model directory, no build step. Then add your key in Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key; the pack validates it against KIE before replacing a stored key, keeps it out of the workflow, and shows a masked fingerprint. Servers can export KIE_API_KEY instead and skip the settings dance.

    The boring but important caveats

    Legacy version. KIE's parameter docs list V4.5PLUS (Discontinued) with V4, V4.5, V4.5ALL, V5 and V5.5, and offer V6/V6_MINI/V6_WILD as the live family. The node exists because the docs still publish the version; if KIE drops it, the node will start erroring, and the fix is to switch to the V6 sibling rather than debug anything.

    Not a remixer. You can't keep track A's drums and track B's vocal - that's stem separation plus a DAW. This blends whole songs, and the output is whatever the model decides a blend of those two styles sounds like.

    Metered per attempt. Nothing gets previewed before you spend. Running variety: 3 a dozen times to browse ideas is a real expense for what is usually a background decision.

    Copyright, not code. Feeding two released songs in and publishing the blend is a licensing question. The node doesn't care; your distributor might.

    CategoryKIE Next/Audio/Suno/Music Generation

    Inputs (15)

    NameTypeDefaultDescription
    upload_url_listSTRING[ "https://example.com/audio1.mp3", "https://example.com/audio2.mp3" ]Array of audio file URLs to mashup. Provide 2 audio URLs. Upstream uses only the first 2. Each URL must be publicly accessible.
    promptSTRINGA calm and relaxing piano track with soft melodiesA description of the desired audio content. 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.
    styleSTRINGJazzMusic style specification for the generated audio. Required. - Character limits by model: - **V4** (Discontinued): Maximum 200 characters - **V4_5 & V4_5PLUS** (Discontinued): Maximum 1000 characters - **V4_5ALL** (Discontinued): Maximum 1000 characters - **V5 & V5_5** (Discontinued): Maximum 1000 characters - **V6, V6_MINI & V6_WILD**: Maximum 1000 characters - Common examples: Jazz, Classical, Electronic, Pop, Rock, Hip-hop, etc.
    titleSTRINGRelaxing PianoTitle for the generated music track. Required. - Character limits by model: - **V4** (Discontinued): Maximum 80 characters - **V4_5 & V4_5PLUS** (Discontinued): Maximum 100 characters - **V4_5ALL** (Discontinued): Maximum 80 characters - **V5 & V5_5** (Discontinued): Maximum 100 characters - **V6, V6_MINI & V6_WILD**: Maximum 100 characters - Will be displayed in player interfaces and filenames.
    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.
    style_weightoptFLOAT0.610–1Strength of adherence to the specified style. Optional. Range 0–1, up to 2 decimal places.
    weirdness_constraintoptFLOAT0.720–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.
    lyricsoptSTRING[Verse] Keep the melody flowing Into a gentle bridge [Chorus] Let the piano rise and fallLyrics for the mashup. 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.
    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
    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_personaPersona model. Optional. Use `style_persona` for Generate Persona IDs, or `voice_persona` for Suno Voice IDs. Default: `style_persona`. Available for V5 (Discontinued), V5_5 (Discontinued), V6, V6_MINI, and V6_WILD.
    durationoptINT2010–360Audio duration in seconds. Optional. Range 10–360, default 20. Valid when `model` is ~~V5_5~~ (Discontinued), V6, V6_MINI, or V6_WILD.
    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—