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

Generate Mashup Music · V4

Two songs walk into a node

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

    A mashup of two tracks is a genuinely fun thing for a graph node to do, and it's the least predictable node in this Suno family. Set expectations accordingly: you're handing two songs to a model and asking it to fuse them, and the results swing between "that's actually clever" and "why is the bass doing that".

    What it does

    It takes two audio URLs, a style, a title and a pile of optional knobs, and generates a single new track that blends them. It's the same Suno generation stack as the rest of the family, so the same argument applies about why you're calling an API at all - instrumental fusion is something local models handle, but vocals and production polish are the parts the open tools haven't closed.

    Inputs

    upload_url_list is the required, and unusual, one. It wants a JSON array of audio URLs, exactly two of them - upstream only reads the first two, and each has to be publicly reachable. The widget default is a worked example, so it's clear what shape is expected; the practical way to fill it is two KIE • Upload Audio nodes whose url outputs you paste into the array. If your build of the node shows numbered AUDIO sockets named something like upload_url_1 / upload_url_2 instead of the text box, connect your two clips there - the pack's README describes exactly that behaviour for Suno two-track inputs, and the two forms are equivalent in intent.

    style and title are both required here and both feed directly into how the output is labelled and structured - style is the genre steer (Jazz in the example) and title becomes the track's name in players and filenames.

    prompt is optional alongside them: a description of what you want, used as lyrics only when lyrics is empty. lyrics is the explicit version and wins if both are filled. Everything else is the family's standard tuning set: vocal_gender (m or f, a probability nudge rather than a promise), style_weight (0.61 by default here), weirdness_constraint (0.72 - noticeably higher than the other Suno nodes' 0.65, which is telling: blending two sources is inherently further out), audio_weight, variety (0–4, default 1), and persona_id with persona_model - voice_persona if you want a cloned voice on the result, style_persona for a saved style.

    duration is present and documented as valid only on V5.5 and later, so on this V4 node it won't do what you hope. timeout_seconds (30–7200, default 1200) and callback_url (leave empty in ComfyUI) complete the form.

    Outputs

    audio, url, all_urls_json, task_id, raw_json, credits_consumed, credits_left. Wire audio into a core Save Audio or preview node. Keep task_id in the graph if you're iterating on a blend, because the way mashups actually go is five attempts and one keeper, and you'll want to know which task was which.

    Install

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

    Restart ComfyUI, then set your key once under Settings → KIE.ai Nodes Next → Connection - validated before saving, with a masked fingerprint, a CONNECTED status and your credit balance. ComfyUI Manager installs it too (search "KIE.ai Nodes Next"), and KIE_API_KEY overrides the saved key for headless setups. Four light dependencies, no model downloads, everything metered per call.

    Real talk on the version and the odds

    This is the V4 variant, and KIE marks V4 as discontinued across its Suno docs; the same mashup endpoint exists as newer nodes in your menu and you should use those unless you have a reason not to.

    More importantly: mashups are the Suno feature most likely to produce something you don't want, because you're giving the model two competing strong signals. Two takes on one blend is optimistic. Budget for a handful of generations, change one knob at a time - weirdness_constraint and style_weight are the two that move the result most - and be ready to conclude that your two songs were simply never going to work together. That's not the node failing. That's mashups.

    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—