Nodes/comfyui_bmab/BMAB Inpaint
ComfyUI Node

BMAB Inpaint

A self-contained, prompt-driven masked fill

By portu-sim·Created 2 years ago·Updated 8 months ago· 124
BMAB Inpaint
  • image
  • mask
  • seed
  • image
steps8
iteration4
prompt

Most inpainting in ComfyUI means wiring up a model, VAE, conditioning, a KSampler, and an InpaintModelConditioning node just to fix one region. BMAB Inpaint compresses that into a single node: give it an image, a mask, and a prompt, and it runs the masked fill internally. Notably, its info_schema has no model, clip, or vae socket at all - unlike BMAB's Resize By Ratio/Person nodes, which explicitly expose steps, cfg_scale, sampler_name and pull those from whatever's already flowing through the bind. That's worth flagging plainly: we can't confirm from the schema or README whether this node reuses a model already loaded elsewhere in your graph or runs against something BMAB manages on its own. If you need certainty here, check the pack's Python source before relying on it for anything where the exact checkpoint matters.

How it works, mechanically

Setting that gap aside, the shape of the job is standard masked inpainting: the unmasked region stays fixed, the masked region gets denoised guided by your prompt, and the two are composited back together. steps controls how many denoising steps each pass takes; iteration (1–8, default 4) runs that process multiple times - the more common pattern for this kind of automated fill is that later iterations refine what earlier ones produced, similar to how detect-and-inpaint tools like ADetailer do a full pass per detected region rather than one shot. seed is optional - leave it out for a random result each run, or pin it if you're trying to isolate the effect of changing steps or prompt in isolation, which is the standard way to A/B settings on any inpainting node.

The inputs and outputs that matter

  • image / mask (required) - your source and the region to regenerate. Standard ComfyUI mask convention: white is where the model paints.
  • steps (default 8, 0–10000) - denoising steps per pass. 8 is on the low side compared to a typical 20–30-step full generation, which suggests this is tuned to be fast for small regional fixes rather than a full repaint.
  • iteration (default 4, 1–8) - how many refinement passes it runs.
  • prompt (multiline, required) - describes what should appear in the masked area. This isn't optional the way it can be with a pure computer-vision inpainter like LaMa; leave it vague and expect a vague result.
  • seed (optional) - pin it for reproducibility while you tune the other settings.
  • Output: image - the composited result.

How to install it

ComfyUI Manager: search comfyui_bmab. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/portu-sim/comfyui_bmab.git
cd comfyui_bmab
pip install -r requirements.txt

The README also wants Fannovel16/comfyui_controlnet_aux and cubiq/ComfyUI_IPAdapter_plus alongside it, cloned and pip-installed the same way. Both ship in ComfyICU's shared image already.

Common issues & troubleshooting

Results don't match the checkpoint you're using elsewhere in the graph. Given the missing model socket, this is the first thing to suspect if the style of the inpainted region looks off compared to the rest of your image - the same mismatch problem that plagues any detect-and-inpaint tool when its pass runs against a different backbone than the base generation.

Seams or a visible boundary around the fix. This is the oldest inpainting complaint there is and the fix hasn't changed: composite carefully, and don't skip feathering on the mask you feed in - a hard-edged mask is the single most common cause of a visible seam, regardless of which node is doing the denoising.

Too much or too little change in the masked region. With no explicit denoise-strength input exposed here, your main levers are steps and iteration. If the fix is too aggressive, try fewer iterations first before assuming you need a different prompt.

CategoryBMAB/fill

Inputs (6)

NameTypeDefaultDescription
imageIMAGE
maskMASK
stepsINT80–10000
iterationINT41–8
promptSTRING
seedoptSEED

Outputs (1)

NameTypeDescription
imageIMAGE