Flux 2 Flex (BFL)
Where you iterate before you spend
- config
- IMAGE
Flux 2 Flex (BFL) is BFL's answer to the "I just want to try things" tier of the Flux 2 family - the flexible, cheap, fast end of the lineup. In the ComfyUI-FLUX-BFL-API pack it's the node you reach for when you're ideating: cheaper per call than Pro or Max, tuned for speed over polish, and still built on Flux 2's DNA with multi-reference input and one-call generation/editing. Flex launched alongside Flux 2 Pro on the API back in late 2025, and its whole job is iteration.
The one genuinely different thing about Flex versus the rest of the Flux 2 nodes: it exposes guidance and steps directly. The Pro/Max tiers hide those knobs behind "just trust the tier." Flex hands them to you - which makes it the node where you can actually feel the model out, adjusting how strictly it follows the prompt versus how fast it finishes.
How it works
Standard pack mechanics: build the request from your prompt, optional up to eight base64 references, and your guidance/steps settings; POST to flux-2-flex; poll get_result?id=... every 5 seconds; return an IMAGE. It's the same plumbing as every generation node in this pack, just pointed at the Flex endpoint with extra dials exposed.
The inputs that matter
- prompt - the description.
- guidance - 1.5–10, default 4.5. How strictly the model follows the prompt. Lower = more creative/looser, higher = more literal. This is the dial Flex gives you that the higher tiers don't.
- steps - 1–50, default 50. More steps = more refinement, slower. For iteration, dropping steps is where the speed lives.
- input_image … input_image_8 - up to eight references, base64 strings.
- width / height - optional (≥64), default lets BFL choose.
- safety_tolerance - 0–5, default 2.
- output_format - jpeg (default) or png.
- Optional seed, webhook_url/secret, config.
Installing it
Same one-pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/gelasdev/ComfyUI-FLUX-BFL-API.git
Restart, key in config.ini or a Flux Config (BFL) node. torch is the only declared dependency - nothing else to install.
Where people get burned
- Expecting Max/Pro polish from a flex tier. That's not what it's for. Flex is for volume: concept exploration, layout testing, prompt R&D. When you land on the one you like, rerun it on Pro or Max.
- Leaving steps at 50 for everything. The default is the max. For ideation, cut to 20–30 and you'll pay noticeably less and wait noticeably less.
- Black output. The pack's failure signal - moderation, API error, or poll timeout.
[BFL]logs print a curl equivalent per call so you can replay and see the raw response. - Ignoring guidance when a prompt is fighting you. If Flex keeps ignoring half your prompt, that's exactly the dial to touch before you blame the node.
The workflow that makes sense: Flex for the search, Pro for the keepers, Max for the final. This node is the front of that pipeline, and it's why it's probably the most-used Flux 2 node in the pack once people figure out the cost difference.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| guidance | FLOAT | 4.501.5–10 | — |
| steps | INT | 501–50 | — |
| safety_tolerance | INT | 20–5 | — |
| output_format | COMBO | jpeg | 2 options: jpeg, png |
| input_imageopt | STRING | — | |
| input_image_2opt | STRING | — | |
| input_image_3opt | STRING | — | |
| input_image_4opt | STRING | — | |
| input_image_5opt | STRING | — | |
| input_image_6opt | STRING | — | |
| input_image_7opt | STRING | — | |
| input_image_8opt | STRING | — | |
| widthopt | INT | 0 | — |
| heightopt | INT | 0 | — |
| seedopt | INT | -1 | — |
| webhook_urlopt | STRING | — | |
| webhook_secretopt | STRING | — | |
| configopt | BFL_CONFIG | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |