AI Cookware Photography API — Color and Finish Variants

Oct 15, 2026·5 min read

A cookware brand is launching one saucepan design in six enamel colors. Only the exterior color and the handle trim change, yet each color needs a clean packshot for the product page and the marketplace listing. The studio shot the first color; the other five samples are still in transit, and the listing deadline comes first. Generating the remaining colors from the one reference photo lets the page carry the full line while the physical samples catch up.

Direct answer: a reference-guided image generation API takes one cookware photo as image input plus a prompt describing the target enamel color, handle material, or surface finish, and returns a new image that keeps the pan silhouette consistent while changing only the requested elements.

How Does an API Generate Color Variants From One Photo?

Reference-guided generation anchors the output to the geometry of the source image, then applies the change in the prompt. Reference-guided generation means the model receives an existing image as input alongside the text prompt, rather than starting from text alone. For cookware, that anchoring keeps the rim curve, spout shape, and handle angle of the real product, where a text-only prompt would invent a generic pot that does not match the SKU.

Describe color in visual terms ("deep teal enamel, glossy finish, brushed steel handle") rather than an internal color code like "Seafoam 04", which the model cannot map to a hue.

Can the Generated Color Be Trusted as Accurate?

No, treat generated colors as a visual placeholder, not a color-matched swatch. Enamel color and gloss can drift in generated output, and shoppers compare colors closely, so a listing that shows a different shade than the shipped item invites returns.

Two practical rules:

  1. Use generated images for the lineup grid, internal review, and pre-launch pages, then swap in real photography once samples exist.
  2. Compare each generated image with the physical sample or approved color reference before it reaches a customer-facing page.

Which Model Fits Cookware Photography?

Nano Banana Pro's reference-guided mode holds the vessel geometry consistent across color and finish changes, which matters when shoppers view colors side by side. GPT-image-2 suits instruction-based touch-ups on an image that is otherwise final, such as a background swap or a fingerprint cleanup.

Model Mode Resolution / price Geometry consistency Best for
Nano Banana Pro Reference-guided 1K $0.030 / 2K $0.030 / 4K $0.042 High Full color-line sets from one base studio photo
Nano Banana 2 Reference-guided 1K $0.020 / 4K $0.036 Medium-high Lower-cost drafts for internal color review
GPT-image-2 Instruction-based edit $0.014/image N/A (edits existing photo) Background swap or cleanup on a near-final shot

Nano Banana Pro at 2K costs the same $0.030 as 1K, so a retail-facing set gains resolution at no extra cost.

How Do I Generate a Color Variant via API?

Submit the base photo as image input with a prompt describing the target color and finish; the endpoint returns a job ID to poll for the finished image.

import requests, time

API_KEY = "YOUR_KEY"
BASE = "https://genrelay.ai/v1"

def generate_variant(reference_url, color, handle):
    r = requests.post(
        f"{BASE}/images/generations",
        headers={"Authorization": f"Bearer {API_KEY}"},
        json={
            "model": "nano-banana-pro",
            "prompt": f"same saucepan shape and proportions, {color} enamel "
                      f"exterior, glossy finish, {handle} handle, matching "
                      f"lid, studio product shot, light neutral background",
            "image": reference_url,
            "resolution": "2k",
        },
    )
    return r.json()["id"]

job_id = generate_variant(
    "https://cdn.example.com/saucepan-sample.jpg",
    "deep teal",
    "brushed steel",
)

Reference-guided generation is asynchronous, so poll the job until it completes:

def wait_for_result(job_id, timeout=90):
    start = time.time()
    while time.time() - start < timeout:
        status = requests.get(
            f"{BASE}/images/generations/{job_id}",
            headers={"Authorization": f"Bearer {API_KEY}"},
        ).json()
        if status["status"] == "completed":
            return status["output_url"]
        if status["status"] == "failed":
            raise RuntimeError(status.get("error"))
        time.sleep(2)
    raise TimeoutError(f"Job {job_id} did not finish in {timeout}s")

image_url = wait_for_result(job_id)

How Do I Batch a Full Color Line?

Loop over the color list and submit each as its own job. The batch image generation guide covers the concurrency and retry pattern this scales to.

colors = [
    ("deep teal", "brushed steel"),
    ("cream white", "matte black"),
    ("charcoal grey", "brushed steel"),
    ("terracotta", "walnut wood"),
]

jobs = [(color, generate_variant(reference_url, color, handle))
        for color, handle in colors]

for color, job in jobs:
    print(f"{color}: {wait_for_result(job)}")

What Does a Full Color Line Cost?

Six colors at 2K on Nano Banana Pro cost 6 × $0.030 = $0.18. A brand showing the same six colors across a saucepan, a skillet, and a stockpot (18 images) pays 18 × $0.030 = $0.54.

Launch size Images Model Cost
One pan, 6 colors 6 Nano Banana Pro, 2K $0.18
Three pieces, 6 colors each 18 Nano Banana Pro, 2K $0.54
Internal color review pass 6 Nano Banana 2, 1K $0.12

Running the internal review on Nano Banana 2 first keeps early color decisions inexpensive, and only the approved set moves to Nano Banana Pro. Once stills are approved, the same photos can feed the cookware showcase video guide for lid-lift and steam clips.

FAQ

Can the API change the color without changing the pan shape?
Yes. Describe the target color and state that the shape and proportions stay the same; the reference image keeps the geometry anchored.

Will the model reproduce my logo and the embossed branding?
Not reliably at small sizes. Request a plain surface and composite the real logo afterward.

Can I use the output for a marketplace listing?
That is a decision for your own brand and marketplace guidelines. Many marketplaces require images to match the shipped item, so verify each color against the real product before publishing.

How long does a generation take?
Jobs are asynchronous. The polling loop above uses a 90-second timeout, which is a conservative ceiling rather than a typical time.


See the Nano Banana Pro model page for parameter docs.

Related posts

Join our DiscordAI Cookware Photography API — Color and Finish Variants — GenRelay