Generate Mashup Music · V6
Wiring up Generate Mashup Music · V6
- audio
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
What this node actually is
Despite the name, nothing here is a local model and nothing here is free. KIE_Next_V6_fd06c31d is a ComfyUI socket-shaped wrapper around KIE.ai's Suno mashup endpoint - you hand it two songs, a style and a title, it hands you back a new track that sounds like the two had a child. It's one of a family: KIE's docs list the model as V6, so the pack generated a node per version, and V6_MINI and V6_WILD mashups sit next to this one in the add-node menu.
Why would you want a mashup at all? Because it's the cheapest way to get a specific sound without describing it in words. You already have a track whose groove you like and another whose vocals you want; a text prompt can only approximate that, an audio reference nails it.
How it works
The node does three things under the hood. It builds the request body from your widgets, sends it to KIE's createTask endpoint, then polls recordInfo itself until the job finishes - every 2.5 seconds at first, backing off to about 15. KIE's own model string travels inside the request payload (V6) while the outer job envelope uses KIE's market name for the mashup API. That distinction used to be a bug in older builds (v0.4.10 fixed it), and it's the first thing to suspect if a submission is rejected before any audio is made.
Once the task reports success, the node downloads the track and decodes it into ComfyUI's standard AUDIO object. No local model, no VRAM - the compute happens on KIE's side and hits your credit balance.
The inputs that matter
upload_url_list- the one people get wrong. It's a multiline text field, not a socket, and it wants a JSON array:["https://.../a.mp3", "https://.../b.mp3"]. Give it two publicly reachable URLs; the tooltip is blunt that upstream only reads the first two. Local files won't work here. Upload first with KIE • Upload Audio and paste the URL it returns.styleandtitle- genuinely required, and cheap to get wrong: style is what steers the fusion ("Jazz", "lo-fi hip-hop, tape hiss"), title is just a label that shows up in players and filenames.prompt- the desired-content description. It doubles as lyrics only whenlyricsis empty, which surprises people who type a scene description into it and get it sung.duration- 10–360 seconds, default 20. Short by default; if you want a full track, set it deliberately.
Then the knobs that do the actual directing: style_weight (how hard the style is enforced), weirdness_constraint (how far the model wanders), audio_weight (how much the source audio's character survives), variety (0–4, the "surprise me" dial), and vocal_gender, which the tooltip admits only nudges probability rather than guaranteeing anything. persona_id plus persona_model lets you apply a saved Suno style or voice persona if you've created one.
Outputs and where they go
audio is the native ComfyUI audio - wire it into a Save Audio node, a video mux, or anything downstream that wants sound. url gives the first result URL, task_id names the job, and raw_json is the full provider response. The one you should not skip: all_urls_json. Suno returns two tracks per mashup, and the audio socket only carries the first one. If the second take is the good one, it lives in all_urls_json - read it out and download it separately. credits_consumed and credits_left are also drawn directly on the node after each run.
Install
Manager search won't always find it yet - the repo ships Comfy Registry metadata (publisher felipeosilva) but the README still frames the store route as upcoming. The reliable paths:
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
cd ComfyUI-KIE-Nodes-Next && pip install -r requirements.txt
Requirements are light (requests, Pillow, numpy, PyYAML) - nothing exotic, no model downloads. Windows users can grab the one-click installer from the repo's dist/ folder instead. Then restart ComfyUI and paste your KIE key once in Settings → KIE.ai Nodes Next → Connection; the pack validates it before replacing an existing key, shows a masked fingerprint, and honours KIE_API_KEY for headless boxes.
Where people get burned
- JSON syntax errors.
upload_url_listmust parse as JSON. A bare comma-separated list fails immediately with "must contain valid JSON". - Dead URLs. KIE fetches them server-side. A
localhostlink or a private bucket URL gives you a failed task you paid for. - Content filters. Lyric-heavy or copyrighted-sounding prompts can come back killed with KIE's sensitive-word status. Reword and resubmit.
- Timeout, not failure.
timeout_secondsdefaults to 1200. If the node times out, the job may still be running - check it with KIE • Task Status or KIE • Wait for Task using thetask_idinstead of re-submitting, which charges you again.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| upload_url_list | STRING | [ "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. |
| prompt | STRING | A calm and relaxing piano track with soft melodies | A 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. |
| style | STRING | Jazz | Music 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. |
| title | STRING | Relaxing Piano | Title 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_genderopt | COMBO | m | Vocal 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_weightopt | FLOAT | 0.610–1 | Strength of adherence to the specified style. Optional. Range 0–1, up to 2 decimal places. |
| weirdness_constraintopt | FLOAT | 0.720–1 | Controls experimental/creative deviation. Optional. Range 0–1, up to 2 decimal places. |
| audio_weightopt | FLOAT | 0.650–1 | Balance weight for audio features vs. other factors. Optional. Range 0–1, up to 2 decimal places. |
| lyricsopt | STRING | [Verse] Keep the melody flowing Into a gentle bridge [Chorus] Let the piano rise and fall | Lyrics 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. |
| varietyopt | INT | 10–4 | Controls 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_idopt | STRING | persona_123 | Persona 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_modelopt | COMBO | style_persona | Persona 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. |
| durationopt | INT | 2010–360 | Audio duration in seconds. Optional. Range 10–360, default 20. Valid when `model` is ~~V5_5~~ (Discontinued), V6, V6_MINI, or V6_WILD. |
| timeout_secondsopt | INT | 120030–7200 | — |
| callback_urlopt | STRING | Optional KIE callback URL. Leave empty for normal ComfyUI use. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| url | STRING | — |
| all_urls_json | STRING | — |
| task_id | STRING | — |
| raw_json | STRING | — |
| credits_consumed | FLOAT | — |
| credits_left | FLOAT | — |