FLUX.2 [pro] Text-to-Image
It's just a paid API call
- image
FLUX.2 [pro] is the tier of Black Forest Labs' November 2025 release that only runs on their servers. The open-weights Dev version needs 18–24GB VRAM even quantized and still takes minutes per image; pro just needs a key and a credit card. This node is a thin client for that API: you type a prompt, it phones home to api.bfl.ai/v1/flux-2-pro, and hands the finished image back as a normal IMAGE tensor. No model download, no VRAM, no sampler settings. That's the whole deal.
What it actually does
Under the hood there's a small HTTP client in the pack (Flux2API). Your graph builds a payload - prompt, width, height, seed, safety tolerance, output format - POSTs it to BFL with your key in an x-key header, then polls every second until the job is Ready or hits the 600-second timeout. When it's done it downloads the signed result URL and converts it to the IMAGE tensor ComfyUI expects. The example workflow in the repo is exactly one node feeding a Save Image.
One correction while we're here: the README half-promises URL-based inputs and outputs, but the shipped code doesn't work that way. The edit nodes take tensors, and every node returns a tensor ready for Save Image. Trust the code, not the stale README.
The inputs that matter
- prompt - multiline text, the thing you're generating.
- width / height - 64–2048 and they must be multiples of 16 (default 1024), with a 4MP total cap.
- seed -
-1is random; set a positive integer to reproduce a result. - safety_tolerance - 0 (strict) to 6 (permissive), default 2. BFL's moderation dial.
- output_format - jpeg or png, default jpeg.
Notice what's missing: steps and guidance. That's not an oversight. Pro is BFL's curated quality tier - they tune the sampling server-side, and you pay for the privilege of not thinking about it. If you want the dials, that's what the flex nodes in this same pack exist for.
Install
The pack is on ComfyUI Manager under "ComfyUI-Floyo-Flux2-API-node", or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/ritik-devsecops/ComfyUI-Floyo-Flux2-API-node
cd ComfyUI-Floyo-Flux2-API-node
pip install -r requirements.txt
Dependencies are almost insultingly light - requests, Pillow, and numpy. No model files anywhere. The one thing you can't skip is an API key from api.bfl.ai. Put it in config.ini at the repo root or export it:
export BFL_API_KEY=your_real_key_here
Then restart ComfyUI. If the key is missing or still the <your_bfl_api_key_here> placeholder, you'll see a WARNING in your console.
Where people get burned
The big one: on any failure the node returns a black image, not an error. Bad key, moderation block, timeout, network hiccup - the code catches the exception, logs it to your ComfyUI terminal, and hands back a blank 512×512 tensor. A black result means the call failed; read the console before you rerun and pay again.
That "pay again" is the other real gotcha. Each generation bills your BFL account, and pro requests aren't instant. Iterating a 50-prompt batch is a metered habit, not a free one. Also keep width/height multiples of 16 - an invalid dimension returns an "Error:" string that isn't an image and will trip up anything downstream.
Should you use it?
If you want genuine FLUX.2 quality and you don't have the hardware or the patience for the local Dev route, this is the cleanest path into the graph. If you'd rather run FLUX.2 locally, Klein 4B/9B is the community's answer - cheap, fast, editing included. Pro is the "I just want the result" option, and it's honest about being that.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Describe what to generate. | |
| width | INT | 102464–2048 | Output width (multiple of 16, 64-2048). |
| height | INT | 102464–2048 | Output height (multiple of 16, 64-2048). |
| seedopt | INT | -1-1–4294967295 | -1 = random. Any other integer is reproducible. |
| safety_toleranceopt | INT | 20–6 | Moderation level 0 (strict) to 6 (permissive). |
| output_formatopt | COMBO | jpeg | Output format. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |