Erase a photo
Photographic visual for Fill Failure Corpus

Fill Failure Corpus

Side by side

The fill-failure corpus

Every fill fails somewhere. These plates put the same hole on four kinds of surface and let each engine try, so you can see where each one gives up before it happens to your photograph.

How the plates were made

Each surface is 200 × 140 pixels, drawn by scripts/make-corpus.mjs from a fixed seed. The same ellipse is cut out of every one (the orange tile), and each engine fills it with a 2-pixel feather and seed 7. The table under each strip gives each result's seam number — the measurement the removal record shows for every removal, explained in is this removal visible? — and the flags are the repetition and straight-line checks. Lower is better; nothing here is touched up afterwards.

Sand

Texture with no long-range structure: any patch of it could stand in for any other.

Sand: Original, The hole, Patch search, Edge march, Smooth fill, Flat fill, Clone from pin — left to right.
Scroll sideways for every plate. Left to right: Original · The hole · Patch search · Edge march · Smooth fill · Flat fill · Clone from pin.
Seam number and checks for each engine on the sand plate
EngineSeam numberReads asChecks
Patch search0.64may show at 100 %texture may repeat
Edge march0.83may show at fit size—
Smooth fill0.76may show at fit size—
Flat fill0.90may show at fit size—
Clone from pin0.14reads as continuous—

Sky

A slow gradient with faint noise. Copying patches can leave blotches here; blending from the rim cannot.

Sky: Original, The hole, Patch search, Edge march, Smooth fill, Flat fill, Clone from pin — left to right.
Scroll sideways for every plate. Left to right: Original · The hole · Patch search · Edge march · Smooth fill · Flat fill · Clone from pin.
Seam number and checks for each engine on the sky plate
EngineSeam numberReads asChecks
Patch search0.26reads as continuous—
Edge march0.28reads as continuous—
Smooth fill0.29reads as continuous—
Flat fill0.35may show at 100 %—
Clone from pin0.00reads as continuous—

Tiles

Grout lines are positioned structure. A line that enters the hole has to come out the other side in the right place.

Tiles: Original, The hole, Patch search, Edge march, Smooth fill, Flat fill, Clone from pin — left to right.
Scroll sideways for every plate. Left to right: Original · The hole · Patch search · Edge march · Smooth fill · Flat fill · Clone from pin.
Seam number and checks for each engine on the tiles plate
EngineSeam numberReads asChecks
Patch search0.13reads as continuousa straight line stops at the fill
Edge march0.85may show at fit sizea straight line stops at the fill
Smooth fill0.61may show at 100 %a straight line stops at the fill
Flat fill refused; edge march ran0.85may show at fit sizea straight line stops at the fill
Clone from pin0.06reads as continuous—

Screen

A flat interface colour with a straight gradient. Any texture a fill adds here is visible.

Screen: Original, The hole, Patch search, Edge march, Smooth fill, Flat fill, Clone from pin — left to right.
Scroll sideways for every plate. Left to right: Original · The hole · Patch search · Edge march · Smooth fill · Flat fill · Clone from pin.
Seam number and checks for each engine on the screen plate
EngineSeam numberReads asChecks
Patch search0.01reads as continuous—
Edge march0.07reads as continuous—
Smooth fill0.06reads as continuous—
Flat fill0.00reads as continuous—
Clone from pin1.56may show at fit size—

What the plates show

  • On texture (the sand), the patch search is the only engine that keeps grain — and the repetition check fires, because a small surround feeds a large hole. The blending engines smooth the grain away and score worse.
  • On a slow gradient (the sky), every engine is close; copying patches is no better than blending from the rim, and a clone along the gradient's own direction is perfect.
  • On positioned structure (the tiles), nothing but the clone carries the grout lines through, and only because its pin sits exactly two tiles to the left. Every other result is flagged by the straight-line check, whatever its seam number.
  • On a flat interface colour (the screen), the flat fill is exact and the clone is the worst result, because it copies a different shade of the gradient into the hole.

Questions

Why are the surfaces drawn rather than photographed?
So that anyone can regenerate every plate exactly. The script draws the four surfaces from fixed seeds, cuts the same hole in each, runs every engine on it and measures the result with the same probe the removal record uses. A photograph would need to be shipped with the script and could not be varied to isolate one property at a time.
Why does the patch search on the tiles get a low seam number even though the grout lines are gone?
Because the seam number reads texture and joins, not structure. The fill is plain tile, tile is what surrounds most of the hole, and the join is clean — so the number is low. The grout lines that stop at the edge are what the separate straight-line check is for, and it flags that plate.
Is the structure-aware model in the corpus?
No. It is a download the visitor chooses, it runs in the browser, and its output is generated rather than copied, so it is not run by a build script. The corpus covers the engines that run without a download.

Related