EasyKSampler (Inpainting)
Pick your inpaint method from a dropdown
- pipe
- model
- mask
- pipe
- image
- vae
Inpainting in ComfyUI has always had too many competing "right ways" - plain InpaintModelConditioning, Differential Diffusion, Fooocus Inpaint, BrushNet - each with its own node chain. This sampler puts them behind a single dropdown. You feed it your pipe and a mask, pick a method from the additional menu, and it wires up that inpainting approach for you.
It's the inpainting member of ComfyUI-Easy-Use's sampler family, and it earns its place by hiding real complexity. Under the hood these are genuinely different techniques with different model requirements; on the face of the node they're just options in a list.
Why you'd reach for it
Because setting up Fooocus Inpaint or BrushNet by hand is fiddly, and this collapses it. If you want to erase-and-replace part of an image, or extend a canvas (outpaint), you drop this in place of your normal sampler, hand it the mask, and choose the method that suits the job. It slots into the same loader → presampling → sampler pipe flow as the rest of the pack, so your inpainting graph looks like your text-to-image graph with one node swapped.
How it works
It's easy kSampler with a mask input and an inpaint-method selector. The additional dropdown is the interesting part - it picks how the masked region gets handled:
- None / InpaintModelCond - standard conditioning-based inpainting.
- Differential Diffusion - softer, gradient-aware mask blending; great for seamless edits.
- Fooocus Inpaint - the excellent Fooocus inpaint patch (its inpainting was good enough that it got ported into ComfyUI as a node pack in the first place), and it's SDXL-only.
- Brushnet Random / Segmentation (with optional + DD) - the BrushNet inpainting models.
grow_mask_by (default 6) expands the mask outward a few pixels so the edit blends instead of leaving a hard seam - a small but important knob. The node then samples only the masked area (settings, as always, coming in on the pipe) and composites the result back.
The inputs and outputs that matter
pipe- model, conditioning, latent and settings from upstream.mask(optional input) - the region to repaint.grow_mask_by- mask feather/expansion; bump it if you see seams.additional- the inpaint method. This is the decision that changes your result the most.image_output/save_prefix- preview, save, or send.
Outputs: pipe, image, vae.
Installing it
ComfyUI Manager: search ComfyUI Easy Use, install, restart. Or clone: cd ComfyUI/custom_nodes && git clone https://github.com/yolain/ComfyUI-Easy-Use, install requirements, restart. The catch: the fancier methods need their models. Fooocus Inpaint and BrushNet each require downloading the relevant inpaint model files (BrushNet also wants the ComfyUI-BrushNet nodes present) - the dropdown option exists whether or not the model is on disk, so grab them before selecting.
Where people trip
The classic: choosing Fooocus Inpaint or a Brushnet option without the model downloaded, then getting a load error. Each method has its own file to fetch; the menu doesn't check for you. Second, Fooocus Inpaint is SDXL-only - don't select it on an SD1.5 or Flux pipe. Third, if your edits show a visible halo or hard edge, raise grow_mask_by and try Differential Diffusion, which blends the boundary far more gently than plain conditioning.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| pipe | PIPE_LINE | — | |
| grow_mask_by | INT | 60–64 | — |
| image_output | COMBO | Preview | 6 options: Hide, Preview, Save, Hide&Save, Sender, Sender&Save |
| link_id | INT | 00–9223372036854776000 | — |
| save_prefix | STRING | ComfyUI | — |
| additional | COMBO | None | 9 options: None, InpaintModelCond, Differential Diffusion, Fooocus Inpaint, Fooocus Inpaint + DD, Brushnet Random, +3 |
| modelopt | MODEL | — | |
| maskopt | MASK | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| pipe | PIPE_LINE | — |
| image | IMAGE | — |
| vae | VAE | — |