Flux GUFF Inpainting
FluxGuffInpainting — GGUF-quantized Flux Fill inpainting
- conditioning
- image
- mask
- vae
- image
Before anything else: the name is a typo. It's "GUFF," not GGUF, throughout this node's class name, display name, and the pack's README - the author just misspelled it and it stuck. If you're searching for GGUF-quantized Flux Fill support, this is the node, spelling and all.
What it's for
FluxGuffInpainting is the lightest way into this pack's inpainting stack: point it at a GGUF-quantized Flux Fill transformer and go, without needing the full FLUX.1-Fill-dev directory tree the other nodes want. GGUF is the llama.cpp-derived quantization format that city96 brought to diffusion models two weeks after Flux's original launch, and its whole appeal is the same here as everywhere else it's used - Q8 is close enough to fp16 that most people can't tell the difference, and each step down the Q-ladder trades a bit more quality for a lot less VRAM. If you already run other Flux models as GGUF, this node lets you do Fill the same way.
Under the hood it's still FLUX.1 Fill dev, Black Forest Labs' purpose-built inpainting/outpainting model - the checkpoint actually trained to understand a mask, rather than a general model having one duct-taped on. That's the standing reason to reach for masked inpainting at all in 2026: instruction-editing models like Qwen-Image-Edit or Flux 2 Klein will happily "fix this" from a sentence, but they re-render the entire frame each time and the unmasked pixels drift a little on every pass. A dedicated inpainting model leaves everything outside the mask alone.
Inputs and output
- model_path - a dropdown pointing at a GGUF file. Per the README, drop your GGUF Flux Fill build straight into
ComfyUI/models/unetand it'll show up here; this node loads it internally rather than needing you to run it through a separate GGUF loader node. - conditioning - a
CONDITIONINGobject from aCLIPTextEncode(fed by a Flux-compatibleDualCLIPLoader), same as the rest of this pack's "split" nodes. - vae - an
AUTOENCODERinput, which comes fromFluxVAELoader, this pack's own VAE-loading node - not ComfyUI's stock VAE loader, so don't try to wire a nativeVAELoaderoutput in here directly. - image / mask - the source image and the region to regenerate.
- num_inference_steps - default 50, range 10–60.
- guidance_scale - default 30, range 0.1–30. This isn't a bug or a wildly aggressive setting; Flux Fill's own documented guidance genuinely sits around 30, far above a normal Flux Dev generation's 3.5, because it needs that much push to follow the fill prompt.
- cached - off by default; enabling it should keep the loaded model resident in memory between runs rather than re-reading the GGUF file from disk every queue.
Output is a single image, ready for a save/preview node or for compositing back over the untouched parts of your original.
Installing it
Search "ComfyUI-Flux-Inpainting" in ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/rubi-du/ComfyUI-Flux-Inpainting.git
cd ComfyUI-Flux-Inpainting
pip install -r requirements.txt
Restart after. Don't skip the pip install - it pulls in the actual GGUF/diffusers dependencies this node needs to read quantized weights, and a missing package here is the usual reason the node fails to import at all.
For the model, grab a GGUF Flux Fill build - the README points at YarvixPA/FLUX.1-Fill-dev-gguf - and drop it in ComfyUI/models/unet. You'll separately need a VAE for FluxVAELoader: the README links BFL's own Flux Fill VAE, which goes in ComfyUI/models/vae. That's the whole point of this node - you skip the rest of the full-precision FLUX.1-Fill-dev folder tree that the monolithic nodes in this pack require.
Common issues
- model_path dropdown is empty - the node scans
ComfyUI/models/unetfor GGUF files; if nothing shows up, the file isn't there or isn't a.gguf. - vae input rejected - it wants
FluxVAELoader's output specifically, a customAUTOENCODERtype, not ComfyUI's native VAE loader's output. - Wrong or missing conditioning - this node needs actual
CONDITIONING, built from a Flux-styleCLIPTextEncode, not a raw string. - Quality drop at low quant levels - general GGUF wisdom applies here too: Q8 is essentially lossless, Q4_K_M is the accepted floor for tight VRAM, and Q3/Q2 start showing real degradation, especially on fine detail like text and logos.
- Import errors trace back to a skipped
pip install -r requirements.txtmore often than anything else. - No LoRA input - same as the rest of the pack, there's no slot for one here.
- Pack hasn't updated since December 2024, when this node was added - the newest thing in the repo, but still frozen since. Don't expect fast fixes if a future ComfyUI or GGUF-tooling change breaks something.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| model_path | COMBO | 0 options: | |
| conditioning | CONDITIONING | — | |
| image | IMAGE | — | |
| mask | MASK | — | |
| num_inference_steps | INT | 5010–60 | — |
| cached | BOOLEAN | false | — |
| guidance_scale | FLOAT | 30.00.1–30 | — |
| vae | AUTOENCODER | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |