Nodes/SeedanceComfyUI/Seedance Retrieve Task (Ace Data Cloud)
ComfyUI Node

Seedance Retrieve Task (Ace Data Cloud)

The node that turns a task ID into an actual video

By AceDataCloud·Created 3 days ago·Updated 2 days ago· 0
Seedance Retrieve Task (Ace Data Cloud)
    • status
    • task_id
    • media_urls_json
    • first_media_url
    • result_json
    • trace_id
    ◄parameters_json{}►
    ◄task_id►
    ◄wait_seconds0►

    The generate node hands you a task ID and walks away. This is the node that goes back and asks how it went. If you've ever paid for a hosted video render and spent the next five minutes refreshing a web dashboard, this is the direct replacement for that reflex - you queue it in the graph, set how long you're willing to sit there, and it comes back when there's news.

    It's also the node in this pack you can hammer without thinking about your wallet: retrieval is a read-only query against existing work, so it creates no task and consumes no credits. Poll as much as you like.

    How it works

    You give it a task ID and a patience budget. Under the hood it POSTs action: retrieve with that ID to /seedance/tasks and normalises whatever comes back into a pending / succeeded / failed / partial verdict. If the job is still running and you've asked for wait_seconds above zero, it sleeps for up to five seconds and asks again - repeating until either the status changes or the clock runs out. Then it returns.

    That loop is why 240 is the ceiling: it's four minutes of waiting inside a single node execution, not a queue position. Longer jobs just mean running the node again, which is free.

    Because these calls are read-only, the transport treats them differently from a paid submission: connection errors are retried up to three times with a short backoff. The generate node deliberately doesn't do that. Here it's safe, so it does.

    The inputs, all three of them

    • task_id - required STRING, empty by default. This is the one you fill. You can drag a wire from the generate node's task_id output into it (right-click the widget → convert to input) so the ID flows through automatically, or paste it. A non-empty widget always wins over anything in the JSON.
    • wait_seconds - INT, 0 to 240, default 0. At 0 you get a single poll and an immediate answer, which is what you want when the job finished ten minutes ago and you're just collecting. Set it to 60–240 when you're waiting on a fresh submission. The value is validated locally, so 300 is rejected before a request goes out.
    • parameters_json - the multiline escape hatch every tool node in this pack carries, default {}. You almost never need it here.

    Give it nothing and it fails fast with "A task ID or supported trace ID is required." - a friendly error, not a mystery.

    Outputs

    The same six strings as the generate node, so the wiring is symmetrical: status, task_id, media_urls_json, first_media_url, result_json, trace_id. Three do the work - status to see where you are, task_id to keep or pass along, first_media_url as the input to Seedance Load Video. media_urls_json is a JSON array of everything the task produced, which matters when a job returns more than one clip.

    A failed task doesn't quietly return empty URLs; normalization raises Task failed. Use its task or trace ID to inspect the service request. The pair of those IDs is your support ticket, so screenshot them before you clear the run.

    Installing

    Manager is quickest: search Seedance, confirm Seedance by Ace Data Cloud from the acedatacloud publisher, install, restart. Otherwise:

    cd ComfyUI/custom_nodes
    git clone https://github.com/AceDataCloud/SeedanceComfyUI
    python -m pip install -r SeedanceComfyUI/requirements.txt
    export ACEDATACLOUD_API_KEY=your-key   # in the shell that launches ComfyUI
    

    Two small dependencies, no local model. This node still needs the API key even though the query is free - it's the same authenticated endpoint. The README's ComfyUI 0.39.0 floor applies to the pack's native video loader, not to this query node, so an older install can still retrieve; it just can't load the result.

    Where people get burned

    A wrong ID doesn't necessarily scream at you. If the service hands back nothing useful, the pack reads that as "not finished yet" and reports pending rather than an error. So pending means "no completion came back", not "your render is alive and well".

    Skipping the middle node. The generate node returns pending by design, and nothing makes it block until the video exists. Generate → Retrieve → Load Video is the shape; skip the retrieve and you're staring at an empty first_media_url.

    Assuming pending costs money. It doesn't - this node is free to run - but a 240-second wait that expires with the job still running feels like one.

    Last thing, because it applies to the whole pack: this is a third-party wrapper over a reseller API, not one of Comfy's vetted Partner Nodes. It reads your key from the environment, sends it to api.acedata.cloud, and keeps it out of workflow JSON and logs. The source is short enough to read in one sitting. It should.

    CategoryAce Data Cloud/Seedance

    Inputs (3)

    NameTypeDefaultDescription
    parameters_jsonSTRING{}—
    task_idSTRING—
    wait_secondsINT00–240—

    Outputs (6)

    NameTypeDescription
    statusSTRING—
    task_idSTRING—
    media_urls_jsonSTRING—
    first_media_urlSTRING—
    result_jsonSTRING—
    trace_idSTRING—