Replace Music Section · V6
The one you should probably be using
- audio
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
Nine nodes in this folder all do "replace a section of a Suno track", and eight of them pin a provider version KIE has since deprecated. This is the ninth. V6 is the default in KIE's own docs for the operation, it's the version their model notes actually recommend, and it's where persona support is current rather than legacy. Start here unless you're repairing an old track.
What it is
KIE_Next_V6_f76470ea regenerates a time window inside a song you already have, through KIE.ai, using Suno V6. The KIE Next pack generates one ComfyUI node per Market operation and provider version from KIE's catalog, so each version is a separate class - V6's selling points in KIE's note are "stronger musical expressiveness, more natural vocals, and richer details".
Why this operation exists at all: music generation is a slot machine, and the usual failure is not "bad song" but "great song, one bad section". Rolling the dice again loses the good parts. Infill keeps them.
How it works
Name the source, name the window, describe the replacement, supply the corrected lyric sheet - and the provider re-renders that stretch conditioned on the surrounding audio, returning a complete track. Then the pack does its usual thing: build the documented request, submit, poll until timeout_seconds (1200 by default), download the first result URL into a ComfyUI AUDIO, and put the credit receipt on the node face.
Nothing renders on your machine. Suno's models have no open weights, and the honest local alternative - ACE-Step - is a different instrument: excellent for instrumentals, still rough on vocals and lyrics. Section replacement on a track somebody already likes isn't a job local can do yet.
The inputs that matter
task_id (the parent generation) and audio_id (the specific track within it) tell the provider what to operate on. Both are optional fields; both are what the request actually needs. The clean wiring is your music-generation node's task_id output into this input, plus the audio ID lifted from that task's raw_json.
infill_start_s and infill_end_s are the window, in seconds with two decimals. Start must be before end and the gap must be at least 10 seconds. That's the constraint everyone trips on when they want to fix one line.
full_lyrics is required: the entire lyric sheet as it should read after the replacement, untouched lines included. lyrics is the optional field for just the replaced segment - and on V6, V6_MINI and V6_WILD it's capped at 5000 characters. Required prompt, tags, title are the description, the style tags, and the title. (KIE's prompt tooltip reads "the lyrics after replacement" - a documentation slip, not an invitation to paste the song in there.)
persona_id and persona_model are live here, unlike the V4 nodes above: a Persona ID or Voice ID from KIE's Generate Persona / Generate Voice endpoints, with persona_model set to style_persona or voice_persona to match what you pasted.
The shaping dials, which are where the real work happens: variety 0–4 (0 = strictly same style, 4 = "unreasonably varied"), style_weight, weirdness_constraint and audio_weight at 0–1 with 0.65 defaults, negative_tags defaulting to Rock, vocal_gender as a nudge.
Outputs
audio is the finished track - Save Audio, Preview Audio, or KIE • Assemble Video + Music if it's scoring a clip (that node can duck music under dialogue and pad or loop short tracks). Its task_id output is a new task, so a second window can chain. url, all_urls_json, raw_json, credits_consumed and credits_left round it out, and the node only executes when something downstream consumes the audio.
Installing it
ComfyUI Manager → search "KIE.ai Nodes Next", or:
comfy node install kie-ai-nodes-next
Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
pip install -r requirements.txt
Restart ComfyUI, then Settings → KIE.ai Nodes Next → Connection and paste your KIE.ai API key. It's validated against KIE before it replaces a saved key, then shown only as a masked fingerprint. Environment-variable keys are explicitly unsupported, so the key has to go in through Settings.
Dependencies: requests, Pillow, numpy, PyYAML. Nothing to download into models/, no VRAM requirement.
Where people get burned
The ten-second floor. If you need to change four seconds of audio, this node can't - widen the window or accept that the change covers more of the song.
A partial full_lyrics. Send only the new section and the model treats that as the whole lyric. Paste the full sheet with your edit in it.
Paying for exploration. Every run is billed. Iterate by copying the same window and changing one dial - variety first, weights second. Right-click → KIE Next · Check inputs & model controls shows the cached documented fields and limits for a free sanity check before you submit, and KIE • Reuse Completed Image/Video/Audio can pull a finished task back without re-billing it.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | A calm and relaxing piano track. | The lyrics after replacement. Required. |
| tags | STRING | Jazz | Style tags for the music, such as jazz or electronic. Required. |
| title | STRING | Relaxing Piano | The title of the music. Required. |
| infill_start_s | FLOAT | 10.500–10000 | The point in time, in seconds, at which replacement starts, rounded to 2 decimal places. Required. Must be less than infill_end_s, and the difference between infill_end_s and infill_start_s must be at least 10 seconds. |
| infill_end_s | FLOAT | 20.750–10000 | The point in time, in seconds, at which replacement ends, rounded to 2 decimal places. Required. Must be greater than infill_start_s, and the difference between infill_end_s and infill_start_s must be at least 10 seconds. |
| full_lyrics | STRING | [Verse 1]\nOriginal lyrics content\n[Chorus]\nModified lyrics for this section\n[Verse 2]\nMore original lyrics | The complete modified lyrics, combining the modified and unmodified lyrics. Required. This parameter contains the complete lyrics text that will be used for the entire song after section replacement. |
| task_idopt | STRING | 2fac****9f72 | The original task ID (parent task), used to identify the source music for section replacement. |
| audio_idopt | STRING | e231****-****-****-****-****8cadc7dc | The unique identifier of the audio track to be replaced. This ID is returned in the callback data after music generation is completed. |
| negative_tagsopt | STRING | Rock | Music styles to exclude, used to prevent specific stylistic elements from appearing in the replacement section. |
| lyricsopt | STRING | [Chorus]\nModified lyrics for this section | Lyrics for the replaced segment. Optional. - 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 |
| 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.650–1 | Adherence strength to specified style. Optional. Range 0–1, up to 2 decimal places. |
| weirdness_constraintopt | FLOAT | 0.650–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. |
| 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. |
| upload_urlopt | STRING | https://example.com/audio.mp3 | The URL of the custom audio uploaded by the user. |
| 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 | — |