Nodes/KIE.ai Nodes Next/Generate Mashup Music · V5
ComfyUI Node

Generate Mashup Music · V5

Two hosted tracks, one V5 blend

By felipederosilva·Created about a month ago·Updated a day ago· 3
Generate Mashup Music · V5
    • 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►

    Suno's mashup endpoint, on the V5 version - described by KIE as "superior musical expression, faster generation". Two source tracks in, a hybrid that borrows from both out, delivered as a ComfyUI AUDIO you can save or drop under video.

    It's the least glamorous music node in this pack and the most directly useful one if you score your own renders: instead of hunting a loop that half-matches your mood, blend two things you already like and steer the result with a style string.

    What it does

    Pure API work - no local model. The node assembles the request, submits it to KIE.ai under the transport model ai-music-api/mashup, and carries V5 as the model version in the payload. Then it blocks the queue and polls until the job resolves or timeout_seconds (default 1200 - twenty minutes) runs out, and decodes the returned audio into ComfyUI's format.

    The inputs

    upload_url_list is required and takes a JSON array of public URLs:

    [
      "https://example.com/one.mp3",
      "https://example.com/two.mp3"
    ]
    

    Only the first two entries are used, and KIE's servers fetch them, so local paths and localhost links fail. This is the one structural annoyance of the mashup nodes: unlike the generation node next door, nothing gets uploaded for you.

    style, title and prompt are all required. style is what actually steers the blend; prompt behaves as lyrics only when lyrics is empty, and lyrics wins otherwise. title shows up in filenames, so set it to something you'd recognise in a folder listing.

    variety (0–4, default 1) controls how far the takes drift apart: 0 locks to a single style, 2 gives clearly distinct versions, 4 is the "results may differ very significantly" end. style_weight, weirdness_constraint and audio_weight are 0–1 nudges and rarely make or break anything.

    The persona pair - persona_id and persona_model - is genuinely live on V5 (the docs scope persona_model to V5, V5.5, V6, V6_MINI and V6_WILD), so if you've built a style or voice persona with the pack's Generate Persona node, this is where to apply it. duration is valid on V5.5/V6/V6_MINI/V6_WILD but not on plain V5, so leave it alone here.

    Outputs

    audio is the blend. all_urls_json keeps every URL the response returned - mashups come back in multiple takes and only the first becomes audio, so wiring this to a text display node lets you choose after the fact instead of re-generating. url, task_id and raw_json are the linking and diagnostic outputs, and raw_json is the only view of exactly what the provider did with your two sources. credits_consumed and credits_left report the spend; the node also renders both on its face after every run.

    Install

    ComfyUI Manager, search ComfyUI-KIE-Nodes-Next. Or:

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

    Restart ComfyUI once it's cloned. The pack's requirements are requests, Pillow, numpy and PyYAML - nothing to compile and no weights to fetch. Then set the key in Settings → KIE.ai Nodes Next → Connection: paste it into Paste / replace KIE.ai API key, let the pack validate it, and you'll get a masked fingerprint plus a connected status. The key never enters your workflow JSON, and KIE_API_KEY in the environment overrides the saved one for headless installs.

    Honest caveats

    V5 is discontinued. KIE's parameter docs list V5 and V5.5 alongside V4, V4.5, V4.5PLUS and V4.5ALL as (Discontinued); V6, V6_MINI and V6_WILD are the current family. The node works because the API page still documents the version - the V6 mashup node in the same folder is the safer bet for anything long-lived.

    It blends songs, it doesn't remix them. There's no stem control, so "keep the drums from A, the vocal from B" is not something this node can express.

    Hosting is your problem. Two dead links equal one paid failure. Check both URLs resolve to actual audio files before running.

    Rights are your problem too. Blending two released tracks and publishing the result is a licensing discussion, and the API is indifferent to it.

    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—