Old Photo Studio

How it works

Old Photo Studio restores photos inside your web browser. Your photo stays on your own device from start to finish.

Your photo stays on your device

When you choose a photo, your browser reads it from your device into memory. Your own device does the restoring, using small model files and the software that runs them. Both come from our website. Your photo is never sent to us or to anyone else. When you save the result, it goes straight to your device.

The first time you use the tool, your browser downloads the models and their software. Your browser keeps a copy, so they don’t need to download again on later visits. These files contain no information about you or your photos.

What happens to your photo

  1. You choose a photo. JPEG, PNG and WebP files work. If the photo was taken sideways, it is turned the right way up first. Very large photos are made smaller, so your device can handle them.
  2. Scratches and dust are marked. A damage model looks for scratches, dust and specks and marks them in red. It leaves faces out, because it mistakes the light in people’s eyes for specks. The marks are a suggestion: on real photos the model misses some dust and fine scratches. It can also mark a torn or ragged card edge as damage, so crop borders off before you start.
  3. You check the marks. Paint over damage the model missed, erase marks that aren’t damage, and undo if you need to. Then choose “Fill in and restore”, or “Skip this step” to leave the photo as it is.
  4. The marked parts are filled in. A fill model repaints only the marked areas, from the photo around them. It works on a copy about 1,024 pixels on the long side, and the fill is blended back into your full photo only inside the marks. The rest of the photo is not touched.
  5. The tones are evened out. A fixed step stretches the light and dark tones of faded photos, so the darkest parts are dark and the lightest parts are light. This step doesn’t change the photo’s color tint. If you switch color off in step 7, a sepia or brown-toned photo keeps its tone.
  6. The enhance model cleans and enlarges it. The model works on the light and dark detail of the photo: grain, blur and compression marks. It makes the photo 4 times wider and 4 times taller. The photo’s colors are enlarged with a standard resizing method and then put back, so this model does not change them.
  7. Color is added, if you want it. For a black-and-white or sepia photo, a color model suggests colors, working from the filled, evened-out photo. The colors are then joined with the enlarged result, so they come out at full size. Color is on by default for photos without color and off for color photos, and a switch turns it on or off. The “Color strength” slider makes the colors more muted or more vivid, and it changes the result straight away. The colors are the model’s guess, not the real ones. Colorize black and white photos has tips for better color.
  8. You compare and save. You can look at the original and the result, then save the result as a new PNG file, named after your photo with “-restored” added. Your original file is not changed. The new file doesn’t carry the original’s hidden details, such as the date it was taken or the camera used.

How fast is it?

It depends on your device and the size of the photo. On browsers that support WebGPU, the tool uses your device’s graphics chip, which is usually faster. On other browsers it uses the main processor, which is slower. The first photo also has to wait for the models to download.

The models

We trained the models ourselves, on old photos that Flickr lists as public domain, CC0 (no rights reserved) or “no known copyright restrictions” (Flickr Commons), collected from the Megalith-10M dataset. Each model learned in part from a larger open-source model, used as a reference during training. We publish only our own trained models. The reference models are not part of the site.

Scratch and dust marks

  • Trained by us on old photos with damage added on purpose, and on real damaged photos marked by the scratch detector from Microsoft’s “Bringing Old Photos Back to Life” (MIT licence), used as a reference model during training.

Filling in the marks

  • Trained by us, using LaMa (Apache-2.0 licence) as a reference model during training.

Color

  • Our ColorNet model. Its encoder starts from the ImageNet-trained MobileNetV3-Large model in torchvision (BSD-3-Clause licence).
  • Trained by us using DDColor (Apache-2.0 licence) as a reference model during training.

Enhance (cleans grain and blur, enlarges 4 times)

  • Network design: SRVGGNetCompact, published with Real-ESRGAN by Xintao Wang and others (BSD-3-Clause licence).
  • Trained using Real-ESRGAN models as reference models during training: general-x4v3 with its denoise model at strength 0.5 (BSD-3-Clause, © 2021 Xintao Wang), and RealESRGAN_x4plus (same licence) in an earlier training stage. Our model learned to match their results on our photos.

Software that runs the models

  • ONNX Runtime Web, by Microsoft (MIT licence).

Our models

  • The restoration models on this site were trained by us. We don’t license them for copying, extraction or reuse. The licences listed here belong to the open-source projects we name, and our own models are not released under them.

Links: Bringing Old Photos Back to Life https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life · LaMa https://github.com/advimman/lama · DDColor https://github.com/piddnad/DDColor · torchvision https://github.com/pytorch/vision · Real-ESRGAN https://github.com/xinntao/Real-ESRGAN · ONNX Runtime https://github.com/microsoft/onnxruntime · Megalith-10M https://huggingface.co/datasets/madebyollin/megalith-10m

Limits

  • It can’t bring back what’s gone. Torn-away corners, holes, and heavy scratches through a face leave nothing to work from.
  • It estimates fine detail. When it enlarges a photo, it fills in grain and texture based on the old photos it learned from. Faces and writing can come out smoother or slightly different from the original. Check them before you print.
  • The scratch marks are a suggestion. The damage model misses some dust and fine scratches, and it leaves faces out. Check the red marks before you fill them in. It doesn’t remove stains.
  • Filled-in parts are a guess. The fill model paints what probably belonged there, based on the area around it. Check faces, eyes and writing.
  • Colors are a guess. The color model doesn’t know the real colors. A dress or a car may have been a different color. Make the colors more muted with the slider, or switch color off.
  • It isn’t a copy of the original. The result is a new picture made from your photo. Keep your original print and your first scan. The National Archives advises keeping originals after you digitize them.

Source: National Archives, “Digitizing Family Papers and Photographs”. https://www.archives.gov/preservation/family-archives/digitizing.html (read November 4, 2026)