Nodes/ComfyUI-FLUX-BFL-API/Flux 2 Pro (BFL)
ComfyUI Node

Flux 2 Pro (BFL)

Generation and editing in one node

By gelasdev·Created 2 years ago·Updated 10 days ago· 50
Flux 2 Pro (BFL)
  • config
  • IMAGE
◄prompt►
◄safety_tolerance2►
◄output_formatjpeg►
◄input_image►
◄input_image_2►
◄input_image_3►
◄input_image_4►
◄input_image_5►
◄input_image_6►
◄input_image_7►
◄input_image_8►
◄width0►
◄height0►
◄seed-1►
◄webhook_url►
◄webhook_secret►
◄disable_pupfalse►

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.

CategoryBFL/Flux2

Inputs (18)

NameTypeDefaultDescription
promptSTRING—
safety_toleranceINT20–5—
output_formatCOMBOjpeg2 options: jpeg, png
input_imageoptSTRING—
input_image_2optSTRING—
input_image_3optSTRING—
input_image_4optSTRING—
input_image_5optSTRING—
input_image_6optSTRING—
input_image_7optSTRING—
input_image_8optSTRING—
widthoptINT00 = not sent (BFL picks the size); otherwise at least 64
heightoptINT00 = not sent (BFL picks the size); otherwise at least 64
seedoptINT-1—
webhook_urloptSTRING—
webhook_secretoptSTRING—
disable_pupoptBOOLEANfalseDisable automatic prompt upsampling (on by default) to generate from the prompt exactly as written
configoptBFL_CONFIG—

Outputs (1)

NameTypeDescription
IMAGEIMAGE—