Nodes/KIE.ai Nodes Next/Upload And Cover Audio · V6_MINI
ComfyUI Node

Upload And Cover Audio · V6_MINI

Upload And Cover Audio · V6_MINI

By felipederosilva·Created about a month ago·Updated a day ago· 3
Upload And Cover Audio · V6_MINI
    • audio
    • url
    • all_urls_json
    • task_id
    • raw_json
    • credits_consumed
    • credits_left
    ◄upload_urlhttps://storage.example.com/upload►
    ◄promptA calm and relaxing piano track with soft melodies►
    ◄instrumentaltrue►
    ◄styleClassical►
    ◄titlePeaceful Piano Meditation►
    ◄negative_tagsHeavy Metal, Upbeat Drums►
    ◄vocal_genderm►
    ◄style_weight0.65►
    ◄weirdness_constraint0.65►
    ◄audio_weight0.65►
    ◄persona_idpersona_123►
    ◄persona_modelstyle_persona►
    ◄lyrics[Verse] Keep the melody flowing Into a gentle bridge [Chorus] Let the piano rise and fall►
    ◄variety1►
    ◄duration20►
    ◄timeout_seconds1200►
    ◄callback_url►

    What it does, and when to reach for it

    Cover generation is Suno's party trick: you feed it a song you already have, and it re-performs it in a different style while keeping the melody recognisable. KIE_Next_V6_MINI_06886759 is that, inside ComfyUI, running on the V6_MINI model - KIE's "lightweight and fast, balancing quality and speed" tier - through KIE.ai's API.

    Reach for it when you have audio and want a different production of the same tune. A demo you wrote that needs a full-band arrangement. A track whose mood doesn't fit the video you're cutting. A karaoke-flavoured alternate. It's also the fastest route to a cover with real vocals if you're one of the many people who found local music models great at instrumentals and shaky at singing - that gap is exactly why API music nodes exist in a ComfyUI graph at all.

    How it works

    No local model, no VRAM. The node builds the request, submits it to KIE's task queue, then polls for the result itself with a 2.5-to-15-second backoff, bounded by timeout_seconds (default 1200). When the job is marked successful, the node downloads the returned audio and decodes it into ComfyUI's native AUDIO type, so the rest of your graph treats it like any locally produced sound. The V6_MINI version rides inside the request payload; the outer envelope uses KIE's market name for this endpoint. The spend lands on your KIE credit balance and gets printed on the node once it finishes.

    Your source audio goes to KIE's servers, and KIE's fetcher has to be able to reach it - so it needs to be a URL anyone can pull, not a path on your box.

    Inputs that matter

    • upload_url - the source track. A URL, not an audio socket, so a local file needs to go through KIE • Upload Audio first. The tooltip is specific about a real constraint: keep the upload under 8 minutes.
    • instrumental - and here's the trap. The widget ships on. If you leave it alone you get an instrumental cover, vocals stripped, no matter what you typed into prompt. The docs also say not to supply prompt, lyrics or vocal_gender while instrumental is true, so flip it to false first and then write lyrics.
    • prompt - lyrics for the cover when instrumental is false. It is ignored as lyrics if you also fill lyrics, which takes priority.
    • style - the thing that makes it a cover rather than a remaster. "Classical" is the placeholder default; put the genre you actually want.
    • title - cosmetic, 80 characters, shows up in filenames.
    • negative_tags - what to keep out ("Heavy Metal, Upbeat Drums" by default). Cheap steering, actually works.
    • duration - 10–360 seconds, default 20. The default is a clip, not a song.

    The rest is fine-tuning: style_weight (0.65), weirdness_constraint (0.65) and audio_weight (0.65) to decide how far the cover drifts from the original; variety (0–4) for stylistic spread; vocal_gender for a nudge toward male or female, which the tooltip is honest about only shifting probabilities; and persona_id + persona_model if you want a saved Suno style or voice persona applied on top.

    Outputs

    audio is the cover - native ComfyUI audio, ready for Save Audio or a video mux. url is the primary result URL, all_urls_json holds every URL returned, task_id is the job handle, raw_json is the provider response verbatim, and credits_consumed / credits_left report the cost.

    Suno returns two takes per request. audio gives you the first; the alternate is only in all_urls_json. Check it before you decide the cover missed.

    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 afterwards. Dependencies are requests, Pillow, numpy, PyYAML - no model files, nothing to download, no GPU footprint. Windows users can use the one-click installer in the repo's dist/ folder; ComfyUI Manager support is the pack's stated direction, but the clone is the dependable route today.

    Then, one time: Settings → KIE.ai Nodes Next → Connection, paste your KIE.ai API key. It gets checked against KIE before it replaces anything saved, and you'll see a masked fingerprint plus a connected status once it sticks. KIE_API_KEY in the environment takes priority for servers.

    Where people get burned

    Instrumental on, vocals missing. The single most common confusion with this node, and it's a default, not a bug.

    Over-long source. Past the 8-minute mark, expect a failed task rather than a warning.

    Private or localhost URLs. KIE fetches the file server-side.

    Timeouts that weren't failures. If timeout_seconds runs out, the task may still be alive - poll the task_id with KIE • Task Status or KIE • Wait for Task instead of re-running it and paying twice.

    A sensitive-word rejection. Lyric content is filtered upstream; raw_json will say so, and rewording is usually enough.

    CategoryKIE Next/Audio/Suno/Music Generation

    Inputs (17)

    NameTypeDefaultDescription
    upload_urlSTRINGhttps://storage.example.com/uploadThe URL of the source audio file to cover. Required. Source audio (`upload_url`) is enough to generate. Ensure the uploaded audio does not exceed 8 minutes in length.
    promptSTRINGA calm and relaxing piano track with soft melodiesLyrics for the covered audio. 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. - Not required. Source audio (`upload_url`) is enough to generate. - Do not pass this parameter when `instrumental` is `true`.
    instrumentalBOOLEANtrueDetermines if the audio should be instrumental (no lyrics). - If `true`: generate instrumental music (no vocals). Do not pass `lyrics`, `prompt`, or `vocal_gender`. - If `false`: use `lyrics` as lyrics (fall back to `prompt` if `lyrics` is not provided).
    styleoptSTRINGClassicalThe music style or genre for the audio. Optional. - Not required. Source audio (`upload_url`) is enough to generate. - Character limits by model: - **V4**(Discontinued): Maximum 200 characters - **V4_5 & V4_5PLUS**(Discontinued): Maximum 1000 characters - **V4_5ALL**(Discontinued): Maximum 1000 characters - **V5_5 & V5**(Discontinued): Maximum 1000 characters - **V6, V6_MINI, and V6_WILD**: Maximum 1000 characters
    titleoptSTRINGPeaceful Piano MeditationThe title of the generated music track. Optional. - Maximum 80 characters. - Displayed in player interfaces and filenames.
    negative_tagsoptSTRINGHeavy Metal, Upbeat DrumsMusic styles or traits to exclude from the generated audio. - Optional. Use to avoid specific styles. Example: "Heavy Metal, Upbeat Drums"
    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. Do not pass this parameter when `instrumental` is `true`.
    style_weightoptFLOAT0.650–1Strength of adherence to the specified style. Optional. Range 0–1, up to 2 decimal places.
    weirdness_constraintoptFLOAT0.650–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.
    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_personaThe persona model is only available for models version 5 and 5.5.
    lyricsoptSTRING[Verse] Keep the melody flowing Into a gentle bridge [Chorus] Let the piano rise and fallLyrics for the covered audio. 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. - Not required. Source audio (`upload_url`) is enough to generate. - Do not pass this parameter when `instrumental` is `true`.
    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
    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—