BYOKey Flux (BFL)
Flux Pro 1.1 Ultra via the BFL API, no Comfy credits required
- image_prompt
- output_image
You can run Flux locally - the open weights are the reason it's everywhere in this ecosystem - but the frontier versions, Flux Pro 1.1 and its Ultra variant, are closed and only exist behind Black Forest Labs' API. BYOKey_Flux is the node that calls that API with your own BFL key (sent as the x-key header) and drops the result into your graph as a normal IMAGE. Same shape as the official Flux node, no Comfy proxy, no prepaid credits.
So when do you actually want this instead of a local Flux checkpoint? When you want the current hosted frontier - Ultra's detail, its prompt adherence, the version you can't download - without leaving ComfyUI. Or when you're on a machine too weak to run even the local Flux, in which case this is your Flux door. The KB's framing applies cleanly here: local for the model you can run, API for the model you can't.
How it works
BFL's image API is a submit-and-poll flow, and the node handles both halves: it POSTs your job, then polls the status endpoint every poll_interval seconds until the image is ready, with a max_wait ceiling so it errors instead of hanging forever. The finished image downloads and comes back as an IMAGE tensor. This is also why the node blocks for a while - it's waiting on BFL's queue, not thinking locally.
The inputs that matter
prompt+aspect_ratio- the generation request. Aspect ratios run 1:4 to 4:1, defaulting to 16:9.prompt_upsampling- a boolean that has BFL auto-expand your prompt for more creative output. The tooltip is explicit: with it on, results are nondeterministic even with the same seed. Good for exploration, bad if you need consistency.raw- when true, you get less processed, more natural-looking images instead of the polished default look. This is the setting that tells BFL "skip the fancy finishing."seed- a real seed up to ~1.8e19; unlike some other BYOKey nodes this one is genuinely honored by the backend (as long asprompt_upsamplingstays off).image_prompt+image_prompt_strength- optional reference-image conditioning, blending between your prompt and the image (default strength 0.1).poll_interval(default 3s) andmax_wait(default 300s) - the polling knobs. If Flux Pro's queue is long, raisemax_wait.
Output is output_image (IMAGE) - feed it to a preview, an upscaler, an image-to-video node, anything.
Installing it
It's one node in the 37-node comfyui-byokey pack, which has no extra dependencies beyond ComfyUI's bundled torch/aiohttp/PIL/numpy/av. Install via ComfyUI Manager (search "byokey") or:
cd ComfyUI/custom_nodes
git clone https://github.com/MeteorAndy/comfyui-byokey.git
Restart, and it's under api/byokey/image. No model files download; BFL does all the compute.
Gotchas
The two things that bite people: cost and timeouts. Ultra isn't cheap per image and you're billed per successful render, so the raw/prompt_upsampling experiments add up. And because the node waits synchronously, a busy BFL queue can blow past max_wait - if you see timeout errors during peak hours, that's your cue to raise it (up to 1800s). The pack-standard security note also applies: your key is stored in the widget and saved into the workflow JSON, so scrub it before sharing workflows, and remember this "paste your key" node category has a malware history - read the source if you're cautious; it's open and short. If you want the hosted frontier Flux inside your workflow, this is the cleanest route.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | Your Black Forest Labs API key (sent as the 'x-key' header). | |
| base_url | STRING | https://api.bfl.ml/v1 | BFL API base URL. Default is the real vendor host; override for a relay/proxy. |
| prompt | STRING | Prompt for the image generation | |
| prompt_upsampling | BOOLEAN | false | Whether to perform upsampling on the prompt. If active, automatically modifies the prompt for more creative generation, but results are nondeterministic (same seed will not produce exactly the same result). |
| seed | INT | 00–18446744073709550000 | The random seed used for creating the noise. |
| aspect_ratio | STRING | 16:9 | Aspect ratio of image; must be between 1:4 and 4:1. |
| raw | BOOLEAN | false | When True, generate less processed, more natural-looking images. |
| image_promptopt | IMAGE | Optional reference image to guide generation. | |
| image_prompt_strengthopt | FLOAT | 0.100–1 | Blend between the prompt and the image prompt. |
| poll_intervalopt | INT | 31–60 | Seconds between status polls. |
| max_waitopt | INT | 30030–1800 | Maximum seconds to wait for the image before timing out. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| output_image | IMAGE | — |