AI pet portrait in a costume: keep the markings with a reference

Put your dog or cat in a regal costume portrait: one pet photo as an input reference, a keep-the-markings prompt, and a retry plan for the coat pattern.

5 min readSume
All posts

For an AI pet portrait in a costume, send one clear photo of the pet as an input reference to openai/gpt-image-2.5, name the coat markings in the prompt as things to keep, and describe the costume and the painting style separately. Pets are easy to get roughly right and hard to get exactly right, so plan for four takes and one retry.

The photo must be a public HTTPS URL; Sume rejects localhost, private-network and non-HTTPS reference URLs before the job is submitted.

Write the keep list first

The failure you will see most is a plausible animal that is not yours: the white blaze moves, an ear changes colour. Counter it by writing the markings as a list in the prompt (white chest patch, one dark ear, amber eyes) and by sending a second reference photo from a different angle. gpt-image-2.5 takes up to 16 references, so a front and a side photo cost you nothing in the request shape.

{
  "model": "openai/gpt-image-2.5",
  "prompt": "Oil-painting portrait of the dog in the references wearing a velvet admiral coat with gold buttons. Keep the white chest patch, the dark left ear and the amber eyes exactly as in the references. Warm studio lighting, plain dark background.",
  "input_references": [
    {"type": "image_url", "image_url": {"url": "https://example.com/dog-front.jpg"}},
    {"type": "image_url", "image_url": {"url": "https://example.com/dog-side.jpg"}}
  ],
  "aspect_ratio": "auto",
  "n": 4
}

Request checklist

Pet portrait request checklist from the Sume Image API docs (read 2026-10-04)
CheckRule from the docs
Reference URLsPublic HTTPS only
Reference countUp to 16 on openai/gpt-image-2.5
Edit shapePrefer aspect_ratio auto to match the reference
Takes per callRead the n range descriptor; 10 is the ceiling
Failed generationNot billed; failed requests return 502

When a take is close but wrong

Do not run the same request again and hope. Pick the closest take, host it, and use it as the first reference with a one-line correction ("restore the white chest patch"). Repeat the keep list on every pass, because each edit pass can drift from the original.

If a request returns 400, Sume's errors page says to fix the input rather than retry; a 429 or queue_full means wait and retry with the same idempotency key.

Check before you print

Lay the original photo and the portrait side by side and compare the markings: the patches, the ear shape and the eye colour. Regenerate with a tighter prompt if one moved; a failed generation is not billed, but a completed one is.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume