Nodes/KIE.ai Nodes Next/Upload And Cover Audio · V4.5PLUS
ComfyUI Node

Upload And Cover Audio · V4.5PLUS

Hand it a track, get a re-styled one

By felipederosilva·Created about a month ago·Updated a day ago· 3
Upload And Cover Audio · V4.5PLUS
    • 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►

    A cover, in Suno's sense, is a re-performance: the song's shape survives, the sound changes. This node does that with Suno's V4.5PLUS model - you supply the source audio and a style, it gives you back the same idea wearing different clothes. Useful for the case where you wrote something in the wrong genre, or want the same melody as both a sparse piano version and a full-band one without re-recording anything.

    What happens on the wire

    A single API call, no local model. The node composes the request, submits it to KIE.ai under the transport model ai-music-api/upload-and-cover-audio, and passes V4_5PLUS as the version. Then it blocks - polling the job until it completes or timeout_seconds (default 1200 seconds) runs out - downloads the result and decodes it into a ComfyUI AUDIO object using the torchaudio (or PyAV) that ships with ComfyUI.

    Inputs

    upload_url is required: a public URL to the source audio. It's exposed as a text widget rather than an audio socket in this build, so if the track came from a node in the same graph, host it first - the pack's upload utilities under KIE Next / Utility are the intended path. The documented ceiling is 8 minutes on the source.

    instrumental is required and defaults to true, which means "produce a version with no vocals" - and in that mode the docs tell you not to pass lyrics, prompt or vocal_gender, and note that the source alone is enough to generate. Flip it off and lyrics becomes the words for the cover (falling back to prompt if lyrics is empty).

    style is the control that does the actual work - this is your genre instruction. title is mostly cosmetic but does end up in filenames, and negative_tags is the exclusion list. Everything else is optional trim: vocal_gender (documented as a probability nudge, not a guarantee), variety for spread between takes, and the style_weight / weirdness_constraint / audio_weight dials at 0–1. duration and persona_model are V5.5/V6-family features, so on V4.5PLUS they're inert widgets.

    Outputs

    audio is the cover. all_urls_json retains every URL the provider returned - these requests normally yield a few takes and audio is just the first, so wire it to a text node if you want to shop between them. url, task_id and raw_json cover linking and diagnosis, and raw_json also carries the source_audio_url the provider registered, which is how you confirm the right file went up. credits_consumed and credits_left report spend and remaining balance; both are also shown on the node face after each run.

    Setting up the pack

    In ComfyUI Manager, search the title ComfyUI-KIE-Nodes-Next ("KIE.ai Nodes Next"). The manual equivalent:

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

    Restart ComfyUI afterwards. The pack requires only requests, Pillow, numpy and PyYAML, so there's nothing to download into models/ and nothing to build. Then add your API key once under Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key: the key is validated against KIE before it overwrites a stored one, is written to Comfy's user config rather than into your workflows, and is displayed only as a masked fingerprint. Server installs can skip that step by exporting KIE_API_KEY, which takes priority.

    Where it disappoints

    Covers aren't stem surgery. You can't keep the original vocal and swap only the backing - for that you want Add Instrumental or a stem-separation pass, and Replace Music Section if it's only one part of the track you want changed.

    V4.5PLUS is on the way out. KIE's parameter docs list it (Discontinued) with V4, V4.5, V4.5ALL, V5 and V5.5; the V6 family is current. This node exists because the API page still documents it, and if KIE retires the version the node stops working - no local fix.

    The style field carries the whole result. Vague inputs like "better" produce vague covers. Compare "acoustic folk, fingerpicked guitar, brushed snare, close-miked vocals" against "pop" and you'll understand immediately.

    Metered, unauditioned. Every attempt costs credits, and long sources with busy arrangements are the most likely to come back strange. Learn the node on 30-second clips.

    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—