AI Headphone Photography API — Color and Finish Variants

Oct 17, 2026·5 min read

An audio brand is launching one pair of over-ear headphones in six shell colors, each offered with either leatherette or fabric ear cushions. That is twelve combinations, and the studio has shot exactly one: the matte black pair with leatherette cushions. The product page, the retailer feed, and the pre-launch email all need the full lineup before the remaining production samples arrive. Generating the other combinations from the one reference photo lets the page go live on schedule while physical samples catch up.

Direct answer: a reference-guided image generation API takes one headphone photo as image input plus a prompt describing the target shell color, cushion material, or surface finish, and returns a new image that keeps the headband and cup silhouette consistent while changing 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 described 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 headphones, that anchoring preserves the headband curve, hinge placement, and cup proportions of the real product, where a text-only prompt would invent a generic pair that does not match the SKU.

Describe color in visual terms ("deep forest green, matte soft-touch finish, charcoal fabric cushions") rather than an internal code like "Colorway 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. Soft-touch texture, gloss level, and exact hue can drift in generated output, and shoppers compare shades closely, so a listing that differs from the shipped item invites returns.

Two practical rules:

  1. Use generated images for the lineup grid, internal review, and pre-order 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 Headphone Photography?

Nano Banana Pro's reference-guided mode holds the headphone geometry consistent across color and cushion 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 removing a stray reflection on the cup.

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 cushion; 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, cushion):
    r = requests.post(
        f"{BASE}/images/generations",
        headers={"Authorization": f"Bearer {API_KEY}"},
        json={
            "model": "nano-banana-pro",
            "prompt": f"same over-ear headphone shape and proportions, {color} "
                      f"shell, matte soft-touch finish, {cushion} ear cushions, "
                      f"studio product shot, light neutral background",
            "image": reference_url,
            "resolution": "2k",
        },
    )
    return r.json()["id"]

job_id = generate_variant(
    "https://cdn.example.com/headphones-sample.jpg",
    "deep forest green",
    "charcoal fabric",
)

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 Range?

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

combos = [
    ("matte black", "leatherette"),
    ("deep forest green", "charcoal fabric"),
    ("sand", "leatherette"),
    ("slate blue", "fabric"),
]

jobs = [(c, m, generate_variant(reference_url, c, m)) for c, m in combos]

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

What Does a Full Color Range Cost?

Twelve combinations (6 colors × 2 cushion materials) at 2K on Nano Banana Pro cost 12 × $0.030 = $0.36. A brand adding a matching earbud case angle for each combination (24 images) pays 24 × $0.030 = $0.72.

Launch size Images Model Cost
6 colors × 2 cushions 12 Nano Banana Pro, 2K $0.36
Plus earbud case angle 24 Nano Banana Pro, 2K $0.72
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 approved colors then move to Nano Banana Pro. Once stills are approved, the same photos can feed the headphone showcase video guide for cup-swivel and rotation clips.

FAQ

Can the API change the color without changing the headphone 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 printed graphics?
Not reliably at small sizes. Request a plain surface and composite the real logo afterward.

Can I use the output for a retailer listing?
That is a decision for your own brand and retailer guidelines. Many retailers 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.

Can I generate matching clips from the same photos?
Yes. The headphone video guide shows how to animate each color variant into a short rotation clip.


See the Nano Banana Pro model page for parameter docs.

Related posts

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