Nodes/IAMCCS-nodes/IAMCCS Ideo Masked Pixels
ComfyUI Node

IAMCCS Ideo Masked Pixels

Make the model actually see the hole you're inpainting

By IAMCCS·Created 11 months ago·Updated 8 days ago· 113
IAMCCS Ideo Masked Pixels
  • image
  • mask
  • image
  • mask
  • mask_preview
  • report
fill_modesolid_black
strength0.95
fill_color#000000
seed1

Here's an inpainting gotcha that bites people on Ideogram and Flux-style paths: if you feed the model a masked region that still contains the original pixels, it can decide there's nothing to change - "looks fine to me" - and the edit just doesn't happen, or it happens so weakly the region feels wrong. The fix the community converged on is to visibly destroy the masked area before sampling, so the model knows there's a hole to fill. IAMCCS IdeoMaskedPixels does that with no third-party dependencies.

The author's docstring is honest about what it is: it "mirrors the useful part of external masked-noise workflows without adding third-party runtime dependencies." Those external workflows are usually the masked-blur or masked-noise tricks from other packs; this is the same idea implemented in plain PIL/numpy.

How it works

You feed image + mask, and the node replaces the masked region with a fill, chosen by fill_mode:

  • solid_black (default) - clean slate. The most aggressive "there is nothing here" signal.
  • solid_gray - mid-gray instead of black; sometimes behaves better with the model's priors.
  • noise - random noise seeded by seed, mirroring the masked-noise workflows. Great when the model overfits to black holes.
  • blurred_source - a heavy blur of the original pixels. Least destructive; the model still sees structure but knows the region is soft and editable.

strength (default 0.95) controls how much of the fill actually lands - 0.95 means the fill mostly replaces the masked area, and fill_color (hex) sets the color for the solid modes.

Outputs

image is the altered pixels. Crucially, mask passes through unchanged - you feed the same mask to InpaintModelConditioning that you used here, because the conditioning needs the true geometry while the sampler needs the "edited" pixels. mask_preview is a visual IMAGE of the mask so you can see what the model is being told, and report summarizes what happened. A seed input also flows into the noise path, so runs are reproducible.

Why this beats a blur node

Because the fill, the mask, and the report all stay in one place. You can reproduce the same trick with a Blur node plus a mask blend, but you'll be juggling three nodes and re-deriving the geometry each time. Here the pairing is guaranteed to stay consistent.

Install & expectations

IAMCCS-nodes, the usual two routes:

cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git

or ComfyUI Manager → search IAMCCS. No extra packages.

If an edit still comes out too subtle, don't immediately blame the fill - check your strength, and remember the model is also governed by the mask and denoise settings downstream. This node only fixes the "model doesn't see the hole" half of the problem.

CategoryIAMCCS/Cine/Ideogram

Inputs (6)

NameTypeDefaultDescription
imageIMAGE
maskMASK
fill_modeCOMBOsolid_black4 options: solid_black, solid_gray, noise, blurred_source
strengthFLOAT0.950–1
fill_colorSTRING#000000
seedINT10–18446744073709550000

Outputs (4)

NameTypeDescription
imageIMAGE
maskMASK
mask_previewIMAGE
reportSTRING