Nodes/LLS-node/LLS Native Inpaint Conditioning
ComfyUI Node

LLS Native Inpaint Conditioning

The 2026 recipe for true masked inpainting, wrapped in one node

By Gin3601·Created 3 months ago·Updated 3 months ago· 0
LLS Native Inpaint Conditioning
  • model
  • positive
  • negative
  • vae
  • image
  • mask
  • model
  • positive
  • negative
  • latent
  • inpaint_info
patch_modeauto
patch_strength1.00
noise_masktrue
model_info

There's a specific recipe that the inpainting community converged on for getting modern edit models to do true masked inpainting - the kind where the unmasked pixels stay untouched. The short version: use InpaintModelConditioning instead of an empty latent, and you get a latent whose masked region is actually conditioned on the surrounding image. That's exactly what this node is: a thin wrapper around ComfyUI's InpaintModelConditioning, with one LLS twist on top.

The twist is FLUX. FLUX-family models want a Differential Diffusion patch applied to the model so masked inpainting behaves correctly instead of treating the mask as just another img2img denoise. Set patch_mode to auto (the default) and the node applies Differential Diffusion automatically when it detects a FLUX-family model, at patch_strength (default 1.0). Set it to disabled and it won't touch your model; differential_diffusion forces it on.

What it does, mechanically

You feed it a model, positive/negative conditioning, a vae, the image, and the mask. It returns the patched model, re-encoded positive/negative, and a latent with the noise mask attached - the full conditioning bundle a KSampler needs. It also returns an inpaint_info JSON describing what it detected (model family, profile, which patch was applied). The optional model_info lets you override family detection if the auto-sniff gets a merge wrong.

The noise_mask boolean (default on) controls whether the latent carries the noise mask - keep it on for standard masked inpainting.

Why this node exists

ComfyUI's stock InpaintModelConditioning already does the core job; this node exists to make it family-aware and to remove the FLUX Differential Diffusion gotcha. In the LLS pack it slots into the repair chain as the "native" route, alongside the pack's own Simple Repair Prepare. If you're coming from the KB's inpainting guide, this is the same recipe - InpaintModelConditioning, basic scheduler so you get denoising strength back, mask in - but packaged so you don't have to find and wire the pieces yourself.

Installing it

cd ComfyUI/custom_nodes
git clone https://github.com/Gin3601/LLS-node
# restart ComfyUI

Or ComfyUI Manager → search "LLS-node". It calls ComfyUI core, so no pip dependencies.

Gotchas

The FLUX auto-patch depends on your ComfyUI build shipping the Differential Diffusion support it expects - if you're on a stripped-down or very old build, check the inpaint_info output to confirm whether a patch was actually applied. And remember the broader lesson from the inpainting discourse: masked inpainting with modern models is now the deliberate choice when you need unmasked pixels untouched or full-resolution detail on a small region - for whole-frame edits, an instruction editor (Qwen Edit, Klein) without a mask is usually faster.

CategoryLLS/Image Repair

Inputs (10)

NameTypeDefaultDescription
modelMODEL
positiveCONDITIONING
negativeCONDITIONING
vaeVAE
imageIMAGE
maskMASK
patch_modeCOMBOauto3 options: auto, disabled, differential_diffusion
patch_strengthFLOAT1.000–1
noise_maskBOOLEANtrue
model_infooptSTRING

Outputs (5)

NameTypeDescription
modelMODEL
positiveCONDITIONING
negativeCONDITIONING
latentLATENT
inpaint_infoSTRING