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

Upload And Cover Audio · V6_WILD

Upload And Cover Audio · V6_WILD

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

    The premise

    Same job as any cover node - hand it a track you already have, get that track re-performed in a different style - but running the V6_WILD version of Suno, which KIE's own docs describe as pushing "creative boundaries for bolder, more distinctive musical expression." KIE_Next_V6_WILD_fad7101c is that call, wrapped as a ComfyUI node with an audio output.

    Where V6_WILD is worth the risk: covers that should sound like a different artist, not a different mix. If you want the same song with better drums, the tamer versions are the better tool. If you want your folk demo to come back as a warehouse rave that still has your chorus melody, this is the lever.

    It's worth saying plainly what this node is not: a local model. Nothing runs on your GPU, and the source audio leaves your machine. It's an API-wrapper node - a thin, well-built one - and your KIE credit balance is the meter.

    How it works

    The node assembles the cover request from its widgets, submits it to KIE's task API, and then polls until the job resolves, starting at 2.5-second intervals and backing off toward 15, all inside the timeout_seconds budget (default 1200 seconds, settable up to 7200). On success it downloads the result and decodes it into ComfyUI's AUDIO object, so downstream nodes see normal audio. The model version travels in the request body while the outer envelope uses KIE's market name for the cover endpoint - a split that older builds got wrong, which is worth remembering if you're on anything before v0.4.10 and seeing model rejections.

    KIE fetches your source server-side. That's the part people trip over: the URL has to be publicly reachable.

    Inputs, in the order they'll bite you

    1. upload_url - required, a URL string, not a socket. Local file? Send it through KIE • Upload Audio and use the URL that comes back. Keep the source under 8 minutes; that's a documented limit, and going over buys you a failed job.
    2. instrumental - required, and it defaults to true. Leave it and you get an instrumental cover with no vocals at all. The docs are also clear that prompt, lyrics and vocal_gender shouldn't be passed when it's true, so decide this before you write anything else.
    3. prompt - your lyrics for the cover (required widget, but the docs treat it as optional and it loses to lyrics when both are set).
    4. style - required in spirit if you want control; "Classical" is just the shipped placeholder. This is where the whole "different artist" idea lives.
    5. negative_tags - the anti-style field. Keep it short and specific.
    6. duration - 10 to 360 seconds, default 20.
    7. vocal_gender, and the three floats: style_weight, weirdness_constraint, audio_weight - all defaulting to 0.65 here. With WILD, weirdness_constraint is the dial that decides whether you get a bold cover or a stranger's song with your title on it.
    8. variety - 0 to 4. At 4 the two returned takes can be wildly different, which is either the point or a nuisance depending on your deadline.
    9. persona_id + persona_model - apply a saved Suno style or voice persona to the cover.

    Outputs

    audio - the finished cover, native ComfyUI audio. url - the primary result URL. all_urls_json - every URL from the response, which matters because each request returns two takes and the socket only carries the first. task_id - the job id, useful for status checks and for feeding extension nodes. raw_json - the full provider payload. credits_consumed and credits_left - the spend, also shown on the node after the run.

    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, then paste your KIE.ai key once under Settings → KIE.ai Nodes Next → Connection. The pack validates the key before it overwrites a working one and shows a masked fingerprint instead of the key. Headless installs can set KIE_API_KEY instead and it takes priority. Dependencies are requests, Pillow, numpy and PyYAML - nothing heavy, no checkpoints. There's a Windows one-click installer in the repo's dist/ folder.

    Realistic failure modes

    An unfetchable upload_url and an over-long source file both end as failed tasks. KIE returns a reason string, and raw_json is where you read it. Timed-out jobs are the sneaky one: the node gives up before the provider does, so check task_id with KIE • Task Status or KIE • Wait for Task rather than resubmitting and paying again. And blank or placeholder style values are the most common reason a cover comes back sounding like nothing in particular.

    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—