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.
FLUX 3 Image (flux-3-image) generates and edits from one prompt, with
up to ten references and bounding boxes. The endpoint rejects seed,
output_format and webhooks, and 4k renders can take minutes, so the
node polls up to 120 attempts and keeps the result lossless.
BFL requires polling the polling_url returned at submit: it points at
the region holding the task, and FLUX 3 Image returns a regional one.
post_request now returns a TaskId carrying it and get_result polls it
for every node, falling back to get_result?id= only when it is absent.
A failed task reported as HTTP 503 with a terminal status now stops at
once instead of polling until the timeout.
Adds an example workflow and documents the polling behavior.
Bring the package in line with the current BFL API reference:
flux-tools/deblur-v1, video-edit-v1 and video-upscale-v1 had no
node. The video nodes reuse BaseFlux3Video via a URL_PATH attribute.
Existing nodes gain API fields: qhd/uhd on Flux 3 Video,
disable_pup on Flux 2 Max/Pro/Pro Preview, safety_tolerance and
disable_pup on Outpaint. New widgets are appended so saved
workflows keep their values.
Fixes found while testing on ComfyUI 0.37.0:
- V2V offered 16-20 s; BFL caps continuation at 15 s
- draft with a non-hd resolution was rejected; send hd
- Flux 2 width/height defaulted to 0 below min 64, so every
fresh Flux 2 node failed validation
- the finetune example needed ShowText|pysssss; use core
Preview as Text and drop the unused group-node template
Terminal polling statuses now log BFL's details (Moderation
Reasons). Example workflows gain Deblur, Video Edit and Video
Upscale groups.
The FluxConfig_BFL node in the example workflow was saved with a real
x_key widget value and pushed in 7bbc4cc. The key must be treated as
compromised and rotated in the BFL dashboard; this commit clears the
widget so the tracked example matches the other workflows.
New BFL-API-flux-3-video.json covers all three modes: t2v straight to
SaveVideo, i2v fed by Flux3Keyframes, and v2v fed by LoadVideo through
VideoToBase64. The tools workflow gains a Flux Virtual Try-On v2 group
mirroring the v1 setup; remaining churn in that file is ComfyUI
frontend metadata (aux_id -> cnr_id, node order/positions) and the
outpaint mode widget value written by the current node schema.
Wrap the new BFL flux-tools/vto-v1 endpoint as FluxVirtualTryOn,
following the erase/outpaint tool-node pattern: base64 string
person/garment inputs, a required prompt, and optional
seed/webhook/config over the shared BaseFlux post -> poll path. Update
the README node table and add two virtual try-on groups to the tools
example workflow.
adds FluxErase (POST flux-tools/erase-v1) and FluxOutpaint
(POST flux-tools/outpainting-v1) in a new nodes/flux_tools.py
module. these wrap the two new BFL tool endpoints from May 2026.
also:
- ImageToBase64_BFL gains an image_format dropdown (jpeg / png) so
masks can be encoded losslessly
- BaseFlux.generate_image moves check_multiple_of_32 inside the
try/except so non-multiple-of-32 dims return a blank image
instead of crashing the workflow
- bump version to 1.1.0; start CHANGELOG.md fresh at 1.1.0