Pixploder Docs
Open the app →
Docs / The pipeline / Extend Canvas

Extend Canvas

Extend Canvas is where you give your scene more room — or trim it — without ever disturbing the art you already have. Drag any edge outward and the AI paints the new space to match your scene; drag inward and you crop, for free. Your original pixels never move, scale, or resample: the step measures them, fills the new area, then pastes your art back on top exactly as it was. This step is optional — a scene that already has the framing you want can pass straight through. You are done when the canvas is the shape you need and, if you grew it, the fresh edges blend seamlessly into your art.

Costs. Every outward extend spends one AI fill's worth of credits — the AI model menu and the Extend canvas button both show the exact price before you click. Re-rolling a fill or rolling a new variant costs the same again. Everything else is free: cropping (dragging inward), snapping to a ratio, switching between takes, undo, and the anchor and prompt controls. See Credits & plans.

Getting in and out

You arrive from Step 1 · Generate or Upload: in the Source Art Review panel, click Continue to Extend Canvas (or Skip — go straight to Locate & Segment to bypass this step entirely). The panel header reads Extend Canvas (optional); the X beside it (Back to upload) returns to Step 1 without touching the canvas, and a Back to upload link appears if no image is loaded. When you are finished, Continue advances to Step 3 · Locate & Segment — it is disabled only while a fill is running. Leaving every margin at 0 and pressing Continue is perfectly fine; extending is never required.

The Extend Canvas step at rest: drag any edge or corner handle to resize, with the full control panel on the right.
The Extend Canvas step at rest: drag any edge or corner handle to resize, with the full control panel on the right.

Resize the canvas

The canvas sits inside a dashed frame with eight white handles — four corners, four edges. This is the core control, and it drives four independent margins measured in pixels of your current image.

  1. Drag any handle — outward grows that side (the added area previews as a magenta hatch, the exact pixels the AI will paint), inward crops it. A live chip on each changed side shows the amount: fuchsia +200 px for growth, rose -120 px for a crop.
  2. Or type exact margins under Canvas size — px per side — the Top, Right, Bottom and Left number inputs. A positive value grows that side (fuchsia border), a negative value crops it (rose border). The inputs step by 8.
  3. Hold Shift while dragging to snap the drag to tidy 16 px increments; a plain drag is precise to 1 px.
  4. Set the Anchor — the 3×3 grid of dots decides where your existing image sits when a ratio preset splits the growth (pick bottom-center and a preset adds all its new height as sky above). It has no effect on margins you drag or type by hand.

A size readout badge above the canvas reports W×H → newW×newH px, and a caption under the frame repeats the rules: drag outward to extend, inward to crop, Shift snaps to 16 px, magenta is the area the AI paints.

Tip. The magenta hatch and the per-side chips show exactly what will change before you spend anything — nothing here touches your credits until you press the Extend canvas button.

Careful. A crop can only go so far: at least 16 source pixels must survive in each dimension, so an over-crop is clamped back. Growth has ceilings too — see the guard readout below.

Snap to a ratio

Ratio chips are margin calculators. One tap fills in the four margins — grow-only — so the canvas reaches a target aspect, split according to the Anchor. Your pixels never scale; only empty canvas is added.

  1. Tap a preset1:1, 16:9, 9:16, 4:3, 3:2, or 21:9.
  2. Or enter a custom ratio in the W : H inputs (default 16 : 9) and click Set to apply the same math for any aspect.

Because presets are grow-only, they never produce a crop. Pick your Anchor first so the growth lands where you want it.

Extend from this version or the base

Once the current canvas was itself produced by an earlier extend, an Extend from toggle appears — it chooses the frame of reference your margins edit against.

  • this version W×H (default) chains on top: the existing fill is kept, margins start at 0, and dragging paints only the newly added strip.
  • base W×H reshapes from the original base: the inputs prefill with this version's offsets, and changing them regenerates the whole margin as one seamless fill. An info line — this version = base +Xr +Yt … — summarizes the recorded offset.

Tip. Use base when widening a previous extension (say +124 to +200 px), so you get one clean margin instead of a visible seam over the old fill. Use this version to keep adding in new directions while preserving a fill you already like.

Let the AI fill the new area

Under ✨ AI fills the new area is the paid part of the step.

  • Outpaint prompt — the editable instruction sent to the AI, describing how to continue your scene into the magenta. It defaults to a thorough seamless-extension instruction; reset prompt restores that default, and leaving it blank falls back to the same.
  • AI model — the menu that picks which AI paints the fill. Each option shows its per-image credit cost, and your choice sets the price on the button below.
  • Guard readout — a live line marked (green, good to go), (amber, still works but the fill may drift or soften), or (red, blocked). It reports the result size and aspect and drives whether the button is enabled.
  • Extend canvas · N credits — the primary action when a growth is pending. One press bakes the growth as magenta, runs a single AI outpaint, content-matches the result back onto your frame so nothing shifts, cleans any leftover magenta, and pastes your original pixels back on top. When the pending change only removes pixels, this button becomes Apply crop (free) — pure geometry, no AI, the current fill kept.

When the canvas is already a finished roll and nothing is dirty, the button offers ↻ Re-roll extend · N credits (another fill for the same margins). When the canvas is the base that rolls were made from, it offers ↻ Roll new variant (W×H) · N credits. A ↻ use last margins link reloads the last margins you used so you can re-apply them. Whether new fills stay crisp or smooth-upscale follows the pixel-art mode you set back in Step 1, not a control here.

The right-hand panel with a growth pending: per-side pixels and anchor, ratio snaps, the fill prompt and AI model, the guard line, and the Extend button.
The right-hand panel with a growth pending: per-side pixels and anchor, ratio snaps, the fill prompt and AI model, the guard line, and the Extend button.
Dragging a corner outward adds magenta canvas — the exact area the AI will paint — while your pixels stay put.
Dragging a corner outward adds magenta canvas — the exact area the AI will paint — while your pixels stay put.

Careful. For a big enlargement, extend in two or three smaller passes (apply, then this version again) — a fill blends better the closer it stays to your pixels. The guard hard-stops the extremes: an aspect past roughly 3:1, a side past 4096 px, or your art covering less than about 20% of the result (below that, the AI repaints a new scene instead of continuing yours). Below ~35% coverage it warns but still lets you proceed.

Dragging inward crops for free — no AI, and the current version keeps its fill.
Dragging inward crops for free — no AI, and the current version keeps its fill.

Compare versions in Extend takes

Every AI extend lands in Extend takes — click to use, oldest to newest, with the original pinned at the top (the newest roll lands at the bottom). Click any row to make that version the working canvas; when versions share a lineage, your later-step work follows the switch automatically.

  • current — the fuchsia badge marking the active canvas.
  • — rolls a new variant of that extension (same margins, a fresh fill). It appears only on growth recipes.
  • DownloadSave (download + keep in project) downloads the PNG and keeps it in your saved images.
  • TrashDelete this take forever opens a permanent-delete confirm. The original and any base that still anchors later versions have no trash button.
Every AI extend lands in the takes list — switch versions, re-roll a variant, or save a keeper.
Every AI extend lands in the takes list — switch versions, re-roll a variant, or save a keeper.

Note. The strip keeps up to ten rolls; the original and base anchors are never dropped, since they hold the lineage together. Takes deliberately survive ↺ Undo extend and reloads — which is why deleting one is permanent. Download a version you love before it can age out.

Undo and the keep-everything guard

Because a paid extend can also invalidate work you have done in later steps, this step protects it.

  • ↺ Undo extend reverts the last extend or take-switch in one click — restoring the previous canvas and everything that was cleared with it. It is a single in-memory slot: a second extend, a take switch, or a reload discards the snapshot.
  • Extend with work in later steps? appears when downstream work exists. It lists how many masked elements keep their pixels versus fall outside the crop, notes that backgrounds and takes are padded not scaled, and that shadows, sheets and regions follow their elements. Your choices are Cancel and ✨ Extend & keep all — the latter remaps everything that fits and extends.
  • Switching or re-rolling from a take that would remove work asks first too — Switch to this extend take? (Switch canvas) and Roll a new variant of this take? (↻ Roll variant) — and Delete this extend take? guards the permanent delete.
Extending after later-step work asks first, then remaps everything that fits to the new canvas.
Extending after later-step work asks first, then remaps everything that fits to the new canvas.

Applying keeps you on this step so you can extend again to keep growing; press Continue when you are happy. If a grown edge shifts color at the seam, that is what Step 7 · Harmonize is for.