Outpainting is inpainting pointed outward: you add empty canvas, then ask the model to fill it. It is the single most useful production trick in this whole set, and almost nobody uses it.

Why you’ll want it

A portrait framed too tightly for a thumbnail. A shot where your subject sits dead-centre and you need space for a headline. A plate whose subject touches the top edge. All the same fix.

We used it on this very episode: our presenter plates were composed centre-frame, so we grew the wall to the left and gave the title somewhere to live.

The outpaint graph — ImagePadForOutpaint sits between LoadImage and the inpaint conditioning

The one node that matters

ImagePadForOutpaint with left, top, right, bottom and feathering fields

ImagePadForOutpaint adds blank canvas and generates the mask for it in one step — that’s why it has two outputs. You feed IMAGE to the pixels input and MASK straight to the mask input.

FieldWhat we usedNotes
left512Pixels of new canvas on that side. Set only the sides you want to grow.
top / right / bottom0Same idea; combine freely.
feathering48The blend zone. Too low gives you a visible join; too high smears detail into the new area. 40–60 works.

Then prompt for the continuation, not for a new scene:

continue the plain studio wall to the left, empty wall only, nothing new in the added area, same colour, same soft lighting, seamless

Being explicit about “nothing new” matters. Ask vaguely and the model will happily invent a lamp.

Measured: 60 seconds for a 512px extension.

Pitfall: don’t outpaint in one giant jump

Growing 1000px at once gives the model too much freedom and it starts inventing architecture. Two passes of 500 hold together far better than one of 1000.

The settings, and what each one actually does

Four numbers in the KSampler carry an edit. These are the values we ran for every result below.

FieldValueWhy
steps20Below about 12 it stops respecting the instruction properly.
cfg2.5The one people get wrong. On an edit model, high CFG doesn’t mean “obey me more” — it means “destroy the original.” Stay between 2 and 3.
sampler_nameeulerBoring and reliable.
schedulersimpleSame.
denoise1.0Surprising, but correct here: the encoder holds your original, not the noise level.
seedchange itWhen an edit half-works, same prompt + new seed is free.

The rest of the set