Nodes/SunoComfyUI/Suno Retrieve Lyrics (Ace Data Cloud)
ComfyUI Node

Suno Retrieve Lyrics (Ace Data Cloud)

Suno Retrieve Lyrics is free — run it like a refresh button

By AceDataCloud·Created 3 days ago·Updated 2 days ago· 0
Suno Retrieve Lyrics (Ace Data Cloud)
    • status
    • task_id
    • lyrics_json
    • trace_id
    ◄task_id►

    Half of Suno Generate Lyrics requests finish instantly. The other half come back as a task_id with no words attached, and this is the node that turns that ID into actual lyrics. It submits nothing, it waits for nothing, and it costs nothing - it's a read of an existing task, which makes it the node you can hammer without guilt.

    What it is

    Suno Retrieve Lyrics (Ace Data Cloud) takes one input - task_id, a string - and posts a retrieve action to Ace's /suno/tasks endpoint. That's a read-only call in the pack's own bookkeeping, which buys two useful properties: the client retries it up to three times on a flaky connection instead of failing on the first blip, and no new paid job is ever created by running it.

    There is deliberately no wait_seconds here, unlike its music counterpart. That's the design difference between the two retrieve nodes: Suno Retrieve Task will sit and poll for up to 240 seconds because you're waiting on a song, while this one does a single query and hands you the state. Lyrics jobs are quick, so waiting isn't the problem - deciding whether the words are good is.

    The outputs

    Four strings, no surprises:

    • status - pending until the task sets a finished timestamp or reports a complete state, then succeeded.
    • task_id - echoed, so you can loop it back into another run without retyping.
    • lyrics_json - the lyrics as a JSON string, empty while pending. The pack trims the raw response down to customer-facing fields (titles, lyric/text/content keys) before serialising, so what you get is the words, not the plumbing.
    • trace_id - the handle for Ace's request history if something needs explaining.

    A failed task raises rather than returning failed as a status, so a broken job can't be confused with a slow one. Same for a task that finishes with no lyric text at all: the node would rather shout than hand you an empty string.

    Where it fits

    Lyrics are the cheap iteration loop in a song workflow. The KB's read on music generation - audio-generation.md - is that the hosted route still owns clean vocals and decent words, while the local route is strong on instrumentals; the practical consequence is that you want to nail the words before you spend on a track. Generate lyrics, read lyrics_json through a text node, regenerate if it rhymes "fire" with "desire" for the fourth time, then paste the keeper into a generation node.

    If you're building this as a loop rather than a two-click ritual, this node is the piece that makes it idempotent: query, don't submit. A workflow that regenerates lyrics every time you want to check on them is a workflow that quietly spends credits in the background.

    Install

    Part of the pack, so nothing beyond the pack itself. Manager → Custom Nodes → search Suno → publisher acedatacloud, package Suno by Ace Data Cloud (Registry ID ace-suno) → install → restart. Source route:

    cd /path/to/ComfyUI/custom_nodes
    git clone https://github.com/AceDataCloud/SunoComfyUI.git
    cd SunoComfyUI
    python -m pip install -r requirements.txt
    

    requests and jsonschema. No model files. Set the key where ComfyUI itself runs:

    export ACEDATACLOUD_API_KEY='paste-your-key-here'
    python main.py
    

    When it goes wrong

    The Suno lyrics task ID is required. Empty input. Usually a wiring mistake - the generate node returned a blank task_id because it succeeded synchronously, and you piped that blank straight here. Check status on the generate side first.

    pending forever. Either the task genuinely hasn't finished or the ID belongs to something else. Paste it into the Ace console and look; a lyrics task ID and a music task ID are both just strings to this node.

    Suno lyrics task lookup failed. The ID doesn't exist, isn't yours, or your application lost access. A 401/403 in the same breath means key or path restrictions.

    Your lyrics look thin. Have a look at the status you got back. succeeded with a short payload is the API's answer, not a truncation - the fields are filtered, not clipped.

    CategoryAce Data Cloud/Suno

    Inputs (1)

    NameTypeDefaultDescription
    task_idSTRING—

    Outputs (4)

    NameTypeDescription
    statusSTRING—
    task_idSTRING—
    lyrics_jsonSTRING—
    trace_idSTRING—