Remove shadow from photo with AI: edit it or cut it out

To remove a shadow from a photo with AI, send the photo to an image-edit model, name the one shadow to remove, and list what stays. Prompts, cost, limits.

4 min readSume
All posts

Yes, AI can remove a shadow from a photo: send the photo to an image-edit model as a reference, name the one shadow you want gone, such as the hard shadow to the left of the bottle, and say everything else stays. If the goal is a product on white or on a new backdrop, a background-removal cutout is the other route, because a shadow that lies on the background can be lost with it.

Below is how to do both with Sume's Image API and the RMBG 1.0 schema in the Sume API reference, served by the API reference docs, all read on 2026-09-29. The opposite job, putting a shadow back under a cut-out product, is in how to add a shadow to a product photo.

How do I remove a shadow from a photo with AI?

Host the photo at a public HTTPS URL and send it in input_references to POST /v1/images, on a model that takes references. ChatGPT Image 2.5 (openai/gpt-image-2.5) takes up to 16. Send aspect_ratio: "auto" so the result keeps the photo's shape; on edit calls, leaving the field out is not the same. Ask for two versions with n and keep the better 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 only the hard dark shadow to the left of the bottle. Continue the tabletop and its even lighting where the shadow was. Keep the bottle, its label, the soft contact shadow under it, and the framing exactly the same.",
    "input_references": [
      { "type": "image_url", "image_url": { "url": "https://example.com/photos/bottle.jpg" } }
    ],
    "aspect_ratio": "auto",
    "n": 2
  }'

What should a shadow removal prompt say?

Name one shadow and say what fills its place. AI photo editing prompts covers the change-one-thing pattern; for shadows:

  • Which shadow: where it falls and what casts it, such as “the shadow of my phone across the top of the page” or “the harsh shadow under the eyes of the statue”.
  • What replaces it: the surface continuing, the paper staying white, the light evening out across the area.
  • What stays: the subject, logos, labels, printed text, and any shadow you want to keep. A small contact shadow is what makes a product look like it stands on something.
  • For documents and receipts, ask for the text to stay unchanged, then read it against the original: an edit redraws the page, and letters can change.

Can I remove the shadow by cutting the product out?

Yes, when the product is going onto white or a new background anyway. Sume RMBG 1.0 (POST /v1/rmbg-1.0/remove) takes one public HTTPS image_url and returns a PNG with alpha: the subject kept, the rest transparent. A shadow cast on the backdrop is not part of the product, so the cutout can lose it; the reference doesn't describe how shadows are treated, so check each file. It is listed at $0.0225 per image, plus a 5.5% agent fee by default, and the price does not vary by image size.

A product with no shadow at all on white can look pasted on. If it does, add a soft contact shadow back, as in the add-shadow post linked above, or skip the cutout and edit the original instead.

Will the rest of the photo stay the same?

Not pixel for pixel. An image-edit model returns a redrawn version of the whole photo, and Sume's terms say generated outputs may be inaccurate or unsuitable for a particular use, so compare each result with the original and keep the original file. ChatGPT Image 2.5 accepts an optional mask_url on edits, but the docs don't describe what the mask should contain, so name the shadow in the prompt instead.

How much does it cost to remove a shadow with AI?

A prompt edit is billed per completed image at the model's endpoint price, and a failed one is not billed. For a folder of photos, run one request per photo, as in batch photo editing.

From Image API, read 2026-09-29.
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; cost_usd × n is what you pay
Photo inputPublic HTTPS URLs only; localhost, private-network, and non-HTTPS URLs are rejected
Text-only modelsAn input_references descriptor of {"min": 0, "max": 0} means the model rejects references
Versions per callUp to 10 with n; per-model ceilings are lower
Result URLsSume-hosted and signed; download the files you keep

Sources

Related posts

More in Models

All Models posts

Written by Sume