CatsAPI FLUX.2 Pro
FLUX.2 Pro, the version you can't download
- reference_image
- images
- file_paths
- cost_coins
- task_id
- metadata
The local FLUX.2 story is one model: the 32B Dev, which needs a 48GB card and patience, or Klein, the tiny distilled line that everyone actually runs. FLUX.2 Pro is the third option - Black Forest Labs' commercial API tier, and it doesn't exist as a download at all. If you want it, you call it, and this node is a tidy way to do exactly that from inside a ComfyUI graph. It's one of seven nodes in the ComfyUI_Catsapi pack, each of which wraps a single closed model behind an API at catsapi.com.
The name is a lie, sort of
"Pro" here means "the hosted, pay-per-image version of FLUX.2," not a bigger local checkpoint. The pack calls it flux2Pro behind the scenes, and it inherits FLUX.2's best trick: multi-reference editing. Wire up to three images into the optional reference_image input and it'll compose from all of them - the thing people say the open FLUX.2 line does better than anything else. You get all of that without renting the GPU to run the 56GB-total model, which is the entire point of an API node.
The inputs, which are refreshingly few
prompt- your text, multiline. This is the one you'll actually tune.aspect_ratio- five options:square,portrait_4_3,portrait_16_9,landscape_4_3,landscape_16_9.max_coins- a spending cap in CatsAPI's cat-coins;0means no cap. More on that below.reference_image(optional) - anIMAGEtensor, up to three images.api_key_override(optional) - leave blank locally.
Notice what's not there: no num_images (you get one image per run - the Pro API is single-shot), no size, no quality slider. The node only exposes what the model genuinely accepts, which is the pack's design philosophy and a blessing after a decade of nodes that invent parameters.
Outputs are the pack-standard five: images (a real IMAGE tensor you can plug straight into Preview Image), file_paths (JSON list of where the PNGs landed), cost_coins, task_id, and metadata as a JSON string. The image is downloaded to ComfyUI/output/catsapi/ and converted locally - you can chain a local upscaler or a detailer after it exactly as if a local sampler made it.
How it actually works
Under the hood it's a plain HTTP client: preview the cost, check it against your max_coins, submit the task, poll every three seconds until it's done (15-minute timeout), then download the result with browser-like headers and a curl fallback for CDN bot checks. No model files, no VRAM, no dependencies beyond what ComfyUI already ships.
Install and the key
cd ComfyUI/custom_nodes
git clone https://github.com/maodeyu180/ComfyUI_Catsapi.git
# restart ComfyUI
No requirements.txt, no venv dance - the pack uses urllib plus numpy/PIL/torch that ComfyUI already has. You do need a CatsAPI key from catsapi.com, which costs money and starts with cats-:
export CATSAPI_API_KEY=cats-your-key
python main.py
If your launcher doesn't inherit shell env, drop the same line into a .env file or ~/.catsapi.env and the node reads those too. Keys containing ... are rejected as truncated before any request goes out.
Where people get burned
The classic API-node gotchas apply. The provider is a Chinese reseller with zero reddit footprint - catsapi.com isn't kie.ai, and the pack is young (first commit June 2026), so treat it as fresh territory. Don't paste a filled-in api_key_override into a workflow you share, because ComfyUI serializes widget values into the JSON. And remember: your prompt and reference images leave the machine - that's the mechanism, not a bug. If max_coins is set and the preview exceeds it, the node cancels before submitting, which is a small mercy given video-model prices in this pack. FLUX.2 Pro is single-image, so check your spending on drafts, not finished shots.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| aspect_ratio | COMBO | square | 5 options: square, portrait_4_3, portrait_16_9, landscape_4_3, landscape_16_9 |
| max_coins | INT | 00–100000 | — |
| reference_imageopt | IMAGE | — | |
| api_key_overrideopt | STRING | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| file_paths | STRING | — |
| cost_coins | INT | — |
| task_id | STRING | — |
| metadata | STRING | — |