Ceramic mug product photos: Nano Banana Pro hero, draft on Banana 2

Draft a ceramic mug scene on Nano Banana 2 at $0.10, then render the hero on Nano Banana Pro at $0.1875 in 4:5; six mugs cost $1.725 in total.

5 min readSume
All posts

For ceramic mug product photos, draft the scene on google/nano-banana-2 at $0.10 billed per image, then render the one you keep on google/nano-banana-pro at $0.1875 billed, both in 4:5. Sume lists Nano Banana 2 at $0.08 and Nano Banana Pro at $0.15, each times 1.25, so six mugs with one draft and one hero each cost $1.725.

Handmade ceramics sell on glaze and shape, and a hero shot that changes the glaze loses the sale. The prices and limits below are from Sume's Image API page and the catalog source, read on 2026-10-05, and the plan assumes you pass a real photo of the mug as a reference so the glaze stays yours.

What does the draft-then-hero plan cost?

Both models use the same ratio list, including 4:5, and both accept reference images. Nano Banana Pro's catalog notes that its 4K list rate is higher than the default, so the figures below are the 1K default.

Six-mug plan on the two Nano Banana rows (read 2026-10-05)
StepModelBilled per imageSix mugs
Draft scenegoogle/nano-banana-2$0.10$0.60
Hero rendergoogle/nano-banana-pro$0.1875$1.125
Both steps-$0.2875$1.725
Hero only, no draftgoogle/nano-banana-pro$0.1875$1.125

How do I render the hero with the real mug as a reference?

Pass the mug photo as input_references, keep the same aspect_ratio: "4:5", and describe the table and light only. The 1K tier is the default; set resolution only when you want another tier and have checked the price.

import os, requests

body = {
    "model": "google/nano-banana-pro",
    "prompt": "Keep the mug, glaze and handle exactly as they are. Place it on a linen cloth beside a window with soft morning light.",
    "aspect_ratio": "4:5",
    "resolution": "1K",
    "input_references": [
        {
            "type": "image_url",
            "image_url": {
                "url": "https://example.com/speckled-mug.jpg"
            }
        }
    ]
}
r = requests.post(
    "https://api.sume.com/v1/images",
    headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
    json=body,
    timeout=60,
)
if r.status_code == 200:
    out = r.json()
    for img in out["data"]:
        print(img["url"])
    print("billed USD:", out["usage"]["cost"])
elif r.status_code == 202:
    print("still running, poll:", r.json()["data"]["status_url"])
else:
    print(r.status_code, r.text)

Where do the checks go?

The model can alter glaze color and handle shape, so compare each result with the product beside it.

  • Reject any take where the glaze, rim or handle differs from the real mug.
  • Skip the draft step when a mug is simple; a hero-only run is $1.125 for six.
  • Send each URL to your listing tool right away and keep the job id with it.
  • If a hero call returns 202, poll status_url rather than resubmitting a paid call.

Sources

Related posts

More in Models

All Models posts

Written by Sume