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

Flux Pro 1.1 (BFL)

Flux Pro 1.1 is the best Flux you'll never download — here's how to run it in ComfyUI anyway

By gelasdev·Created 2 years ago·Updated 23 days ago· 49
Flux Pro 1.1 (BFL)
  • config
  • IMAGE
prompt
width1440
height1440
prompt_upsamplingfalse
safety_tolerance2
output_formatjpeg
seed-1
image_prompt
webhook_url
webhook_secret

Flux Pro 1.1 occupies the weirdest spot in the Flux lineup: it's arguably the best image model Black Forest Labs ships, and you can never run it locally. No weights, no GGUF, no fp8. It lives entirely behind BFL's API. This node - one of the cleanest community wrappers for that API - drops it onto your ComfyUI canvas with a single wire to PreviewImage.

You've heard the backstory by now. In 2024 BFL gave the open-weights crowd Dev and Schnell and kept the uncompromised base model behind a paywall, and the community grumbled but paid anyway because the results were that good. This pack from gelasdev (posted on r/comfyui back in October 2024, with workflow examples that people found "very clean and easy to use") is the standard way ComfyUI people hit that API. One honest caveat up front: this is a cloud wrapper, not a magic local model. You trade pay-per-image and no ControlNet for zero VRAM cost and output quality that still surprises people. That's the whole trade.

How it works

Under the hood is the same async dance every BFL client does. The node POSTs your prompt and settings to api.bfl.ai/v1/flux-pro-1.1, gets back a task ID, then polls get_result?id=... every five seconds for up to forty attempts. When the status flips to READY it downloads the rendered sample, decodes it, and hands your graph a normal IMAGE tensor.

The whole exchange is logged to your ComfyUI console as [BFL] lines - and you'll be glad of that the first time something goes wrong, because the failure mode is sneaky (see below).

There's no model to download and no real dependency either. requirements.txt is literally just torch, which you already have.

The inputs that matter

  • prompt - the whole game. Pro 1.1 follows natural language well, so write like you mean it instead of keyword-stuffing.
  • width / height - 256 to 1440, default 1440 square. Here's the trap: they must be multiples of 32. The node won't warn you - it'll just hand you a blank image.
  • prompt_upsampling - off by default. Flip it on and BFL quietly rewrites your prompt into something richer before generating.
  • safety_tolerance - BFL's content-moderation knob, 0 to 6, default 2. Raise it if the API keeps refusing things you think are fine.
  • output_format - jpeg or png. Default jpeg is fine for eyeballing; pick png if you're feeding the result into anything lossy later.

The optional slot worth knowing: image_prompt, a base64 string or URL to steer the generation - wire the output of the pack's Image to Base64 node in here for image-to-image-style work. seed of -1 means random; webhook_url/webhook_secret are for async notifications you almost certainly don't need.

The single output is IMAGE - wire it to PreviewImage or SaveImage like any other generator.

Installing

From ComfyUI Manager, search ComfyUI-FLUX-BFL-API and install. Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/gelasdev/ComfyUI-FLUX-BFL-API.git
pip install -r requirements.txt   # just torch - you have it

Restart ComfyUI, then grab a key from api.bfl.ai and drop it in custom_nodes/ComfyUI-FLUX-BFL-API/config.ini:

[API]
X_KEY = YOUR_API_KEY
BASE_URL = https://api.bfl.ai/v1/

Or skip the file entirely and connect the pack's Flux Config (BFL) node to the config input - that overrides the key per-node.

Common issues

The big one is the silent black image. When anything fails, the node returns a blank 512×512 frame instead of raising an error. If you get one, read the [BFL] lines in the console: a bad key, a CONTENT_MODERATED status, or width/height that aren't multiples of 32 are the usual culprits.

Second: config.ini gets clobbered on update. It's tracked by git, so a git pull (which ComfyUI Manager does on update) overwrites your key back to the placeholder. That's exactly why the per-node Flux Config node exists - use it and stop re-pasting keys.

Finally, remember the model is remote and the poll is capped around three minutes, so plan for a few seconds of waiting per image and make sure your machine can reach the internet. For everything local, Dev and Schnell are still there; this node is specifically for when you want the unreachable best.

CategoryBFL

Inputs (11)

NameTypeDefaultDescription
promptSTRING
widthINT1440256–1440
heightINT1440256–1440
prompt_upsamplingBOOLEANfalse
safety_toleranceINT20–6
output_formatCOMBOjpeg2 options: jpeg, png
seedoptINT-1
image_promptoptSTRING
webhook_urloptSTRING
webhook_secretoptSTRING
configoptBFL_CONFIG

Outputs (1)

NameTypeDescription
IMAGEIMAGE