Nodes/ComfyUI BFL API Pro Nodes/BFL Flux Ultra (Pro 1.1)
ComfyUI Node

BFL Flux Ultra (Pro 1.1)

Flux Ultra, the 'maximum quality' API endpoint with a raw mode

By charlyad142·Created about a year ago·Updated 9 months ago· 0
BFL Flux Ultra (Pro 1.1)
  • image_prompt
  • IMAGE
  • STRING
prompt
aspect_ratio16:9
output_formatjpeg
safety_tolerance2
x_key
seed-1
prompt_upsamplingfalse
rawfalse
image_prompt_strength0.10

Flux Ultra is BFL's "turn everything up" model - the flux-pro-1.1-ultra endpoint that's supposed to be the best-looking thing Black Forest Labs will run for you, at a price. This node is the ComfyUI wrapper for it, and if you're chasing maximum quality and don't have the hardware (or the patience) for local Flux, this is the dial you reach for in this pack.

The interesting part is the raw toggle. Flux's default output has a well-documented "plastic skin" look - the community spent years arguing about it, and BFL's response on the Ultra tier is a raw mode that skips their aesthetic post-processing. Flip raw on and you get a less beautified, more faithful-to-the-prompt result. It's the difference between "what the model thinks looks good" and "what your prompt actually said," and for photorealism work raw is often the better start.

What it is

A node from charlyad142/ComfyUI_bfl_api_pro_nodes that calls the flux-pro-1.1-ultra endpoint. Note what it deliberately doesn't have: no width/height, no steps, no guidance. Ultra works from an aspect ratio, like a hosted service would. That's the trade for "maximum quality" - BFL controls the sampling.

How it works

The node base64-encodes any reference image you wire in, then POSTs your prompt and settings to https://api.bfl.ai/v1/flux-pro-1.1-ultra with your API key in the x-key header. BFL hands back a task ID, the node polls get_result, downloads the finished image from Azure Blob Storage, and outputs an IMAGE tensor plus a STRING status line ( or ✗ Error: ...). Failures return a red placeholder image and the error text in that string.

The inputs that matter

  • aspect_ratio - free text, default 16:9. Type 1:1, 21:9, 3:2, whatever you need. This is the node's replacement for width/height.
  • raw (default false) - the signature knob. On = skip BFL's aesthetic polish. If your images come back too glossy or "AI-beautified," this is the first thing to flip.
  • image_prompt - an optional reference image, the API's img2img/reference mechanism.
  • image_prompt_strength (0–1, default 0.1) - how hard that reference image pushes the result. Note it's only sent if you actually wire in an image_prompt, and at 0.1 it's a gentle nudge. If you want a strong reference, raise it.
  • prompt_upsampling (default false) - let BFL enrich your prompt before generating. There's a school of thought that says leave it off when you're chasing exact adherence; it's a judgment call.
  • seed (default -1) - fix it to reproduce.

safety_tolerance runs 0–6 here, and output_format defaults to jpeg.

Installing it

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. No model downloads, no requirements.txt - it's requests and Pillow, both already in ComfyUI.

You'll need a BFL API key. Recommended: config.ini in the node's root folder:

[API]
X_KEY = your_api_key_here

That takes priority over the per-node x_key field. Keys from auth.bfl.ai.

Troubleshooting

The pack's usual suspects: 401 bad key/empty credits, 422 validation, 429 rate limit, moderation messages from BFL's filters. On Ultra specifically, the biggest "issue" people hit is actually expectations - Ultra is the premium tier, so it burns credits the fastest, and a raw result can look less finished than the default, which is the point. If a prompt that worked on other Flux nodes comes back weak here, try prompt_upsampling on and lower image_prompt_strength - Ultra leans harder on the prompt than on your reference.

CategoryBFL/Ultra

Inputs (10)

NameTypeDefaultDescription
promptSTRING
aspect_ratioSTRING16:9
output_formatCOMBOjpeg2 options: jpeg, png
safety_toleranceINT20–6
x_keySTRING
seedoptINT-1
prompt_upsamplingoptBOOLEANfalse
rawoptBOOLEANfalse
image_promptoptIMAGE
image_prompt_strengthoptFLOAT0.100–1

Outputs (2)

NameTypeDescription
IMAGEIMAGE
STRINGSTRING