PL Log inOpen Studio
Preview version. Model catalog, prices, calculator and docs are live. Generation goes live at launch.

Bring Old Family Photos Back With AI - Repair, Color, Motion

Restore an old photo with AI: scan, repair and colorize in Nano Banana Pro, animate gently in Kling 3.0, build a hug video of two people, with costs.

A torn wedding portrait from the 1950s, a faded school photo, a grandfather you only know from one blurry print. AI can take those scratches and stains away, add believable color and even make the face blink and smile for a few seconds. The pipeline on Kadraris is simple: scan the print, repair it with an image editing model (Nano Banana Pro, FLUX.1 Kontext [pro] or GPT Image 2.5), colorize it in a second pass, and optionally use the result as a start frame in Kling 3.0 or MiniMax H3. One edit costs from $0.07 per image, a short clip costs its length in seconds times the video rate, and failed jobs cost nothing.

One thing needs saying first, because these are often photos of people who have died. AI does not know what anyone really looked like. Where detail is missing, it invents detail that looks right. This guide is about keeping that invention as small as possible.

The pipeline in one table

StageToolResultPrice
1. Digitizescanner or phonea sharp PNG or JPGfree
2. Clean upNano Banana Pro, FLUX.1 Kontext [pro], GPT Image 2.5no scratches, creases or stainsfrom $0.07 per image each
3. Add colorsame models, new edita color versionsame
4. Add motionKling 3.0, MiniMax H3a short MP4from $0.0963 per second
5. Hug clip (optional)Nano Banana Pro then a video modeltwo people together, then movingimage plus seconds
6. Sharpen the clipTopaz Video Upscalerhigher resolution$0.11 per second

I keep cleanup and color as two separate jobs. Asking for both at once changes faces more often, since the model has to invent too much in one go.

  • Work on photos that are yours to edit: your own family's, or ones you have permission for from relatives or the person shown. Studio portraits, archive scans and newspaper photos may belong to someone else.
  • Ask the family before you post. A moving portrait of a late parent comforts some people and upsets others.
  • Never throw away the scan. The AI version is an interpretation. Store the original next to it and label which is which.
  • Children in the picture. Safety filters from the model makers can refuse images with children, even harmless family shots, and video models are stricter. A refusal costs nothing, but some photos will not pass however many times you try.

Stage 1: digitize the print well

Whatever is missing from the scan, the model will make up. So the scan decides how much of the result is real.

  • Flatbed at 600 dpi for normal prints, 1200 dpi for tiny passport-size photos. Save as PNG or the highest JPG quality.
  • Phone as a backup. Lay the photo flat, use soft light from the side, no flash, and hold the phone exactly parallel to the paper. Reflections on glossy prints cause most problems.
  • Turn off beauty modes and filters in the camera app. Smoothed skin going in means plastic faces coming out.
  • Crop away the album border, not the people. Leave space around them; if you animate later, the model needs room to move.
  • Stay under 25 MB per file. That is the limit of Upload file in Studio for PNG, JPG and WebP.

Stage 2: clean up without changing the face

Cleanup is an image edit. The scan goes in as a reference, and the prompt lists what to fix and, more importantly, what to leave alone.

ModelWhy use itMax outputPrice
Nano Banana Prokeeps faces and layout steady1K, 2K or 4Kfrom $0.07 per image
FLUX.1 Kontext [pro]edits by text, same person across a chain of editsaround 1 MP$0.088 per image
GPT Image 2.5follows exact wording, quality settingup to 3840 px per side$0.05 per image

In Studio:

  1. Log in to Studio and open Image. New here? Sign up and add funds; nothing renews and the balance does not expire.
  2. Under Model, choose Nano Banana Pro.
  3. Open Reference images (URLs), press Upload file and add the scan.
  4. Paste the prompt below. Pick 2K. Leave the ratio alone; the output follows the scan.
  5. Read the Cost line and press Generate.
text
Restore this old photograph. Remove scratches, dust, stains, creases and
torn edges. Keep the exact same people, faces, facial features, expressions,
hairstyles, clothing, pose, framing and background. Do not beautify, do not
change age, do not add makeup, do not smooth the skin. Keep it black and white
with natural film grain. Sharpen only what is already visible.

The protective list in the second half carries most of the weight. Without it, models like to make people younger, prettier and smoother.

For a big hole, like a ripped corner or a stain over half a face, clean the rest first and then fill the gap in its own edit: Fill in the torn upper left corner with matching background. Do not change anything else. Anything that was missing from a face is pure invention, so call the result a reconstruction.

Stage 3: add color from what the family remembers

Color is a second edit on the cleaned version. The model cannot know the real colors; it guesses from the decade, the clothes and the light. If anyone remembers the color of a uniform, a dress or someone's eyes, write it in.

text
Colorize this black and white photograph with natural, muted colors typical
of a 1950s family photo. Keep every face, feature, expression and detail
exactly as it is. Realistic skin tones, no oversaturation, no HDR look.
The woman's dress is dark navy blue, the man has grey eyes.

Swap the last sentence for your own family's details. Left unspecified, eye and hair color are a coin toss, and relatives spot that first.

How I pick between the three models:

  • Nano Banana Pro when the face must not move and I need 2K or 4K for a print.
  • FLUX.1 Kontext for a sequence of small edits (dust, then color, then background). Its output of about 1 MP is too small for a large print.
  • GPT Image 2.5 when the instruction is very specific, such as "color the clothes only, keep the background sepia". I set quality to high.

Where faces go wrong

Any of these models can alter a face. The usual causes:

  • A tiny or blurry face in the scan. If it spans only a few dozen pixels, the eyes, teeth and wrinkles are drawn from scratch. Sharp, but subtly a different person.
  • Prettifying. Softer skin, straighter teeth, larger eyes, younger features. A "do not" list reduces it but cannot guarantee it.
  • Editing an edit. Each pass moves further from the original. Go back to the scan with a better prompt instead of fixing a fix for the fifth time.
  • Lots of movement in video. More motion means more drift between frames.

So I make two or three versions and show them to someone who knew the person. If they say "that's not her", I choose the version with less intervention, even if it is softer.

Stage 4: subtle motion from a start frame

The restored image becomes the first frame of a video model; the method is described in the image to video AI guide. For old portraits, three rules:

  • Very little movement. A blink, a hint of a smile, a slight turn of the head, a slow push-in. Big motion invites the model to redraw features.
  • Four or five seconds. Every extra second is another chance for the face to change.
  • No talking. Mouth movement without a real voice looks wrong, and many families do not want an invented voice for someone they lost.
ModelLengthResolutionPrice
Kling 3.03-15 s720p, 1080p, 4Kfrom $0.0963 per second
MiniMax H34-15 s768P, 2Kfrom $0.161 per second

Studio settings: Video tab, Kling 3.0, the restored image in Start frame (URL) via Upload file, 5 seconds, Generate audio unticked.

text
The woman slowly blinks and gives a gentle, subtle smile, slight natural
head movement, soft breathing, the camera very slowly pushes in.
Keep her face and features unchanged. Calm, still, respectful.

Write only about movement; the model already sees who is in the picture. Kling takes the ratio from the image. MiniMax H3 does not accept a ratio at all when you give it a start frame.

Stage 5: two people in one hug

A request I hear often: an adult hugging their childhood self, or two people from separate photos holding each other. A video model cannot merge two unrelated photos into one believable scene, so this takes two jobs.

First job, a shared still in Nano Banana Pro. Put both restored photos, one person each, into Reference images and ask for the moment just before the embrace:

text
Create one realistic photograph of the two people from the reference images
standing close together, facing each other, about to hug, in a softly lit
neutral room. Person from image 1 on the left, person from image 2 on the right.
Keep both faces, features, hairstyles and clothing exactly as in the references.
Full upper bodies visible, natural proportions, warm soft light.

The moment before works better than the hug itself: both faces are visible, giving the video model something to anchor them to.

Second job, the clip. Use that still as the start frame in Kling 3.0 or MiniMax H3:

text
The two people step towards each other and share a long, gentle hug,
eyes closed, calm and emotional, slight slow camera push-in,
soft natural light, no other movement.

While they hug, faces are hidden for a moment, and when they come back the model may have tweaked them. Two fixes: end the clip during the hug, or render a second still of the same pair already embracing and put it in End frame (URL), so both ends of the motion are pinned.

Stage 6: sharpen the finished clip

Clips from video models at 720p or 768P can go through Topaz Video Upscaler, which raises the resolution and cleans noise, billed per second of the input. In Studio: Tools tab, Topaz Video Upscaler, upload the MP4 (max 50 MB). Details in the AI video upscaler guide.

Upscaling cannot restore facial detail that never existed. It only sharpens what the video model drew.

A realistic budget for one photo

Scenario: one portrait of a grandmother cleaned and colored, a 5-second animation, a hug clip of two people, and both clips upscaled. I plan for retries. Failed jobs are free, but completed ones are billed even if you do not like them.

StageModelQuantityCost
Cleanup, 3 triesNano Banana Pro3 images3 × from $0.07 per image
Color, 2 triesNano Banana Pro2 images2 × from $0.07 per image
Portrait motion, 2 triesKling 3.02 × 5 s10 × from $0.0963 per second
Shared still, 3 triesNano Banana Pro3 images3 × from $0.07 per image
Hug clip, 2 triesMiniMax H32 × 6 s12 × from $0.161 per second
Upscale the keepersTopaz Video Upscaler5 s + 6 s11 × $0.11 per second

"From" prices depend on resolution. Studio shows the exact figure in Cost before you click, and the API returns it as estimated_cost. The balance stays on your account, ready for the rest of the album. You can also model it in the AI cost calculator.

Doing a whole album through the API

A script is easier for dozens of photos. Images go in as public URLs; every field is listed in the generation docs.

Cleanup in Nano Banana Pro:

bash
curl https://kadraris.com/v1/generate \
  -H "Authorization: Bearer $KADRARIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nano-banana-pro",
    "input": {
      "prompt": "Restore this old photograph. Remove scratches, dust, stains, creases and torn edges. Keep the exact same people, faces, facial features, expressions, hairstyles, clothing, pose, framing and background. Do not beautify, do not change age, do not smooth the skin. Keep it black and white with natural film grain.",
      "image_urls": ["https://your-domain.com/album/grandma-scan.jpg"],
      "resolution": "2k"
    }
  }'

Portrait motion in Kling 3.0, with image_url as the first frame:

bash
curl https://kadraris.com/v1/generate \
  -H "Authorization: Bearer $KADRARIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling-3.0",
    "input": {
      "prompt": "The woman slowly blinks and gives a gentle, subtle smile, slight natural head movement, the camera very slowly pushes in. Keep her face and features unchanged.",
      "image_url": "https://your-domain.com/album/grandma-color.png",
      "duration": 5,
      "resolution": "1080p"
    }
  }'

The hug clip in MiniMax H3 with both a start and an end frame. Leave out aspect_ratio: this model refuses it when a start frame is present.

bash
curl https://kadraris.com/v1/generate \
  -H "Authorization: Bearer $KADRARIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "minimax-h3",
    "input": {
      "prompt": "The two people step towards each other and share a long, gentle hug, calm and emotional, slight slow camera push-in, soft natural light. Quiet room tone, no music.",
      "image_url": "https://your-domain.com/album/before-hug.png",
      "end_image_url": "https://your-domain.com/album/hugging.png",
      "duration": 6,
      "resolution": "768P"
    }
  }'

Upscaling with Topaz, where video_url is the finished clip:

bash
curl https://kadraris.com/v1/generate \
  -H "Authorization: Bearer $KADRARIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "topaz-video-upscaler",
    "input": {
      "video_url": "https://your-domain.com/album/hug.mp4"
    }
  }'

Every call answers 202 at once with an id and estimated_cost. Poll GET /v1/tasks/{id} or set up a webhook. A failed task is free.

Six habits that spoil the result

  • Glare from a phone scan, which the model treats as part of the picture and "repairs" in its own way.
  • Cleanup and color in one prompt, which raises the odds of a different face.
  • Leaving out the "do not change" list, which invites prettifying and de-aging.
  • Big motion in the clip: dancing, turning, speaking. With old portraits, less movement stays truer.
  • Edits stacked on edits; after two or three, start again from the scan.
  • Posting before the family has seen it.

Questions

How sharp does the original need to be?

The bigger the face is in the scan, the less the model invents. A face only a few dozen pixels wide will come back sharp but partly imagined. Scan small prints at 1200 dpi to give the model more real pixels.

Should I colorize every photo?

Not necessarily. If nobody remembers the colors, a clean black and white version is more honest. Colorize when you can give the model real details, like the color of a dress or someone's eyes.

What if a filter refuses my photo?

Refusals cost nothing. Try cropping out the person the filter may be reacting to (often a child) or a different model. Some photos still will not go through, and there is no reliable workaround.

Can I print the restored image large?

Use Nano Banana Pro at 4K or GPT Image 2.5 for prints. FLUX.1 Kontext output of about 1 MP is fine for screens but too small for a large frame.