Generate Music Cover
One text field, and the fix that made it work again
- audio
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
A one-input node with a genuinely useful job: take a track you already generated on Suno, and have the model produce a cover version of it. Best-in-class songs with clean vocals is still a place Suno beats everything open-weight, so if you're producing music in ComfyUI through KIE, this is the "do that again, differently" step.
What it takes
The card exposes exactly one real input:
task_id (required) - the task ID of the original music generation, the one returned by the music-generation endpoint. That's it. No style field, no prompt, no audio socket. You can't steer much from here; the endpoint is keyed on the source job.
Plus timeout_seconds (1200 default, 30–7200) and callback_url (leave empty for normal ComfyUI use).
That thinness is the honest summary of the node: it's a handle, not a mixing desk. If you want a different song from a prompt, use a Suno music-generation card; if you want this song re-performed, paste its task ID here.
Outputs
audio - a ComfyUI AUDIO object, ready for a Save Audio node or further processing. url - the primary hosted result. all_urls_json - every URL the API reported, which is the output to keep on any Suno-family job, because these endpoints routinely return more than one artifact (alternate takes, extra tracks) and the pack preserves the full list rather than just the first URL. task_id - the cover job's own handle; keep it if you want to chain another operation onto the result. raw_json - the whole response. credits_consumed and credits_left - floats, mirrored by the credits receipt the node draws on itself after a successful run.
The interesting part: a real bug that got fixed
The pack's release history is unusually candid about what was broken, and this node family is where it was worst. Earlier versions sent a provider version string (things like a Suno model code) as the wrong field in KIE's request envelope, which made covers and other Suno operations fail at the API - the fix ships the documented ai-music-api envelope model and keeps the selected Suno version in the nested input payload. A separate repair handled the case where image references and Custom Mode were submitted together, which the provider rejects outright.
Two practical consequences for you. First, keep the pack updated - if this node fails on submit while everything else works, you're probably on an older install. Second, an already-generated task doesn't need re-running: the notes are explicit that affected workflows work after a ComfyUI restart, and that a failed task isn't re-submitted or charged twice. So don't sit there re-queueing a job that failed on the envelope.
Install and key
ComfyUI Manager can find the pack by title. Otherwise:
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
pip install -r ComfyUI-KIE-Nodes-Next/requirements.txt
Restart after installing. Requirements are requests, Pillow, numpy, PyYAML - no models, no local audio stack, no VRAM. The node is a client and every call is metered by KIE.
Key in Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key. It's validated against KIE before it replaces a saved key, and you get a masked fingerprint plus a CONNECTED status. Headless installs can set KIE_API_KEY, which takes priority.
Gotchas
Wrong ID, wasted credits. The field wants the music generation task ID specifically. A cover ID or a lyrics ID will not resolve.
Don't retry blindly after a submit failure. Some failures are local validation (the pack rejects invalid combinations before sending), and some are provider-side. Read the error text before you queue again - the pack is specific about which is which.
Old installs keep old bugs. This node's history is a good argument for updating the pack before debugging anything else.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| task_id | STRING | 73d6128b3523a0079df10da9471017c8 | Original music task ID, should be the task_id returned by the music generation interface. |
| 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 | — |