BFL released FLUX 3 Image Klein (POST /v1/flux-3-image-klein) on 2026-10-15. It takes the same prompt, references, resolution and aspect ratio as Flux 3 Image, so the node subclasses Flux3Image and adds what Klein accepts on top: seed, steps, output_format, exact width x height and a 0-7 safety_tolerance, without grounding. The Flux 3 Image example workflow gets two bypassed Klein groups (text to image, edit by URL); existing groups are untouched.
122 lines
6.4 KiB
Markdown
122 lines
6.4 KiB
Markdown
# ComfyUI-FLUX-BFL-API
|
||
|
||
Custom nodes for integrating Flux models with the BFL API.
|
||
|
||
## Installation
|
||
|
||
### Option 1: Install via Custom Nodes Manager
|
||
|
||
1. Open the Custom Nodes Manager.
|
||
2. Search for "ComfyUI-FLUX-BFL-API".
|
||
3. Select the package and follow the installation instructions.
|
||
|
||
### Option 2: Manual Installation
|
||
|
||
1. Clone the repository:
|
||
```bash
|
||
cd custom_nodes
|
||
git clone https://github.com/gelasdev/ComfyUI-FLUX-BFL-API.git
|
||
```
|
||
|
||
2. Install the required dependencies:
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
3. Get your BFL API key from [api.bfl.ai](https://api.bfl.ai).
|
||
|
||
4. Add your API key to the `config.ini` file:
|
||
```ini
|
||
[API]
|
||
X_KEY = YOUR_API_KEY
|
||
BASE_URL = https://api.bfl.ai/v1/
|
||
```
|
||
|
||
## Configuration
|
||
|
||
You can either use `config.ini` for a global API key, or connect a **Flux Config (BFL)** node directly to any generation node to override the key, base URL, and region per-node. If no config node is connected, `config.ini` is used automatically.
|
||
|
||
### How results are polled
|
||
|
||
Every BFL request is asynchronous: the node submits the job, then polls until the result is ready.
|
||
|
||
- The submit response contains a `polling_url`, and the node polls **that URL**. BFL requires this because it points at the region that holds your task (Flux 3 Image, for example, returns a regional one).
|
||
- Only when a response has no `polling_url` does the node fall back to building `<base_url>get_result?id=<task_id>` itself, with the base URL from `config.ini` or the **Flux Config (BFL)** node.
|
||
- Polls run every 5 s: up to 40 attempts (~200 s) for image nodes, 120 for **Flux 3 Image** and **Flux 3 Image Klein** (`4k` can take several minutes) and 240 for the video nodes. A terminal status (`Error`, `Request Moderated`, `Content Moderated`) stops polling at once, even when BFL reports it as HTTP 503, and the node returns a black placeholder so the workflow keeps running.
|
||
- Every poll is logged in the ComfyUI console as `[BFL] Poll attempt … | GET <url>`, so you can see which URL was used.
|
||
|
||
## Nodes
|
||
|
||
### Generation
|
||
| Node | Description |
|
||
|---|---|
|
||
| Flux 3 Image (BFL) | Text-to-image and editing with FLUX 3 in one node — up to 10 references (`image_1`…`image_10` are "Image 1"…"Image 10" in the prompt), bounding boxes as a JSON list at the end of the prompt, `768sq` to `4k` output (`flux-3-image`) |
|
||
| Flux 3 Image Klein (BFL) | Open-weights 5.6B FLUX 3 — same prompt, 10 references and bounding boxes as Flux 3 Image, plus `seed`, `steps` (1–16), `output_format` and exact `width` × `height`; no grounding (`flux-3-image-klein`) |
|
||
| Flux 3 Video T2V (BFL) | Text-to-video with FLUX 3 Video (up to 20 s, with audio) |
|
||
| Flux 3 Video I2V (BFL) | Image-to-video — feed keyframes from the Flux 3 Keyframes node or a single image |
|
||
| Flux 3 Video V2V (BFL) | Video continuation from an existing MP4 (URL or base64), up to 15 s |
|
||
| Flux Video Edit (BFL) | Edit an existing clip with a prompt — remove / add / replace objects, restyle, change dialogue; up to 15 s, delivered at 720p (`flux-tools/video-edit-v1`) |
|
||
| Flux Video Upscale (BFL) | 1.5×–3× video super-resolution toward 4K, precise or creative mode; up to 20 s and 2560×1440 in (`flux-tools/video-upscale-v1`) |
|
||
| Flux Pro 1.1 (BFL) | Text-to-image with Flux Pro 1.1 |
|
||
| Flux Pro 1.1 Ultra (BFL) | High-resolution text-to-image |
|
||
| Flux Dev (BFL) | Text-to-image with Flux Dev |
|
||
| Flux Pro Fill (BFL) | Inpainting / outpainting |
|
||
| Flux Pro Expand (BFL) | Outpainting with directional padding |
|
||
| Flux Erase (BFL) | Object removal via binary mask (`flux-tools/erase-v1`) |
|
||
| Flux Outpaint (BFL) | Image extension via target canvas + reference offsets (`flux-tools/outpainting-v1`) |
|
||
| Flux Deblur (BFL) | Sharpen a blurry image while preserving the scene — no prompt or mask, up to 4 MP (`flux-tools/deblur-v1`) |
|
||
| Flux Virtual Try-On (BFL) | Virtual try-on — dress a person image in a garment image (`flux-tools/vto-v1`) |
|
||
| Flux Virtual Try-On v2 (BFL) | Virtual try-on v2 — sharper face preservation, inputs up to 4 MP (`flux-tools/vto-v2`) |
|
||
| Flux Kontext Pro (BFL) | Image editing with context (up to 4 images) |
|
||
| Flux Kontext Max (BFL) | Image editing with context, max quality |
|
||
| Flux 2 Max (BFL) | Flux 2 Max generation |
|
||
| Flux 2 Pro (BFL) | Flux 2 Pro generation |
|
||
| Flux 2 Pro Preview (BFL) | Flux 2 Pro preview (latest advances) |
|
||
| Flux 2 Flex (BFL) | Flux 2 Flex generation |
|
||
| Flux 2 Klein 9B (BFL) | Flux 2 Klein 9B generation |
|
||
| Flux 2 Klein 9B Preview (BFL) | Flux 2 Klein 9B preview (latest advances) |
|
||
| Flux 2 Klein 4B (BFL) | Flux 2 Klein 4B generation |
|
||
|
||
The Flux 3 Video nodes output ComfyUI's native `VIDEO` type — connect them to the built-in Save Video / preview nodes (requires ComfyUI ≥ 0.3.30).
|
||
|
||
### Finetune
|
||
| Node | Description |
|
||
|---|---|
|
||
| Flux Pro Fill Finetune (BFL) | Inpainting with a finetuned model |
|
||
| Flux Pro 1.1 Ultra Finetune (BFL) | Ultra generation with a finetuned model |
|
||
| Flux Finetune Status (BFL) | Check the status of a finetune job |
|
||
| Flux My Finetunes (BFL) | List all your finetunes |
|
||
| Flux Finetune Details (BFL) | Get details of a specific finetune |
|
||
| Flux Delete Finetune (BFL) | Delete a finetune |
|
||
|
||
### Config
|
||
| Node | Description |
|
||
|---|---|
|
||
| Flux Config (BFL) | Override API key, base URL and region per-node |
|
||
| Flux Credits (BFL) | Check your remaining BFL API credits |
|
||
|
||
### Utils
|
||
| Node | Description |
|
||
|---|---|
|
||
| Image to Base64 (BFL) | Convert a ComfyUI IMAGE to base64 — choose `jpeg` (default) or `png` (lossless, recommended for masks) |
|
||
| Flux 3 Keyframes (BFL) | Combine up to 10 images (start, 8 middles, end) into the keyframes string for Flux 3 Video I2V — empty sockets are skipped; `timing: even` spreads them across the clip, `timing: custom` pins start at 0, middles at their `time_N` widgets and the end image at `end_time` (= clip length with `duration: auto`) |
|
||
| Video to Base64 (BFL) | Convert a ComfyUI VIDEO (LoadVideo output or a Flux 3 Video result) to a base64 MP4 string — feed it into Flux 3 Video V2V's `start_video`, Flux Video Edit's `video` or Flux Video Upscale's `input_video` |
|
||
|
||
## Workflow
|
||
|
||
Example workflows are available in the `workflows` folder.
|
||
|
||
## Changelog
|
||
|
||
See [CHANGELOG.md](CHANGELOG.md).
|
||
|
||
## Contributors
|
||
|
||
- [@pleberer](https://github.com/pleberer)
|
||
- [@Duanyll](https://github.com/Duanyll)
|
||
|
||
## Example
|
||
|
||

|
||

|