Napkin sketch to product render: one reference on GPT Image 2.5

Turn a photographed napkin sketch into a product render with one input reference on GPT Image 2.5. Set aspect_ratio auto to keep the shape. Code and prices.

5 min readSume
All posts

To turn a napkin sketch into a product render, host a photo of the sketch at a public HTTPS URL, pass it as one input_references entry to GPT Image 2.5, and describe materials, color and lighting in the prompt. Set aspect_ratio to auto so the render keeps the sketch's proportions.

The Sume docs say aspect_ratio: "auto" on an edit call matches the reference. Without it, a wide napkin photo can come back in the default shape, and you lose the layout you drew.

What the sketch carries and what the prompt must add

A pencil sketch fixes shape, layout and proportion. It cannot say matte or glossy, steel or wood, studio light or daylight. Put those in the prompt. Also say which marks are noise, for example "ignore the arrows, notes and the coffee ring", because the model cannot know that a ring on a napkin is not part of the product.

Per the OpenAI guide and the fal pages, GPT Image 2.5 ships as Flare, the fast generator, and Sunburst, the variant tuned for edit precision. On Sume both take up to 16 references, mask_url and background. Draft on Flare, and move to Sunburst when you only need to change details.

Sketch-to-render inputs on Sume (read 2026-10-05)
FieldValueWhy
modelopenai/gpt-image-2.5 or openai/gpt-image-2.5-sunburstBoth accept references, mask_url, background
input_references1 to 16 public HTTPS image URLsThe sketch goes first
aspect_ratioautoMatches the reference on edit calls
qualitylow, medium, high (default), xhigh, maxDraft low, finish high
n1One concept per call keeps cost clear

Request

Reference URLs must be public HTTPS, and Sume answers 400 input_media_unreachable when it cannot download one. A file on your laptop needs a public upload first, for example through the assets upload flow.

import os, requests
H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}

def generate(body):
    r = requests.post("https://api.sume.com/v1/images", headers=H, json=body, timeout=60)
    if r.status_code != 200:  # 202 = still running, read data.status_url
        raise SystemExit(f"{r.status_code}: {r.text[:300]}")
    return r.json()["data"][0]["url"]
from io import BytesIO
from PIL import Image

url = generate({
    "model": "openai/gpt-image-2.5",
    "prompt": "Turn this pencil sketch into a clean studio product render of a matte steel water bottle with a wooden cap on a soft grey backdrop. Ignore the arrows and notes.",
    "input_references": [{"type": "image_url", "image_url": {"url": "https://example.com/napkin-sketch.jpg"}}],
    "aspect_ratio": "auto",
    "quality": "medium",
})
Image.open(BytesIO(requests.get(url, timeout=60).content)).save("render.png")
print("saved render.png")

Cost of a concept round

GPT Image 2.5 is billed on tokens. The fal pages list $30 per million output image tokens, $8 per million image input tokens and $5 per million text input tokens. Sume bills the provider list price times 1.25. The table is output-only, so reference and prompt tokens add a little on top of it.

Output-only price at 1024x1024 by quality (read 2026-10-05)
QualityProvider listSume at list x 1.25
low$0.0059$0.0073
medium$0.0132$0.0165
high$0.0527$0.0658

A short loop that works

Keep the sketch as the first reference on every call so the layout does not drift.

  • Round one: low quality, three prompt variants on the same sketch.
  • Round two: pick one, move to high, and add the detail you found missing.
  • Round three: to move one part only, send a mask with mask_url instead of re-rolling the whole picture.

If the call returns 202

POST /v1/images waits up to 30 seconds and returns 200 with the images. A slow job falls back to a 202 job envelope, and you read the images from GET /v1/jobs/{id}/result. The code above exits on any non-200 so you notice, and a failed synchronous job returns 502 and is not billed.

Photo tips for the sketch

Shoot the napkin flat and in even light, with the lines dark against the paper. Crop away the table so the reference holds only the drawing. A blurred, tilted photo gives the model a blurred, tilted product.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume