Keep the same face in a GPT Image 2.5 edit: the prompt block to use

To keep a person recognisable in a GPT Image 2.5 edit, send the photo as a reference and spell out what must not change. The exact wording and a Sume call.

5 min readSume
All posts

To keep a face the same while editing a photo with GPT Image 2.5, send the photo as an input_references image and write the change and the constraints as two separate statements, ending with a sentence such as "Do not change her face, facial features, skin tone, body shape, pose, or identity in any way." That wording comes from OpenAI's prompting guide; Sume has no face-lock parameter, so the prompt is the only control you have.

This post uses OpenAI's Image prompting guide and fal's GPT Image 2.5 guide, both read on 2026-10-02, with Sume's Image API page for the request shape.

What did OpenAI and fal say changed in 2.5?

OpenAI's launch material, as summarised by fal, says GPT Image 2.5 is better at preserving the subjects in reference photos. fal's guide says subjects in reference photos stay recognisable as they move between styles. Neither page promises identical faces, and both say repeated edits can still change details you meant to keep.

So the fix is not a bigger model setting. It is a prompt that separates the change from the constraints, and an inspection step that you do yourself.

What is the prompt pattern?

OpenAI's guide says to identify what should change and what must stay the same. Put the change in one sentence, then the constraints in another. Use the same constraint sentence in every round of edits.

Change and constraint sentences (wording from OpenAI's guide, read 2026-10-02)
PartExample
ChangePut her in a navy blazer.
ConstraintDo not change her face, facial features, skin tone, body shape, pose, or identity in any way.
Reference roleImage 1 is the photo to edit.
CheckCompare the result to the source at full size.

How do I send it on Sume?

Use openai/gpt-image-2.5 or openai/gpt-image-2.5-sunburst, a public HTTPS photo URL, and aspect_ratio: "auto" so the output follows the photo's shape. Sume's docs say that on edit calls omitting the field is not the same as auto. The function below keeps the constraint sentence in one place so every round reuses it.

import os, requests

KEEP = ("Do not change her face, facial features, skin tone, "
        "body shape, pose, or identity in any way.")

def edit(photo_url: str, change: str) -> str:
    r = requests.post(
        "https://api.sume.com/v1/images",
        headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
        json={
            "model": "openai/gpt-image-2.5",
            "prompt": f"Image 1 is the photo to edit. {change} {KEEP}",
            "aspect_ratio": "auto",
            "input_references": [
                {"type": "image_url", "image_url": {"url": photo_url}}
            ],
        },
        timeout=60,
    )
    r.raise_for_status()
    if r.status_code == 202:
        raise RuntimeError("queued as a job; poll it for the image")
    return r.json()["data"][0]["url"]

print(edit("https://example.com/portrait.jpg", "Put her in a navy blazer."))

What should I check, and what does Sume not do?

Compare the result with the source at full size: eyes, hairline, teeth, any jewellery or glasses. If a feature moved, shorten the change sentence and run it again; a failed generation is not billed, but a completed one with the wrong face is.

If a request takes longer than the 30-second blocking budget, Sume returns a 202 job envelope instead of the image body, so check the status code, as the Image API page describes. Sume does not verify identity or compare faces for you. Only edit photos of people who agreed to it, and read the platform rules where the image will run.

  • Send the photo as a reference, not only a text description.
  • Keep the change and the constraint in separate sentences.
  • Reuse the identical constraint sentence on every pass.
  • Inspect the result yourself.

Does the model choice matter?

Both ids take the same references and constraints. Flare is the default for most work and Sunburst spends longer to hold intricate detail, according to fal's guide, and Sume's docs list the same rates for both. A reasonable order is to settle the wording on Flare and render the final on Sunburst, then compare the two faces against the source.

Keep the source photo sharp and front-facing where you can. A small, blurry or heavily cropped face leaves the model less to preserve, and no prompt sentence replaces that.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume