How it works

Many copies give the mark away.

A stamp repeated across a picture is never quite hidden: every copy sits on a different part of the photo, and the difference is what lets the photo be seen again. Four ideas, no formulas.

The four steps

  1. 1

    Find the repeat

    The same stamp lands on the photo many times.

    The app looks for that repetition and works out the spacing between copies.

    Finding the repeatA landscape photo with the same ring-shaped stamp printed twelve times in a grid. A dashed outline steps from one copy to the next, and arrows mark the horizontal and vertical spacing between copies.
  2. 2

    Learn the mark from many copies

    Under each copy lies a different piece of the photo.

    What all the copies share is the mark; what differs between them is the picture. Comparing many copies separates the two.

    Learning the mark from many copiesFour small squares cut from different parts of the photo, sky, mountain, grass and sun, each with the same ring stamp. They are combined into one square where only the stamp remains, drawn on a checkerboard that stands for transparency.
  3. 3

    Lift it off

    Once the mark’s shape and strength are known, each pixel’s original value is worked back out.

    Where the mark was see-through, the picture underneath returns.

    Lifting the mark offThe stamped landscape with a line sweeping across it. Behind the line the ring stamps are gone and the sky, mountains and grass show through unchanged; ahead of it the stamps remain.
  4. 4

    Fill what was lost

    Where the mark was too solid to see through, nothing of the picture is left to recover.

    A small model on the phone (MI-GAN) paints that area in from its surroundings. That part is a reconstruction, not the original.

    Filling what was lostThe landscape after the stamps are lifted, with one patch where the mark hid the picture completely, shown as an empty checkerboard. The patch is then painted in to continue the mountain and sky around it, and a dashed outline stays to mark it as reconstructed.

Before anything is saved you see what will be removed, and you can paint over any spot the app missed.

One photo (0.6.0)

A trained model, on the phone, for a single photo.

With one photo there is no second copy to compare, so the app uses a small neural model that has learned what watermarks look like. It runs entirely on the phone, and nothing is uploaded. It predicts the mark's opacity and colour at every pixel, then inverts the blend: given what a mark of that opacity and colour does to a pixel, it works the original value back out.

The picture is processed twice, once as it is and once mirrored. The second pass is a self-check: wherever the two passes disagree about what lies under the mark, the app leaves the original pixels untouched rather than guess. On a clean photograph with no mark it changes nothing. In our test set this cut visibly damaged patches from 9 of 300 marked pictures to 2 of 300 (numbers and examples). The same path is used for two photos when the learner above cannot find a shared mark. It needs about 1.2 GB of free memory and the full build.

Why several photos are still better

More copies leave more to compare.

The four steps above depend on seeing the mark more than once, over different pieces of picture, and they remain the most reliable route when you have 5 or more photos with the same mark. The one-photo model is a prediction from a single picture: it can leave a faint outline or miss the mark's exact strength, so check the preview before saving. For anything it leaves behind, brush the area out in Quick Remove.