BFL Bridge Kontext (Image Edit)
Kontext editing in ComfyUI without a GPU — three reference images, one sentence
- image_0
- image_1
- image_2
- image
Kontext is the model that made instruction-based editing feel like magic: feed it an image and a sentence, get back the same image with the jacket changed, the background swapped, the watermark gone. The catch is that the good versions - Kontext Pro and Max - are API-only, and the open Dev tier is the one carrying BFL's awkward non-commercial plus anti-circumvention license. BFL Bridge Kontext (Image Edit) gets you the API-only tiers from inside ComfyUI, no GPU required. If you've been eyeballing Kontext edits on other people's timelines, this is the low-friction way to try them.
How it works
Same bridge mechanics as the pack's other nodes: submit to https://api.bfl.ai/v1/<model> with your key in the x-key header, poll until the job is Ready, download the sample, hand it back as an IMAGE tensor. The interesting part is the references. Kontext consumes your images in-context - they're concatenated into the model alongside the prompt rather than squeezed through an adapter - which is why it holds identity across edits without the drift you get from IP-Adapter-style approaches.
The node maps its three image inputs onto BFL's multi-reference fields: image_0 (required) becomes input_image, image_1 becomes input_image_2, image_2 becomes input_image_3, all base64 PNG. That gives you the classic Kontext superpower of character consistency: same person, different outfits or scenes, from reference photos alone. Kontext Max can take up to ten references if you call the API directly - the node just exposes three.
The inputs that matter
- model -
flux-kontext-pro(default) orflux-kontext-max. Max is the stronger one; Pro is the budget tier. - prompt - required, and it does the heavy lifting. Kontext edits are a sentence, not a slider.
- image_0 - your base image, required. image_1 / image_2 - optional references for multi-image edits.
- api_key - node field or
BFL_API_KEYenv var, same as the rest of the pack. - seed, guidance, steps - see the gotcha below.
The output is a single image tensor, ready for Save Image or any downstream node.
One honest quirk
The node accepts guidance and steps, but in the current version those values never make it into the API request - only a nonzero seed is forwarded. So if you're dialing guidance on the Kontext node and seeing no change, you're not imagining it. You can work around it by hitting the API directly with the same key, but don't expect the knobs to do anything until the pack updates.
Installing it
ComfyUI Manager: search "comfyui-bfl-bridge". Or:
cd ComfyUI/custom_nodes
git clone https://github.com/cerridan/ComfyUI_BFLBridge.git
Restart ComfyUI. This pack needs ComfyUI 0.18+ (it uses the V3 node interface), and its only dependencies - aiohttp, Pillow, numpy - are already in a stock ComfyUI. No models to download, and no GPU needed since all inference is server-side.
The practical stuff
Two things bite people. First, every edit costs credits - this is a paid API, and with base64-encoded images in every request, keep your inputs reasonably sized. Second, remember the mask-free nature of Kontext: it regenerates the whole image from your prompt plus references, so unchanged regions come back close but not identical. If you need pixel-perfect untouched areas, that's a job for a masked fill, not this node. And for the record - the community found Kontext "shockingly effective" at watermark removal, so test that feature with a clear conscience and a real credit balance.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | — | |
| model | COMBO | flux-kontext-pro | 2 options: flux-kontext-max, flux-kontext-pro |
| prompt | STRING | — | |
| seed | INT | 00–2147483647 | — |
| guidance | FLOAT | 3.50–20 | — |
| steps | INT | 281–50 | — |
| image_0 | IMAGE | — | |
| image_1opt | IMAGE | — | |
| image_2opt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |