Flux Pro Fill Finetune (BFL)
Inpainting with a model that learned your style — Flux Pro Fill Finetune
- config
- IMAGE
If you've trained a BFL finetune on your own style - product shots, a character, an art direction - the last thing you want is for inpainting to hand that back to a generic model. Flux Pro Fill Finetune is the inpainting variant of BFL's finetuned models: same fill/edit pipeline as plain Flux Pro Fill, but generation happens through your finetune instead of the stock one.
It's the finetune counterpart to this pack's Flux Pro Fill node, living in the same ComfyUI-FLUX-BFL-API pack from gelasdev. The use case is specific and genuinely nice when it clicks: you built a model that knows your look, and now you can edit images in that look - redraw an element, extend a composition, fix a detail - rather than breaking consistency by filling with the base model.
How it works
The plumbing is Flux Pro Fill's, not Ultra's. That means the endpoint is flux-pro-1.0-fill-finetuned and, critically, your image and mask are base64 strings, so you route them through the pack's Image to Base64 (BFL) node. Steps and guidance exist here just like the plain Fill node - this is a full diffusion run, not a quick edit.
One mechanism difference worth knowing: unlike the Ultra Finetune node, which hard-codes a regional endpoint path, Fill Finetune runs through the standard generate path but still respects a regional setting if you've set it on a connected Flux Config (BFL) node. Finetune jobs are region-bound on BFL's side, so matching your region in config is still the safe move.
The inputs that matter
- finetune_id - your trained model's ID from BFL (the dashboard or the pack's Flux My Finetunes node). The
"my-finetune"default is a placeholder. - image - base64 of the image you're editing. From Image to Base64 (BFL).
- finetune_strength - how strongly your finetune's look drives the fill, 0.1 to 2, default 1.1. Keep it near default; this is the knob that keeps the edit consistent with the rest of the image.
- steps (15–50, default 50) and guidance (1.5–100, default 60) - same as plain Fill; the edit-quality controls.
- mask (optional) - base64 mask of the region to regenerate. Leave it empty and the model treats the whole image as editable.
- prompt (optional) - what goes into the masked area. Empty is fine; the finetune does a lot of the steering itself.
Plus the usual safety_tolerance (0–6, default 2), output_format (jpeg/png), seed (-1 = random), webhook fields, and config. Output is a single IMAGE.
Installing
Standard pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/gelasdev/ComfyUI-FLUX-BFL-API.git
pip install -r requirements.txt
Restart ComfyUI, add your key from api.bfl.ai - ideally through a Flux Config (BFL) node into config so the key and region survive updates - and connect the Image to Base64 node for both image and mask.
Common issues
The usual blank-black-frame failure mode applies, and it's easier to hit here: wrong finetune_id, a finetune that isn't finished training, or a missing region all end in that 512×512 nothing. The [BFL] console lines are the diagnosis.
The mask gotcha from plain Fill carries over: if the mask comes through empty, the node warns and proceeds without it, turning a targeted inpaint into a whole-image edit. Check the Image to Base64 wiring first. And two reminders that are easy to forget: png for the mask format (lossless beats jpeg's edge-eating compression), and don't run this without a real finetune - it's built for models you already trained, not for one-off experiments.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| finetune_id | STRING | my-finetune | — |
| image | STRING | — | |
| finetune_strength | FLOAT | 1.100.1–2 | — |
| steps | INT | 5015–50 | — |
| prompt_upsampling | BOOLEAN | false | — |
| guidance | FLOAT | 60.001.5–100 | — |
| safety_tolerance | INT | 20–6 | — |
| output_format | COMBO | jpeg | 2 options: jpeg, png |
| maskopt | STRING | — | |
| promptopt | STRING | — | |
| seedopt | INT | -1 | — |
| webhook_urlopt | STRING | — | |
| webhook_secretopt | STRING | — | |
| configopt | BFL_CONFIG | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |