Flux Pro 1.1 Ultra (BFL)
The overkill sibling, tamed into a dropdown
- config
- IMAGE
Flux Pro 1.1 Ultra is the version of Flux Pro 1.1 that exists to be a flex. Higher resolution, sharper detail, the same API-only wall - and, for most everyday work, honestly more model than you need. If plain Pro 1.1 already gives you results you're happy with, Ultra mostly buys you larger output and slightly more expense. But when you need a big, detailed render and you don't want to upscale locally, this is the node.
It's the same pack as the rest of the BFL wrappers - gelasdev's ComfyUI-FLUX-BFL-API, the community-standard bridge to Black Forest Labs' paid API. Same cloud model, same cost structure, same "no local weights, ever" deal that made Flux Pro a sore point for the local-first crowd. You're here because you decided the API tax is worth it, and that's a fine decision - just spend it on Ultra deliberately, not by accident.
How it works
Identical mechanics to its little sibling: the node POSTs your settings to api.bfl.ai/v1/flux-pro-1.1-ultra, gets a task ID back, then polls get_result every five seconds until the image is READY, decodes it, and outputs a normal IMAGE tensor. Everything shows up as [BFL] lines in the console. The main difference is the endpoint and the way you size it.
Where Pro 1.1 takes explicit width and height, Ultra instead takes an aspect_ratio dropdown - 16:9, 4:3, 1:1, 3:2, 21:9, and the portrait mirrors of those, defaulting to 16:9. BFL figures out the resolution, which removes the "must be a multiple of 32" trap entirely. Pick the shape, get a bigger-than-default image than the base node produces.
The inputs that matter
- aspect_ratio - the one you'll actually touch. It's the whole sizing model, so choose it over fretting about pixels.
- prompt - same deal as Pro 1.1: natural language, be specific.
- raw - this is the Ultra-specific knob. Leave it false and BFL quietly enhances/upsamples your prompt for better results. Flip it true when you want your prompt taken literally - e.g. when you've written something precise and BFL's "helpful" rewriting is drifting off your intent.
- prompt_upsampling - a separate toggle for that same behavior if you want to control it explicitly.
- safety_tolerance (0–6, default 2) and output_format (jpeg/png) - same as every other node in this pack.
Also optional: seed (-1 = random), image_prompt plus image_prompt_strength (0–1, default 0.1) for steering by a reference image - feed it the base64 string from the pack's Image to Base64 node - and config for the Flux Config (BFL) node.
Output is a single IMAGE, wired straight into PreviewImage or SaveImage.
Installing
Same as the rest of the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/gelasdev/ComfyUI-FLUX-BFL-API.git
pip install -r requirements.txt
Then set your API key - either in config.ini (the X_KEY line) or, smarter, by wiring a Flux Config (BFL) node into the config input so the key rides inside the workflow and survives updates.
Common issues
Ultra inherits the pack's two classic headaches, so they're worth repeating here. First: failure returns a blank 512×512 black image, not an error - check the [BFL] console log for the real story (bad key, CONTENT_MODERATED, or an exhausted poll). Second: config.ini is tracked by git, so updates clobber your key; the Flux Config node is the fix.
The Ultra-specific gotcha is cost and expectations. Ultra is the premium tier of a pay-per-use API, and each generation burns credits while it spends longer on the reasoning stage. If you're iterating on a prompt, do it on plain Pro 1.1 and only push the winner through Ultra. That's the workflow that makes this node's price tag feel sane.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| aspect_ratio | COMBO | 16:9 | 9 options: 16:9, 4:3, 1:1, 3:2, 21:9, 9:16, +3 |
| prompt_upsampling | BOOLEAN | false | — |
| safety_tolerance | INT | 20–6 | — |
| output_format | COMBO | jpeg | 2 options: jpeg, png |
| raw | BOOLEAN | false | — |
| seedopt | INT | -1 | — |
| image_promptopt | STRING | — | |
| image_prompt_strengthopt | FLOAT | 0.100–1 | — |
| webhook_urlopt | STRING | — | |
| webhook_secretopt | STRING | — | |
| configopt | BFL_CONFIG | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |