
Which image model can keep the same person? Three models, one identical test
"Put the same person in a different scene." Almost every practical use of image generation runs into this. The first image works; the second one comes back as someone else. We ran three major models under one condition — a single reference photo — and recorded which of them holds a person's features.
Measured on 2026-08-28 through OpenRouter. The figures below are not copied from vendor catalogues; they are what we recorded while running the models.
Result: only GPT Image 2 held the person from a single reference
| Model | Latency | Cost per image | Identity retention | Output |
|---|---|---|---|---|
| GPT Image 2 (OpenAI) | ~24s | ~$0.019 | Held | PNG |
| Nano Banana 2 (Google) | ~11s | $0.068 | Held conditionally | JPEG |
| Seedream 5.0 Lite (ByteDance Seed) | ~41s | $0.035 (flat) | Did not hold | JPEG |
From a single reference, GPT Image 2 preserved even mole placement across changes of angle, expression, and outfit. Three runs took 22.1s, 25.0s, and 25.7s, costing $0.0174–$0.0229. It was the only one of the three that stood up to naming a specific person.
Seedream 5.0 Lite produced a different person even with a reference attached. It transfers style and mood well, so it suits subjects without a specific individual — but it is not an option when identity matters.

Wouldn't attaching more references make it look closer?

More references average the features out. One clear shot of the face was steadier.
What speed costs you
Nano Banana 2 returns in about 11 seconds, less than half of GPT Image 2. On work that involves repeated iteration, that gap becomes working time.
But it emits exactly one image per run. GPT Image 2 emits one to ten, so you can generate five and pick the best. Matched on attempts rather than runs, the wall-clock gap narrows considerably.
| GPT Image 2 | Nano Banana 2 | Seedream 5.0 Lite | |
|---|---|---|---|
| Images per run | 1–10 | 1 only | 1–4 |
| Reference images | up to 16 | up to 14 | up to 14 |
| Resolution control | Not supported | 512 / 1K / 2K / 4K | 2K / 4K |
| Aspect ratios | 9 | 10 | 18 |
| Quality control | auto / low / medium / high | Not supported | Not supported |
For camera angles, use Nano Banana 2
Asking for 30° or 60° actually produced those angles on Nano Banana 2. GPT Image 2 follows angle instructions weakly and drifts back toward a frontal view.
The reverse is also true: multi-panel layouts and embedded text break down on Nano Banana 2, while GPT Image 2 follows them cleanly. The strengths are inverted, so pick per task.
What actually worked
- Pick one reference with the face clearly visible and low contrast between light and shadow
- One good reference beat several mediocre ones
- Describe only what changes — outfit, place, time of day — and never describe the face
- Describing the face lets the text override the reference, and the result drifts to a stranger
- Where the model allows it, generate several images per run and choose
The third and fourth points mattered most. Every added facial descriptor pulled the output away from the reference. If you are attaching a reference, say nothing about the face.

Delete the facial description. If you attached a reference, say nothing about the face.
Which to choose
- Same person, new scene → GPT Image 2
- Specific camera angles, heavy iteration → Nano Banana 2
- Subjects without a person, fixed per-image cost → Seedream 5.0 Lite
Frequently asked
- How many reference images should I attach?
- In our tests one good reference with a clearly visible face beat attaching several. The caps are 16 for GPT Image 2 and 14 for both Nano Banana 2 and Seedream 5.0 Lite.
- Do I need to train a LoRA to keep the same person?
- Not for identity alone — one model held a person's features from a single reference. Our reasoning is in "Read this before you train a LoRA".
- Why do I get a different person?
- Some models accept a reference but use it only for composition and mood. Seedream 5.0 Lite returned a different person every time. That is a property of the model, so prompting does not fix it.


