Nodes/ComfyUI-Pixaroma/Outpaint Stitch Pixaroma
ComfyUI Node

Outpaint Stitch Pixaroma

Keep the sharp original, keep only what the model painted

By pixaroma·Created 5 months ago·Updated a day ago· 369
Outpaint Stitch Pixaroma
  • image
  • outpaint_info
  • image
  • mask
feather64
color_match100

Outpaint Stitch Pixaroma fixes the flaw at the heart of outpainting a large image. Here's the situation: your image is bigger than the model likes, so Outpaint Pixaroma pads it, scales it down for the generation, and the model paints the new scenery. That downscale-encode-decode trip softens the part of the picture that never needed to change - your original half comes back blurry even though the outpainted part is fine.

This node undoes exactly that loss. It scales the outpaint result back up to the full padded size and pastes your pristine original back over its own region, pixel-for-pixel at full resolution, feathering only the edges that border the new area. The freshly generated scenery stays as the model made it; the original comes back sharp. If you outpaint a lot, you'll feel this in your bones - the naive version makes the whole image look like it went through a JPEG filter.

Inputs

  • image (required) - the finished outpaint result, after VAE Decode. It gets scaled back up to the full padded size automatically, so feeding it the downscaled generation size is fine.
  • outpaint_info (PIXAROMA_OUTPAINT_INFO) - wire the outpaint_info output of Outpaint Pixaroma here. It carries the pristine original and where it sits in the padded canvas, so the original can be put back exactly. Leave it unwired and the image just passes through unchanged.
  • feather (INT, default 64, 0–1024) - softens the seam by this many pixels, fading the original edge into the new area. 0 is a hard edge (fully pristine original up to the seam); higher blends more but eats a little of the original at the join.
  • color_match (INT, default 100, 0–200) - removes the colour/tone step where the new area meets the original by continuing the original's colour along the seam into the new area. 0 = off, 100 = full. It follows the background per region, so a light-wall-over-dark-floor scene is handled regionally, not as one flat colour - and a subject the model drew in the new area isn't what gets sampled, so it won't tint the subject.

Outputs

  • image - the recombined, full-resolution result.
  • mask (MASK) - a mask of just the newly generated area (white = generated, black = untouched original), feathered to match the seam. Feed it into a refine or inpaint pass if you want to sharpen only the new part later.

Because both sliders are also wireable numbers, you can compare Feather and Color match values side by side with XY Plot Pixaroma - and since the node runs after the sampler, changing them re-runs only this node, no regeneration.

Install

Pixaroma pack, standard drill: ComfyUI Manager → search Pixaroma → install → restart, or:

cd ComfyUI/custom_nodes
git clone https://gitlab.com/pixaroma/comfyui-pixaroma.git

Pure torch, no disk, no extra dependencies. The usual update gotcha applies: hard-refresh the tab (Ctrl+Shift+R / Cmd+Shift+R) if the node renders stale after an upgrade.

Category👑 Pixaroma/✂️ Resize & Crop

Inputs (4)

NameTypeDefaultDescription
imageIMAGEThe finished outpaint result, after VAE Decode. It is scaled back up to the full padded size automatically, so it can be the downscaled generation size.
outpaint_infooptPIXAROMA_OUTPAINT_INFOWire the 'outpaint_info' output of Outpaint Pixaroma here. It carries the pristine original image and where it sits in the padded canvas, so the original can be put back exactly. If left unwired, the image just passes through unchanged.
featheroptINT640–1024Softens the seam between the original and the newly generated area by this many pixels, fading the original edge into the new area. 0 = hard edge (fully pristine original up to the seam). Higher blends more but eats a little of the original at the join.
color_matchoptINT1000–200Removes the colour/tone step that can show where the newly generated area meets the original, by continuing the original's colour along the seam into the new area. It follows the background per region, so it fixes a light-wall / dark-floor scene, not just a single flat colour. 0 = off, 100 = full match (the usual sweet spot); above 100 over-matches, for the rare case a step still shows. It only evens out tone, never texture or detail, so it cannot add artefacts.

Outputs (2)

NameTypeDescription
imageIMAGEThe full-resolution image: the newly generated area from the model with the pristine original pasted back over its own region.
maskMASKA mask of the newly generated area (white = generated, black = the untouched original), with the seam feathered to match. Feed it into a refine/inpaint pass if you want to sharpen just the new part.