AI wall art above the sofa: preview a print in your living room
Preview a framed print on the wall above your sofa: your room photo first, the artwork second, one Sume image edit call, and a prompt that fixes frame size.

A room photo and the artwork file
Before buying a large print, you want to know whether it works above the sofa. Take a straight-on photo of the wall, keep the artwork file you are considering, and let one edit call hang it.
Send the room photo first and the artwork second in input_references, then describe the frame in words. For a mask over the empty wall area, mask_url is available on ChatGPT Image 2.5 only.
Sume Image API docs list ChatGPT Image 2.5 as openai/gpt-image-2.5 (Flare) and openai/gpt-image-2.5-sunburst. OpenAI's guide says to choose Sunburst where editing precision matters most and Flare for fast everyday generation, so these edits use Sunburst.
Give the frame a size and a position
Say how wide the frame is compared with the sofa, such as about two thirds of the sofa width, and where it hangs, such as centered, 20 cm above the backrest. Ask for a thin oak frame with a white mat, and say that furniture, rug and lighting must not change.
import os
import requests
REFS = [
"https://example.com/living-room.jpg",
"https://example.com/print.jpg",
]
resp = requests.post(
"https://api.sume.com/v1/images",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
json={
"model": "openai/gpt-image-2.5-sunburst",
"prompt": "Image 1 is a living room photo, image 2 is a framed art "
"print. Hang image 2 centered above the sofa, about two "
"thirds of the sofa width, in a thin oak frame. Keep "
"furniture, rug and lighting unchanged.",
"aspect_ratio": "auto",
"input_references": [
{"type": "image_url", "image_url": {"url": u}} for u in REFS
],
},
timeout=60,
)
print(resp.status_code)
print(resp.json())Decide the size with a table, not a guess
Ask for two or three sizes in separate calls and pick by eye. Keep everything but the size sentence the same.
| Option | Width vs sofa | Frame |
|---|---|---|
| Small | About half | Thin black |
| Medium | About two thirds | Thin oak, white mat |
| Large | About full width | None, canvas edge |
Measure the real wall afterwards
The render is not to scale. Measure the real wall and sofa, then convert your favorite option to centimeters before ordering. Also check the render did not redraw the artwork itself: compare it with the file at full size.
Inputs Sume checks before it spends anything
Reference and mask URLs must be public HTTPS; localhost, private-network and non-HTTPS URLs are rejected. Sume also checks every field against the model's catalog entry, so a field the model does not list returns 400 unsupported_parameter instead of being dropped without a word.
If you are unsure which fields a model accepts, GET /v1/images/models lists them, and GET /v1/images/models/{id}/endpoints returns the per-endpoint capabilities and pricing.
Cost, retries and slow calls
Each edit is one billed image when it completes, and nothing when it fails. Sume's docs say the amount in usage.cost is what the wallet is charged, with the 1.25 multiplier on provider list price already applied. That makes a retry cheap to reason about: a failed attempt costs zero.
Slow settings, such as 4K output, high quality or a large n, can push a call past the 30-second wait. Then the response is 202 with a job envelope rather than the image, and you fetch the result from the job endpoints.
Sources
Related posts
More in Use cases
- AI wedding invitation image: quote names and date so they render
Make an invitation card picture with an image API: quote every line, pick a portrait ratio, check the spelling, and add real print text in layout.
- AI whiteboard photo to a clean diagram: an image edit, step by step
Photograph the whiteboard, send it as a reference, and ask for a clean redraw. What an image model can and cannot keep, and how to check every label.
- AI wireframe to UI mockup: turn a hand sketch into a screen
Send a photo of your wireframe as a reference to GPT Image 2.5 on Sume, quote every label, and get a styled UI mockup back. Request, ratios and limits.
- AI workout music for fitness videos: tempo and intervals in a prompt
Make AI workout music by writing tempo as a number and the interval plan as timestamps. Sume has no BPM field, so here is how to prompt, check and trim a track.
Written by Sume