Flux Generate Image (Ace Data Cloud)
Flux Pro and Flux 2 without owning the GPU
- status
- task_id
- media_urls_json
- first_media_url
- result_json
- trace_id
This node does not run Flux. It posts your prompt to Ace Data Cloud's hosted Flux endpoints and hands back a task ID. That sounds like a downgrade until you remember the model list includes tiers you cannot download at any VRAM, and that on a laptop with no card this is the entire workflow.
What it is
A thin, schema-validated wrapper over POST /flux/images. You get the nine fixed model IDs the service publishes, a size field, a count, a prompt, and the outputs every paid node in this pack shares: status, task_id, media_urls_json, first_media_url, result_json, trace_id.
The models, and which ones are worth a credit
Eight real choices plus the (from JSON/default) sentinel:
flux-dev(the default) andflux-pro- BFL's Flux.1 tiers. Pro never left the API, and it's the one hosted name here with no local equivalent.flux-kontext-pro,flux-kontext-max- the Flux.1 in-context editors. Great at holding a subject across edits and famous for watermark removal. These are the ones the edit node accepts; here they're how you'd generate with a reference image.flux-2-flex,flux-2-pro,flux-2-max- the hosted Flux 2 line. Flux 2 Dev is open weights but brutal (a 32B transformer plus a Mistral-3 encoder, ~53 GB before you're done), so the API tiers are the practical way to touch Flux 2 quality without a 48 GB card.flux-2-klein- the odd one out. Klein is the small Flux 2 line that is open, and the 4B distilled variant runs in about 8 GB at four steps. Paying per image for klein is defensible if you have no GPU, and a bit silly if you have anything from the last three generations.
The inputs you actually set
prompt - required by the contract. An empty prompt is a validation failure before any request goes out, which is how you want it: the failure costs nothing.
model - leave it on the sentinel if you want the service default (flux-dev), or pick a tier.
size - pixel dimensions like 1024x1024 for the Flux.1 and Flux 2 models. Watch this one: if the resolved model starts with flux-kontext, the size must be an aspect ratio - 1:1, 16:9, 4:3, 3:2, 2:3, 3:4, 9:16 - and the client rejects pixels with "Kontext size must be an aspect ratio such as 1:1." That check runs on this node too, since generate and edit share an endpoint.
count - number of images, default 1. This is your money dial; every unit is a separate billed image.
image_url - present here because generate and edit post to the same endpoint with the same schema. Leave it empty for text-to-image; supply a reference URL and a kontext model and you've effectively done reference-guided generation. callback_url is an optional webhook - skip it unless you're building a service.
parameters_json remains the escape hatch for fields the widgets don't expose, and any non-empty widget overrides the matching key in it.
Submit, then retrieve, then load
Submissions here are forced async, so expect status: pending and a task ID - not pixels. The chain is:
Flux Generate Image → Flux Retrieve Task (wait_seconds 120) → Flux Load Image
result_json is sanitized before you see it, so it's the safest output to paste when asking for help. The pack is also stubborn about not double-charging: it will not retry a paid submission after a connection failure. If a run dies mid-request, look up the task ID before queueing again.
Install
Manager: search Flux, confirm publisher acedatacloud and package Flux by Ace Data Cloud (registry ID flux), install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/AceDataCloud/FluxComfyUI
python -m pip install -r requirements.txt
Dependencies are requests and jsonschema - no model files, no GPU. Then put your key in the ComfyUI process environment as ACEDATACLOUD_API_KEY (or ACEDATACLOUD_API_TOKEN) and restart, so it never lands in workflow JSON or a screenshot.
Common issues and the honest downsides
"Set ACEDATACLOUD_API_KEY in the ComfyUI process environment and restart." The key wasn't visible to the process - usually exported in the wrong shell, or set after ComfyUI started.
Empty first_media_url. You're one step early. Query the task ID again; read status instead of guessing.
Contract errors before any spend. Malformed size, an out-of-range count, a missing prompt - all caught client-side. Treat those messages as free.
The real tradeoffs, straight from the category this node belongs to: cost is per call and it adds up faster than the electricity you saved; your prompt and reference image leave your machine and land on a reseller's server; and whatever the hosted model refuses, you cannot patch, because there are no weights to edit. Ace Data Cloud itself has essentially no Reddit footprint under either of its names - no community track record either way. The pack's risk profile is mild for the category, at least: the credential comes from the environment rather than a widget, and errors are scrubbed of tokens.
If you have a GPU and want Flux, run it locally. Reach for this node for the tiers you simply cannot host.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| parameters_json | STRING | {} | — |
| model | COMBO | (from JSON/default) | 9 options: (from JSON/default), flux-dev, flux-pro, flux-kontext-pro, flux-kontext-max, flux-2-flex, +3 |
| size | STRING | — | |
| count | STRING | — | |
| prompt | STRING | — | |
| image_url | STRING | — | |
| callback_url | STRING | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| status | STRING | — |
| task_id | STRING | — |
| media_urls_json | STRING | — |
| first_media_url | STRING | — |
| result_json | STRING | — |
| trace_id | STRING | — |