Microsoft's research-grade photo restoration, warts and all
A CVPR 2020 oral paper that fixes scratches, fading, and faces in old photos using deep latent space translation.

What it does
Feed it a folder of battered vintage photos and it attempts to repair scratches, correct color fading, and sharpen faces. The pipeline runs in stages: scratch detection, global restoration via a triplet domain translation network, then face enhancement with a progressive generator. A basic GUI and Colab demo exist if you prefer not to touch the command line.
The interesting bit
The method treats photo degradation as a translation problem between latent spaces rather than slapping filters on pixels. It separates “structured” damage (scratches) from “unstructured” decay (fading, noise), then routes faces through their own refinement network. The authors later extended this to high-resolution inputs and even old film restoration.
Key highlights
- One-command pipeline:
python run.py --input_folder ... --output_folder ... --GPU 0 - Handles both scratched and scratch-free photos;
--HRflag for high-resolution inputs - Pretrained models available; training code included for the ambitious
- Colab demo and Replicate Docker image for quick testing
- MIT licensed, maintained by first author Ziyu Wan
Caveats
- The authors explicitly state this is “mainly for research purpose” with no performance optimization
- Model trained on 256×256 images, so “may not work ideally for arbitrary resolution”
- Setup is involved: manual checkpoint downloads, dlib face-landmark model, and two separate Synchronized-BatchNorm clones
- Ubuntu + NVIDIA GPU required; CPU inference possible but likely painful (
--GPU -1)
Verdict
Worth trying if you have a box of damaged family photos and a GPU to spare. Skip it if you need a polished product—this is a research artifact that happens to work, not a consumer tool.