Flux 2 Pro (BFL)
Generation and editing in one node
- config
- IMAGE
Flux 2 Pro (BFL) is the sensible middle of the Flux 2 API lineup in the ComfyUI-FLUX-BFL-API pack: the full Flux 2 model (32B transformer plus Mistral-3 encoder, for the spec-sheet crowd), without the Max-tier price tag. Same multi-reference capability, same "generate or edit in one call" trick - you just trade a bit of top-end polish for a lower credit cost. If Max is the "hero shot" button, Pro is the one you'd reach for on a normal day.
Flux 2's real headline feature - and it's the thing the community genuinely concedes nothing else matches locally - is the reference-image system. Up to eight input images go in as context, and the model holds characters, objects, and styles across the whole generation. That's LoRA-level consistency without any training. This node exposes the same eight sockets, so you get the full trick through the API.
How it works
Standard pack flow: build the request from your prompt plus any reference images, POST to flux-2-pro, poll get_result?id=... every 5 seconds, return an IMAGE tensor. Empty input sockets are skipped, so a bare text-to-image call is just as valid as a full eight-image character build.
The inputs that matter
- prompt - the scene description and, with references, the instruction for what to keep.
- input_image … input_image_8 - up to eight base64 references (from Image to Base64 (BFL)). This is the whole reason Flux 2 exists.
- width / height - optional (default 0 = let BFL decide), ≥64 if set.
- safety_tolerance - 0–5, default 2. The only moderation control; Flux 2's filters are baked in at the weights level, so this dial is about tolerance, not bypassing.
- output_format - jpeg (default) or png.
- Optional seed, webhook_url/secret, config.
Installing it
One pack, one install, zero model downloads:
cd ComfyUI/custom_nodes
git clone https://github.com/gelasdev/ComfyUI-FLUX-BFL-API.git
Restart, set your key in config.ini or via a Flux Config (BFL) node. The only declared dependency is torch, which ComfyUI already bundles.
Where people get burned
- Not using the references. The biggest quality gap in Flux 2 workflows is people treating it as a plain text-to-image node. The model shines with context; a single reference image for the subject can transform a generic render into a consistent one.
- Chasing Pro when the job doesn't need it. For pure exploration, the Flex tier is dramatically cheaper. Pro is for when you want the full model's quality without Max pricing.
- Black output. The pack's failure signal: moderation, API error, or the ~200s poll ceiling. Check
[BFL]logs - every POST prints a curl equivalent you can replay against the API to see the actual error. - Expecting the local open-weights experience. The API tier is BFL's censored, moderated stack. If you're coming from local Flux 2 Dev + LoRAs, the filtering here is a different reality.
Bottom line: Flux 2 Pro is the volume-generate tier of the family - the one that gives you the family's core capability (multi-reference consistency) at a price that doesn't make you wince. It's probably where your Flux 2 workflow should start.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| 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 | — |