Add Instrumental to Music · V6_MINI
Strip a track down to a backing
- audio
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
What you'd use it for
KIE_Next_V6_MINI_81b404fc uploads an audio file and asks Suno to produce an instrumental version of it. Karaoke backing for a song you wrote. A music bed for a video that shouldn't carry vocals. A clean backing to sing over in a different key. It runs the fast V6_MINI tier, which suits this kind of job - you'll usually re-run it a few times until the arrangement feels right.
Two things make it interesting in a ComfyUI context. First, it's a regeneration rather than a filter: the model isn't muting a vocal stem, it's performing the track as an instrumental, which is why you can also nudge the instrument(s) it lands on. Second, this is the endpoint that pairs with a music-video workflow - the backing you generate here can loop under a clip while the vocal version stays in your archive.
How the request works
The node assembles the payload, submits it to KIE's task queue, and then polls for the result itself, starting at 2.5 seconds and backing off toward 15 until it lands or timeout_seconds (default 1200, max 7200) runs out. When the task succeeds, the node downloads the audio and decodes it to ComfyUI's AUDIO object. The V6_MINI model id is sent in the request body; KIE's market name for this endpoint carries the outer envelope. As with every node in this pack, nothing runs locally - KIE does the work, your credits pay for it, and your uploaded audio has to be reachable by their servers.
Inputs, and one naming quirk
Four required fields:
upload_url- the source audio as a URL. It's not an audio socket, so local files take a detour through KIE • Upload Audio first.title- required, cosmetic, ends up in the filename.negative_tags- required. Musicians' instinct is to put the style here; don't. It's the exclusion list ("heavy metal, fast drums" by default).tags- required, and this is the quirk. The Add Vocals node in this same family calls its style fieldstyle; this one calls ittags. Same idea, different key, because the two KIE endpoints document it differently. If you're copying a lyric workflow across, this is the field that won't line up.
Optional: lyrics - which the docs allow but which you almost certainly want empty on an instrumental job; the sensible reading is that it's there because the endpoint shares plumbing with its siblings. vocal_gender exists on the schema too, for the same reason, and behaves as a probability nudge when it applies at all. style_weight (0.61), weirdness_constraint (0.72), audio_weight (0.65) - for this job, audio_weight is the dial that decides whether you get your arrangement as an instrumental or a looser reinterpretation of it. variety (0–4) spreads the returned takes apart.
Outputs
audio - the instrumental, native ComfyUI audio. url - the first result URL. all_urls_json - every URL returned, and the one to check, since only the first take reaches the socket. task_id - the job id. raw_json - the full provider response. credits_consumed / credits_left - the receipt.
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 once it's in place. The dependency set is requests, Pillow, numpy, PyYAML - a light install with no models to fetch and no VRAM cost. Windows users can run the one-click installer from the repo's dist/ folder instead of a terminal. The pack ships Comfy registry metadata (publisher felipeosilva, display name "KIE.ai Nodes Next"), so Manager support is where this is going; the clone is what works reliably now.
Then the key, once: Settings → KIE.ai Nodes Next → Connection. It's validated against KIE before it replaces a stored key and shown only as a masked fingerprint. KIE_API_KEY in the environment takes priority on headless boxes.
What to watch for
If the result comes back with vocals on it, that's usually lyrics being populated or a tags value describing a vocalist rather than an arrangement - the model reads the request literally. Unreachable source URLs fail at the provider end, and private buckets are the usual culprit. Timing out doesn't mean the task died; check task_id with KIE • Task Status or KIE • Wait for Task before submitting again. And keep in mind this is a paid API call per attempt, so iterate on the cheap stuff - tags wording - before burning runs on weight tweaks.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| upload_url | STRING | https://example.com/music.mp3 | URL of the uploaded audio file. Required. Source audio (`upload_url`) is enough to generate once `title`, `negative_tags`, and `tags` are provided. |
| title | STRING | Relaxing Piano | Title of the generated music. Required. Will be displayed in the player interface and file name. |
| negative_tags | STRING | heavy metal, fast drums | Music styles or characteristics to exclude from the generated audio. Required. Used to avoid specific unwanted music elements. |
| tags | STRING | relaxing, piano, soothing | Music styles or tags to include in the generated music. Required. Defines the desired music style and characteristics. |
| vocal_genderopt | COMBO | m | Vocal gender preference. Optional. 'm' for male, '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 | Adherence strength to specified style. Optional. Range 0–1, up to 2 decimal places. |
| weirdness_constraintopt | FLOAT | 0.720–1 | Controls experimental/creative deviation level. Optional. Range 0–1, up to 2 decimal places. |
| audio_weightopt | FLOAT | 0.650–1 | Relative weight of audio elements. 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 generated audio. Optional. - V6, V6_MINI, and V6_WILD: Maximum 5000 characters. - Not required. Source audio (`upload_url`) is enough to generate once `title`, `negative_tags`, and `tags` are provided. |
| 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 |
| 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 | — |