Nodes/comfyui-image-expand-nodes/Image Expand Noiser
ComfyUI Node

Image Expand Noiser

The node that swaps your pixels for noise so the model can fill the gap

By tuki0918·Created 9 months ago·Updated 8 months ago· 0
Image Expand Noiser
  • image
  • expand_options
  • mask
  • IMAGE
  • MASK
percentage0.20

Image Expand Noiser is the heart of the pack. It's the node that takes your image and preps it for generation: it paints a band of pure random noise onto the side you chose and hands you a mask that says "this is where the model should create, leave the rest alone." Everything after this is standard ComfyUI img2img.

Here's the mechanism, because it's sneakier than it looks. In outside mode (canvas grows), the Noiser does not resize your image. It keeps the same width and height, shifts the original pixels into position, and replaces the now-empty strip with torch.rand noise. The actual enlargement happens later, in the Merger - the Noiser is just building a latent-ready image plus a mask, and it's the mask that tells the sampler exactly which strip is new content. In inside mode it's even simpler: the image stays put and the noise just overwrites a strip of it, mask marking that strip.

The inputs you actually touch:

  • image - your source image.
  • expand_options - wire this from an Image Expand Option node. Direction and mode live there, not here.
  • percentage - the size of the noisy strip as a fraction of the image (default 0.2, min 0.1, max 0.5). On a 1024px image that default is roughly a 205px strip. Crank it for dramatic extensions; remember it's capped at half the image.
  • mask - optional, and the newest addition (v1.1.0). Hand it your own mask and it gets merged in, resized nearest-neighbor to match your image, so you can protect regions or add a custom shape to the regeneration area.

Two outputs, and both matter:

  • IMAGE - the noise-banded image. This feeds a VAE EncodeKSamplerVAE Decode chain, i.e. a straight img2img pass. Denoise high for outside mode (0.8–1.0 - the extension is mostly new content, per the usual outpainting recipe), lower if you're doing a light inside-mode touch-up.
  • MASK - 1.0 where it regenerates, 0.0 where it keeps the original. You want this in two places: optionally into an InpaintModelConditioning to steer the sampler, and always into the Image Expand Merger afterwards, because that's how the merger knows where the new content is.

Honest take on where this approach sits: because the Noiser keeps resolution, the generated strip gets the same per-pixel budget as the rest of the image - no upscaling trick, no crop-and-zoom. That's fine for texture-like content (sky, water, ground) and reads well, but complex structure (buildings continuing around a corner) will look like what it is: an in-place guess. If that's your case, reach for ControlNet structure or an instruction-editing model - the red-pad trick on Flux Klein outpaints whole frames with two nodes.

Typical friction: a hard seam at the boundary, which is the classic outpainting failure mode. Mask blur plus a second low-denoise pass over the seam is the standing fix, and with this pack the mask you hand the sampler and the mask the merger sees can differ, so blurring the conditioning mask won't scramble the merge. And if the extension looks flat, bump percentage - a thin strip has little context to work from.

Install is the whole pack's story: no dependencies, no model files.

# ComfyUI Manager: search "ComfyUI Image Expand Nodes" → Install → restart

# or:
cd ComfyUI/custom_nodes
git clone https://github.com/tuki0918/comfyui-image-expand-nodes.git
# restart - no pip install needed

It's a small, MIT-licensed utility from an individual dev with basically no community footprint, so you're not getting a battle-tested pipeline - you're getting a clean, readable implementation of a classic technique. For learning how outpainting actually works, that's a feature.

CategoryImage/Processing

Inputs (4)

NameTypeDefaultDescription
imageIMAGE
expand_optionsEXPAND_OPTION
percentageFLOAT0.200.1–0.5
maskoptMASK

Outputs (2)

NameTypeDescription
IMAGEIMAGE
MASKMASK