Nodes/Flux by Ace Data Cloud/Flux Retrieve Task (Ace Data Cloud)
ComfyUI Node

Flux Retrieve Task (Ace Data Cloud)

How you actually get your image out of Ace Data Cloud

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

    If you've wired up the Flux generate or edit node and got nothing but a task ID back, this is the node you were missing. It's the least exciting node in the pack and the one you will use in every single workflow: it takes a task ID and asks the service "is it done yet, and where's the file?"

    Why a second node exists at all

    The generate, edit and video nodes in this pack submit jobs asynchronously. The client forces async: true on those requests, so the normal return is a status of pending and a task_id - not an image. That's not a bug; a hosted Flux Pro render or a 20-second FLUX 3 clip doesn't fit in an HTTP response cycle.

    So the pattern for every paid node in this pack is the same two-step:

    Flux Generate Image  →  task_id  →  Flux Retrieve Task  →  first_media_url  →  Flux Load Image
    

    Inputs that matter

    task_id - the string from the submit node's task_id output. It's yours; the API tracks it under your account, so you can come back to it tomorrow. Copy it somewhere safe the moment you get it.

    wait_seconds - 0–240, default 0. This is the one setting worth thinking about. At 0 the node does a single snapshot and returns whatever it finds. Above 0 it polls the task endpoint every five seconds - up to the number you set - and returns early the moment the job stops being pending. For an image, 60–120 is usually plenty. A 240-second ceiling on a video job will often time out while the job is still running.

    parameters_json - the advanced escape hatch, same as on every node in this pack. Leave it as {} unless you need a field the widgets don't expose.

    Outputs

    All six outputs are strings, and all six are worth knowing:

    • status - pending, succeeded, partial or failed. This is your if-statement.
    • task_id - echoed back, so you can loop it into a second retrieve node when wait_seconds ran out.
    • media_urls_json - every media URL the service returned, as a JSON array.
    • first_media_url - the convenient one. Wire this to Flux Load Image or Flux Load Video.
    • result_json - the normalized response. The pack scrubs internal fields (request bodies, credential IDs, upstream routing) before it hands this to you, so what's left is safe to paste into an issue.
    • trace_id - the service's request identifier, and the fastest way to get a support answer or check your spend history.

    What it costs

    Retrieval is a read. The pack marks these task lookups as read-only requests, and the README says plainly that read-only queries and media downloads shouldn't spin up a new paid task. Two practical corollaries:

    1. Re-running a graph that contains only the retrieve node re-queries and doesn't rebill.
    2. Re-running a graph that contains the submit node submits again and does. If your graph is "submit → retrieve → load" and you hit Queue to poll a slow job, you've just paid twice. Bypass the submit node (Ctrl+B) for the re-check, or keep the submit step in its own graph and paste the ID in by hand.

    Paid submissions are deliberately never retried after a connection failure by this client, on the theory that a retry you didn't ask for is a charge you didn't ask for. If the node dies mid-request, check the request history with your task ID before queueing again - that's one of the few places these nodes are conservative, and it's for your benefit.

    Install

    Manager: search Flux, publisher acedatacloud, package Flux by Ace Data Cloud. Manual:

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

    Restart afterwards, and set the key in the ComfyUI process environment - ACEDATACLOUD_API_KEY (or ACEDATACLOUD_API_TOKEN) - then restart again. Retrieving still needs the key, because the task has to be matched to your account. Keys pasted into a widget end up in workflow JSON, screenshots and issue reports, so don't.

    Common issues

    status says pending and first_media_url is empty. Fine, keep querying. Raise wait_seconds, or re-queue the retrieve node with the same task_id.

    The load node then throws "Task is pending; retrieve the same task ID again." That error comes from the loader, not from here, and it means exactly what it says: you're a step early. Beginners read it as "the retrieve node failed" - it didn't, it returned pending honestly and you wired an empty string into a downloader.

    "Set ACEDATACLOUD_API_KEY in the ComfyUI process environment and restart." The key isn't visible to the ComfyUI process - usually because it was exported in a terminal you didn't launch ComfyUI from.

    A task ID that "doesn't exist". It's from another account. These lookups resolve against yours and only yours.

    CategoryAce Data Cloud/Flux

    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—