ComfyUI Node

BFL Flux 2 Pro

Flux 2 Pro, without the 56 GB local install

By charlyad142·Created about a year ago·Updated 9 months ago· 0
BFL Flux 2 Pro
  • input_image
  • input_image_2
  • input_image_3
  • input_image_4
  • input_image_5
  • input_image_6
  • input_image_7
  • input_image_8
  • IMAGE
  • STRING
prompt
safety_tolerance2
output_formatjpeg
x_key
seed-1
width0
height0

Flux 2 Pro is the "just works" node in this pack. You give it a prompt, optionally up to eight reference images, and it returns a Flux 2 image from Black Forest Labs' servers. No steps, no guidance, no sampler choice, no 32B model eating your VRAM. That's the whole pitch, and for a lot of people it's exactly the right one.

The reason this exists is that the local version of Flux 2 is a monster. We're talking a 32B transformer plus a 24B vision-language text encoder - around 56GB of weights end to end, and even quantized it wants more GPU than most people own. The community reaction to the local launch in late 2025 was mostly "great model, cannot run it." BFL's answer, as ever, is the API: their best models never leave it. This node is the ComfyUI-friendly door into that API.

What it is

A node from charlyad142/ComfyUI_bfl_api_pro_nodes that calls BFL's flux-2-pro endpoint. It's deliberately stripped down - the README even calls it "simplified" - because Flux 2's Pro API handles the sampling internally. You're not here to tune; you're here to get a strong image with multi-reference composition and no local hardware tax.

How it works

Any images you wire into the input_image inputs get base64-encoded and sent to https://api.bfl.ai/v1/flux-2-pro with your API key in the x-key header. The API returns a task ID, the node polls get_result until the image is ready, downloads it from Azure Blob Storage, and outputs it as a standard IMAGE tensor. Like every node in this pack there's also a STRING output carrying a status message - on success, or a ✗ Error: ... detail on failure (at which point you also get a red 512px placeholder image instead of a hard crash).

The inputs that matter

  • prompt - required, multiline. Flux 2's text encoder is genuinely good with natural-language sentences, so describe what you want the way you'd say it.
  • input_image through input_image_8 - up to eight reference images. This is the node's real superpower: multi-reference composition for character or product consistency, done server-side. Feed one image for a single-reference edit; feed several and let Flux 2 merge them.
  • width / height (min 64) - both default to 0, which means "API decides." Set them only when you need a specific output size.
  • seed (default -1) - random by default, fix it to reproduce.

And that's it. There are deliberately no guidance or steps knobs on this one - if you want those, that's what the BFL Flux 2 Flex node in the same pack is for. safety_tolerance (0–5) is the moderation dial and output_format picks jpeg or png.

Installing it

Nothing heavy to download - it's pure API. In ComfyUI Manager, search "ComfyUI BFL API Pro Nodes", or:

cd ComfyUI/custom_nodes
git clone https://github.com/charlyad142/ComfyUI_bfl_api_pro_nodes

Restart ComfyUI. The pack has no requirements.txt; it uses requests and Pillow, which ship with ComfyUI.

You need a BFL API key. The pack's recommended route is a config.ini in the node's root folder:

[API]
X_KEY = your_api_key_here

That file wins over the per-node x_key field if both are set. Get a key from auth.bfl.ai.

Troubleshooting

A 401 in the status output means a bad key or no credits left - check your BFL dashboard. 422 is a parameter validation error, 429 is rate limiting. Moderation messages ("Request Moderated" / "Content Moderated") are BFL's safety layer doing its job. And remember: you're paying per image here, so the eight-reference trick costs more per call than a bare text-to-image. Budget accordingly and keep seed fixed when you're iterating so you don't burn credits chasing a moving target.

CategoryBFL/Flux2

Inputs (15)

NameTypeDefaultDescription
promptSTRING
safety_toleranceINT20–5
output_formatCOMBOjpeg2 options: jpeg, png
x_keySTRING
input_imageoptIMAGE
input_image_2optIMAGE
input_image_3optIMAGE
input_image_4optIMAGE
input_image_5optIMAGE
input_image_6optIMAGE
input_image_7optIMAGE
input_image_8optIMAGE
seedoptINT-1
widthoptINT0
heightoptINT0

Outputs (2)

NameTypeDescription
IMAGEIMAGE
STRINGSTRING