Get Lyrics Task Details
Get Lyrics Task Details
- text
- task_id
- raw_json
- credits_consumed
- credits_left
What it's for
Suno has a write-my-lyrics endpoint separate from its make-me-a-song one, and this node reads the result of one of those jobs. It's a text node wearing an audio-family costume: it goes and fetches the record of a lyrics task so you can pull the words out and use them somewhere else - as a prompt for a different music model, as a caption, as an input to a local ACE-Step run, or just to see what the model came up with before you commit credits to a full track.
That last use is underrated. Lyrics quality is the notorious weak spot in AI music - the community complaint about ACE-Step is that the sound is great and "the lyrics are absolute garbage," and it isn't much kinder about Suno on that front. So writing the words as a separate step, checking them, then generating is a workflow people actually run. This node is the checking half.
It's a read. Nothing is generated, nothing is billed.
How it works
The node queries the Suno lyrics task record through the pack's authenticated client. Because the family reports itself the Suno way, the pack's status reader expects a status value on the response and treats SUCCESS as complete, while raising a KIE API error on the terminal failures - CREATE_TASK_FAILED, GENERATE_AUDIO_FAILED, CALLBACK_EXCEPTION, SENSITIVE_WORD_ERROR, FAILED. For a lyrics job, GENERATE_AUDIO_FAILED won't come up much, but SENSITIVE_WORD_ERROR absolutely can: Suno's filter applies to text too.
Note the output kind, because it tells you what this node is for. Where its siblings declare audio or video, this one declares text - the pack's text signature, five outputs rather than seven. It's the same family, different payload.
Inputs and outputs
Required: prompt - multiline STRING, "Prompt sent to this KIE model." This is the pack's fallback placeholder: KIE's docs page for this record endpoint had no machine-readable request schema when the catalog was built, so the node came out of the generic template. A record lookup doesn't take a prompt, so passing text here accomplishes nothing.
Optional:
timeout_seconds- INT, default 1200, min 30, max 7200, step 30.expert_override_json- STRING, default{}, the escape hatch for unschema'd pages. On a GET node the pack sends these as query parameters, so the task ID you're asking about belongs in here. This is the field that does the work.
The pack re-fetches failing documentation pages on demand, so a UI reload can upgrade the node to real documented inputs later.
Outputs are the text signature: text (STRING) - your lyrics, or the formatted response - plus task_id, raw_json (STRING) and credits_consumed / credits_left (FLOAT). There's no url and no all_urls_json here, because there's no media to link. Wire text into a text preview, a save-text node, or straight into a local music pipeline.
Installing
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 paste your key at Settings → KIE.ai Nodes Next → Connection. The pack validates the key before saving it, then shows only a masked fingerprint; the real key stays in ComfyUI's user config directory and out of your workflow JSON, which is the behaviour you want in a node pack that holds a credential. Headless installs can use KIE_API_KEY and skip the panel.
Dependencies are requests, Pillow, numpy, PyYAML - nothing to download, no GPU. The Windows one-click installer in dist/ is the README's recommended route if you'd rather not extract the folder yourself.
Where people get burned
The recurring one for this whole family: an empty expert_override_json means you queried nothing. If the node returns a clean, empty record, that's the first thing to check.
Second, don't expect to reuse output from a music task here. Lyrics-in-a-record and lyrics-via-the-lyrics-endpoint are different jobs. If you want the words that were actually sung in a finished track - with their timing - you want the timestamped-lyrics node instead; this one is about the text-generation task.
Third, timing. Lyrics come back fast compared to a render, but "fast" still isn't "instant," and querying before the task terminates gives you an in-progress record that looks like a failure in a graph with no status branch.
Finally, keep the honest limits in view. This is a networked call carrying your key, on a metered reseller API, and its content filter is the provider's. Resellers can't loosen the model's own refusals, whatever the marketing suggests.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Prompt sent to this KIE model. | |
| timeout_secondsopt | INT | 120030–7200 | — |
| expert_override_jsonopt | STRING | {} | Expert-only payload overrides for APIs whose documentation has no request schema yet. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |
| task_id | STRING | — |
| raw_json | STRING | — |
| credits_consumed | FLOAT | — |
| credits_left | FLOAT | — |