Restore old photos with AI: repair damage, then upscale

To restore an old photo with AI, send the scan with a prompt listing the damage to fix, then upscale it up to 4x. Compare the result with the scan.

4 min readSume
All posts

To restore an old photo with AI, scan the print and send the scan to an image model as a reference, with a prompt that lists the damage to fix and what must stay: "Remove the scratches, dust spots, and the crease; restore the faded contrast; keep the faces, clothing, and background unchanged." If you need a bigger print, upscale the repaired image by up to 4×. The model redraws the photo rather than patching it, so compare the result with the scan and keep the original.

Both steps run on Sume's API: the repair is a POST /v1/images request, and the enlargement is an Image Upscale 1.0 job. Facts come from the Image API docs and the OpenAPI document behind the Sume API reference, read on 2026-09-28.

How do I restore an old photo with AI, step by step?

  • Scan the print flat, or photograph it straight on without glare, with the whole photo in the frame.
  • Put the scan at a public HTTPS URL. Localhost, private-network, and non-HTTPS URLs are rejected before submission.
  • Send it in input_references to a model that edits from references, with the damage list in prompt and aspect_ratio: "auto", so the repaired photo keeps the scan's shape. Leaving the field out is not the same as sending auto.
  • Ask for several versions with n (up to 4 on Nano Banana Pro today), and keep the one closest to the original.
  • For a bigger print, download the repaired image, host it at a public HTTPS URL, and send it to the upscaler (below).
  • Compare the result with the scan face by face, and keep both files.
curl -X POST "https://api.sume.com/v1/images" \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "google/nano-banana-pro",
    "prompt": "Restore this old photo: remove the scratches, dust spots and the diagonal crease, repair the torn corner, and restore the faded contrast. Keep the faces, expressions, clothing, background and black-and-white tones unchanged. Do not add color.",
    "input_references": [
      { "type": "image_url", "image_url": { "url": "https://example.com/scan-1948.jpg" } }
    ],
    "aspect_ratio": "auto",
    "n": 4
  }'

What should a photo restoration prompt say?

Name the damage you can see, then what must not change:

  • The damage: scratches, dust spots, cracks, a crease, a torn corner, stains, water marks, fading, or a yellow cast.
  • What stays: faces, expressions, clothing, the background, and the framing.
  • What not to add: "do not add color" for a black-and-white print, "don't smooth the skin", "keep the film grain". Adding color is its own job.
  • Missing pieces: say what was there if you know, such as "the torn corner showed more of the brick wall".

How do I make the restored photo bigger?

Send the repaired image to Image Upscale 1.0 as a public HTTPS image_url, with an upscale_factor of up to 4. The table compares the two steps; AI image upscaler API covers the upscale request in full, and AI image for print shows how many pixels a print size needs. API pricing describes the upscale as reserved at about 16 megapixels of generative output, so check the enlarged file against the scan too.

From Image API, the Sume API reference, API pricing, and current code, read 2026-09-28.
Repair the damageEnlarge the result
EndpointPOST /v1/imagesPOST /v1/image-upscale-1.0/upscale
Your image goes ininput_references: public HTTPS URLsimage_url: one public HTTPS URL
Main settingsprompt, aspect_ratio: "auto", and n up to 4upscale_factor from 1 to 4 (default 2); output_format png (default) or jpg
What comes backThe images within 30 seconds (200), or a job to poll (202); result URLs are signedA job with Sume-owned polling URLs; async is the default mode
PricePer completed image, at the model's price in GET /v1/images/models/{model_id}/endpoints$0.20 per image, plus a 5.5% agent fee by default

Will the restored photo look exactly like the original?

No. The edit generates a new picture from the scan and your prompt, so faces, expressions, and small details can change, and badly damaged areas are filled in with the model's guess. Put each result next to the scan and check every face before you print or share it. Keep the original scan: the restored file is a new image, not a repaired print.

What are the limits?

  • Each completed image is billed, so n: 4 is four images. A failed or cancelled generation is not billed, and usage.cost in the response is the USD amount billed.
  • The upscaler takes one image per job, and its factor stops at 4.
  • Result URLs from the repair step are Sume-hosted and signed, so download the versions you keep.
  • To make the restored photo move, see can AI animate old photos.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume