Recovery Audio
Getting a Suno Track Back When the Node Gave Up on You
- audio
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
A repair tool, not a generator
Everything else in the Suno section of this pack makes music. This node fetches music you already made. It hits KIE's recovery endpoint - a GET that takes a task_id and hands back the record information for that job - which is the thing you reach for when a generation actually succeeded on KIE's side but your graph lost the result: ComfyUI was closed mid-run, the wait timed out, the tab died, or you queued a batch of six songs and only remember the URL for two of them.
Local music generation has genuinely arrived - ACE-Step runs on a 4 GB card at quality people describe as "approaching Suno v4.5/v5," and it's Apache/MIT licensed, so you can train LoRAs on it. But the recurring complaint is vocals and lyrics, and that's exactly the job where hosted Suno still wins. So a node that recovers a good Suno take instead of making you regenerate it is worth having: a burned credit and a lost URL shouldn't mean a second bill.
What you feed it
The input list is deliberately tiny:
- task_id - optional in the schema, but this is the node. The
task_idoutput of your music-generation node is what goes here. The placeholder default ({task_id}) is exactly what it looks like: a template, not a value. - expert_override_json - the pack's escape hatch, present because this endpoint's documentation doesn't publish a request schema. Leave it as
{}unless you're deliberately overriding something.
No timeout_seconds, no callback_url. That's not an oversight: this is a GET lookup, so there's no job to wait on.
Outputs are the pack's audio standard: audio, url, all_urls_json, task_id, raw_json, credits_consumed, credits_left. Realistically you'll wire audio into a Save or preview node and keep raw_json for when you want to see what the endpoint actually reported about the task.
How to actually use it
You need the ID from before. If you still have the earlier run's graph, that's easy - the music node emits task_id, so pull it from the raw_json/task_id value you logged, or from KIE's own dashboard, and type it into the widget by hand.
A quick practical note: this node is a lookup, not a render, so it won't cost you a generation. If audio comes back empty but url or raw_json has a link in it, don't assume the recovery failed - feed the URL into KIE • Download File (which takes a URL plus a suffix and writes a local path), or KIE • Download Image if you want the cover art. Download File is the flexible one for audio.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
pip install -r ComfyUI-KIE-Nodes-Next/requirements.txt
Restart ComfyUI, then set the key once at Settings → KIE.ai Nodes Next → Connection. The connection panel shows your credit balance alongside the ✅ CONNECTED status, which is a decent way to confirm the key before you spend a recovery attempt on a typo'd task ID.
Honest limits
It recovers your own tasks. It doesn't recover a task from a different KIE account, and a genuinely failed generation stays failed - the endpoint reports record info, it doesn't re-run anything. If KIE's Suno endpoint has already discarded the record, there's nothing to fetch, and that window is not something you control. Save your task IDs somewhere. The one-line version: this is the seatbelt, not the brake.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| task_idopt | STRING | {task_id} | — |
| expert_override_jsonopt | STRING | {} | Expert-only payload overrides for APIs whose documentation has no request schema yet. |
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 | — |