Replace Music Section · V5
The first Suno version that could hold a persona
- audio
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
Here's the one thing that separates this node from the V4 family stacked above it in the menu: persona_id and persona_model. V5 is the oldest provider version where KIE documents persona support, so it's the first Suno rung where "replace this section, and keep sounding like that voice" is even expressible. It's also marked deprecated, which makes it a curious little corner of the catalog: capable of something the nodes below it can't do, and still not the one you should reach for.
What it is
KIE_Next_V5_eaa0685a regenerates a time window inside an existing Suno track through KIE.ai. The KIE Next pack builds one ComfyUI node per KIE Market operation and provider version, so V5 gets its own class with the version pinned inside - you can't switch it to V6 from a dropdown.
KIE's note on V5 credits it with "superior musical expressiveness with faster generation" and lists it as deprecated. The replacement for new work is V6 (or V6_MINI / V6_WILD), which also supports personas - so the only genuinely good reason to be here is reproducing or repairing a track that was made on V5.
How it works
Section replacement is infill: 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. You get a complete track back.
The transport is the pack's generated-node pipeline: request assembly, task creation, polling until timeout_seconds (1200 by default), download of the first result into a ComfyUI AUDIO, credit receipt on the node face. Nothing renders locally - Suno isn't open weights - so there's no VRAM question and nothing to download into models/.
The inputs that matter
task_id (parent generation) and audio_id (the track inside it) identify the source. Both optional in the schema, both effectively required. Wire task_id from the node that made the song and pull audio_id from its raw_json.
infill_start_s / infill_end_s set the window in seconds to two decimals - start before end, minimum ten seconds wide. This single rule kills more first attempts than anything else on the node.
full_lyrics (required) is the whole song after the edit; lyrics (optional) is just the replaced segment. Required prompt, tags and title are description, tags, name - and yes, KIE's prompt tooltip calls it "the lyrics after replacement", which is a documentation slip, not a request for the whole lyric sheet.
Now the persona pair, the reason this node exists in an article of its own. persona_id takes a Persona ID or Voice ID created by KIE's separate Generate Persona / Generate Voice endpoints. persona_model tells the provider which kind you pasted: style_persona for Generate Persona IDs, voice_persona for Suno Voice IDs, with style_persona as the default. Pasting a voice ID while the model says style_persona is a plausible way to get a result that ignores you - match them.
variety (0–4) controls how far the section may stray; style_weight, weirdness_constraint and audio_weight are 0–1 dials at 0.65; negative_tags defaults to Rock and does exclude; vocal_gender only raises the odds.
Outputs
audio → Save Audio, Preview Audio, or KIE • Assemble Video + Music if the track scores a clip. The node's task_id output is a new task ID, so a second replacement window can start from it. url, all_urls_json, raw_json, credits_consumed, credits_left complete the set. Not an output node - no downstream consumer means no execution.
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, then Settings → KIE.ai Nodes Next → Connection and paste your KIE key. It's validated before it replaces a saved key, displayed masked afterwards, and never lands in workflow JSON. Environment variables aren't supported - the pack is explicit about that.
Dependencies: requests, Pillow, numpy, PyYAML. No weights, no VRAM.
Where people get burned
Persona model mismatch, covered above. It's the most node-specific mistake here and the least self-explaining when it happens.
Building a new workflow around a deprecated version. If you want persona-driven music today, do it on V6 and keep this node for the archive.
Window and lyric-sheet errors. Both are caught by the pack's local preflight before upload when they're mechanical (window too narrow), and both cost nothing when caught. Right-click → KIE Next · Check inputs & model controls shows the cached documented fields and limits for this exact node.
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 | — |