AI real estate photo editing: fixes, prompts, and checks

AI real estate photo editing: send each listing photo to an image-edit model with one named fix and a list of what must not change, then check it.

5 min readSume
All posts

AI real estate photo editing means giving an image-edit model a listing photo and a plain instruction, such as brighten this room, clear the clutter off the counter, or replace the grey sky, and getting back an edited version. A workable pattern is one named fix per request plus a list of what must not change, followed by a check of the result against the real property.

With Sume you send each photo as a reference image to POST /v1/images. The API facts come from the Image API docs, read on 2026-09-29. Furnishing an empty room is its own edit, covered in virtual staging AI.

Which listing photo edits can AI do?

Any change you can describe in words, since the model redraws the photo from your prompt. Common listing fixes, each worded as one change plus what stays:

  • Brighten a dark interior: “Brighten this room as if lit by daylight; keep the walls, windows, floors, and every fixture the same.”
  • Declutter: “Remove the dishes, bottles, and papers from the counter; keep the counter, cabinets, and appliances the same.”
  • Exterior tidy-up: “Remove the trash bins and hose from the driveway; keep the house, driveway, and plants the same.”
  • Sky: “Replace the grey sky with a clear blue sky; keep the house, roofline, and trees the same.” See AI sky replacement.
  • Dusk look: a daytime exterior turned into a twilight shot. See virtual twilight.

How do I edit a listing photo with the API?

Host the photo at a public HTTPS URL and put it in input_references, on a model that takes references: ChatGPT Image 2.5 (openai/gpt-image-2.5) takes up to 16. On edit calls the docs advise aspect_ratio: "auto" to match the reference, and leaving the field out is not the same. Ask for a few versions with n and pick the most faithful one.

curl -X POST "https://api.sume.com/v1/images" \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-image-2.5",
    "prompt": "Remove the dishes, bottles, and papers from the kitchen counter. Keep the counter, cabinets, appliances, walls, windows, and framing exactly the same.",
    "input_references": [
      { "type": "image_url", "image_url": { "url": "https://example.com/listing/kitchen.jpg" } }
    ],
    "aspect_ratio": "auto",
    "n": 2
  }'

Will the edited photo still show the real property?

Not automatically. The model draws a new image, so fixtures, window shapes, flooring, and small details can change even when the prompt says to keep them. Compare every result with the original photo and with the property itself, and keep the unedited file.

Sume's Terms of Service make you responsible for reviewing outputs before publication, and bar using the service for deceptive activity or to mislead people about the authenticity of generated media. Removing clutter is a different act from hiding a defect or adding a feature the home lacks. Your listing platform and local rules may say more about disclosing edited photos; check them, because this post doesn't cover them.

How much does AI photo editing cost, and what are the limits?

Each edit is billed per completed image. Batches of listing photos follow the same per-photo loop as batch photo editing.

From Image API, read 2026-09-29; the agent fee is the default in Sume's pricing code.
RuleWhat the docs say
BillingCompleted generations billed in full; failed or cancelled ones are not billed
Price per modelThe pricing line of GET /v1/images/models/{model_id}/endpoints, margin included, plus a 5.5% agent fee by default
Versions per callUp to 10 with n; per-model ceilings are lower
Photo inputPublic HTTPS URLs only; localhost, private-network, and non-HTTPS URLs are rejected
WaitBlocks up to 30 seconds for a 200, otherwise a 202 job to poll
Result URLsSume-hosted and signed; download the files you keep

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume