Nodes/ComfyUI-IcyHider/Icy ImagePadForOutpaint
ComfyUI Node

Icy ImagePadForOutpaint

Outpainting starts here — pad the canvas, feather the seam, let the model extend

By icekiub-ai·Created 9 months ago·Updated 9 months ago· 31
Icy ImagePadForOutpaint
  • image
  • IMAGE
  • MASK
left0
top0
right0
bottom0
feathering40

If you've ever wanted to "continue" an image past its edge - extend a scene sideways, add sky above a crop, grow a portrait into a full body - outpainting is the technique, and ImagePadForOutpaint is the boring-but-essential first step. The Icy prefix just means it's one of IcyHider's cloned core nodes: identical code to ComfyUI's ImagePadForOutpaint, same inputs, same outputs, with a hidden preview bolted on by the pack's JavaScript.

What it does

It takes your image, grows the canvas by a set number of pixels on each side, and hands you back two things:

  • IMAGE - the padded image (new area filled with whatever the padding color is, typically black or a solid).
  • MASK - a mask covering the padded region, with a soft gradient at the edge.

The feathering value (default 40) is the part that matters more than people think. Instead of a hard mask boundary where the model would generate a visible seam, feathering creates a soft falloff, so the inpaint blends into the original instead of cutting against it. High feathering = smoother blend but it eats into real pixels; low = sharper line, more visible transition. Start at the default and tune if the seam shows.

Inputs are just the six you'd guess: image, left, top, right, bottom (pixels per side, snapped to 8), and feathering.

How to use it in a workflow

The classic chain: ImagePadForOutpaint → feed the padded IMAGE and MASK into a mask-aware conditioning path (encode the padded image, use SetLatentNoiseMask or an inpainting model, run img2img) → sample → optionally repeat for the next side. The mask tells the model "this area is free real estate," and the prompt tells it what to draw there.

There's also a 2026-era shortcut the community circulates that needs no mask node at all: pad with a loud solid color and just tell the model to remove it. "Pad each side with 200px red, prompt for remove the red padding and show what's behind" works shockingly well on the newer fill/edit models - Flux Klein does it cleanly. ImagePadForOutpaint gives you the same padded canvas either way, so it's useful for both the masked and the "color-fill" school of outpainting.

Where people get burned: forgetting the feather on big pads. A 500px outpaint with feathering: 0 leaves a hard band you'll see in every extension. Also, outpaint in stages - pad one side, generate, pad the next - because a single giant pad on all four sides tends to come back incoherent.

Install and the IcyHider side

This is one of the rare Icy nodes where the wrapper actually does something visible: the padded image preview gets hidden until you hover, which is genuinely handy when you're iterating outpaint passes and don't want the work-in-progress canvas screaming at you. Install via ComfyUI Manager (search "IcyHider") or:

cd ComfyUI/custom_nodes
git clone https://github.com/icekiub-ai/ComfyUI-IcyHider.git

Restart ComfyUI, and it shows up under IcyHider Comfy Core. Zero Python dependencies, no model downloads - the pack is a node-cloning script plus frontend JavaScript. If the hiding behavior ever looks off, it's cosmetic; the padding math is exactly the core node's, and you debug it the same way.

CategoryIcyHider Comfy Core

Inputs (6)

NameTypeDefaultDescription
imageIMAGE
leftINT00–16384
topINT00–16384
rightINT00–16384
bottomINT00–16384
featheringINT400–16384

Outputs (2)

NameTypeDescription
IMAGEIMAGE
MASKMASK