Nodes/FluxComfyUI/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 3 days ago·Updated 2 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—