AI Wallet Photography API — Leather, Stitch and Hardware Variants
A leather goods brand has one finished studio photo of its new bifold wallet — black full-grain leather, tan contrast stitching, card slots just visible at the fold — and the autumn launch needs the same wallet in chestnut, olive, and oxblood, plus a version with brass snap hardware. Photographing every leather and thread combination means cutting and stitching a sample per colorway, and a limited oxblood run often isn't produced until pre-orders justify it. Generating the variants from the one wallet already photographed shows "what does the olive bifold with cream stitching look like" before any extra hide is cut.
Direct answer: a reference-guided image generation API takes the existing studio wallet photo as input plus a prompt describing the new leather color, stitch thread, or hardware finish, and returns a new image that holds the wallet's silhouette, fold line, and card-slot layout fixed while changing only the described detail — no reshoot per colorway.
How Does an API Generate Wallet Variants From One Photo?
Reference-guided generation anchors the output to the wallet's fixed geometry — outline, fold position, slot spacing, stitch path — then renders the described leather color, thread, or hardware change around that shape. Plain text-to-image generation has no source wallet to match and produces a plausible-looking wallet rather than the exact model going on sale, a real risk when the product page photo must match what the customer receives.
As of October 2026, GenRelay exposes three image models through one endpoint for this workflow:
| Model | Best for | 1K price | 4K price | Editing support |
|---|---|---|---|---|
| Nano Banana Pro | Reference-guided leather, thread, and hardware swaps | $0.030 | $0.042 | Yes, strong consistency |
| Nano Banana 2 | Faster batch variants, slightly lower consistency | $0.020 | $0.036 | Yes |
| GPT-image-2 | Instruction-based edits (recolor the stitching, swap a snap) | $0.014/image | $0.014/image | Yes, instruction-driven |
Nano Banana Pro holds a wallet's outline and stitch path most reliably across a full leather change, which matters when grain texture and edge paint must read as the same wallet in a new color. GPT-image-2 suits small, targeted edits — recoloring the thread or swapping a snap finish — better than a full colorway restyle.
How Do I Call the API to Generate a Leather Color Variant?
Authenticate with a bearer token and send the source photo plus a prompt describing the change. Here's a minimal request using Nano Banana Pro:
import requests
API_KEY = "YOUR_KEY"
BASE = "https://genrelay.ai/v1"
with open("bifold_studio.jpg", "rb") as f:
r = requests.post(
f"{BASE}/images/generations",
headers={"Authorization": f"Bearer {API_KEY}"},
files={"reference_image": f},
data={
"model": "nano-banana-pro",
"prompt": (
"Same bifold wallet, same fold line and card slots, "
"leather recolored to deep chestnut with visible grain, "
"stitching changed to cream thread, "
"studio lighting unchanged."
),
"resolution": "2k",
},
)
image_url = r.json()["data"][0]["url"]
For a full colorway lineup, batch the same reference image against a list of prompts instead of calling the endpoint one at a time:
import concurrent.futures
variants = [
"leather recolored to chestnut, tan stitching unchanged",
"leather recolored to olive green, cream stitching",
"leather recolored to oxblood, black stitching, brass snap closure",
]
def generate(prompt):
with open("bifold_studio.jpg", "rb") as f:
r = requests.post(
f"{BASE}/images/generations",
headers={"Authorization": f"Bearer {API_KEY}"},
files={"reference_image": f},
data={"model": "nano-banana-pro", "prompt": prompt, "resolution": "2k"},
)
return r.json()["data"][0]["url"]
with concurrent.futures.ThreadPoolExecutor(max_workers=3) as pool:
results = list(pool.map(generate, variants))
Both calls are synchronous: image generation returns a URL in the response, with no polling loop, unlike video jobs.
What Does a Full Colorway Launch Cost?
Cost scales with resolution and image count, not with how different each variant looks from the original. A launch of 3 colorways from one wallet photo — 3 images — at Nano Banana Pro's 2K price of $0.030 per image costs $0.09. The same 3 images at 4K for a print catalog cost $0.126 at $0.042 each. A brand generating one new colorway across 10 wallet styles — 10 images — pays $0.30 at 2K.
| Scope | Images | Model/resolution | Total cost |
|---|---|---|---|
| One wallet, 3 colorways | 3 | Nano Banana Pro, 2K | $0.09 |
| Same set, print catalog | 3 | Nano Banana Pro, 4K | $0.126 |
| 10 styles × 1 seasonal colorway | 10 | Nano Banana Pro, 2K | $0.30 |
| 10 styles, instruction-only stitch recolor | 10 | GPT-image-2 | $0.14 |
At these prices, generating a whole seasonal colorway lineup costs less than one sample wallet's materials, so most brands generate the variants first and cut real leather only for the colorways that pre-sell.
How Do I Keep the Wallet Recognizable Across Variants?
Keep every prompt change scoped to leather color, thread, or hardware finish, never the outline, fold line, or slot layout, since those are the elements reference-guided generation is designed to hold fixed. If a variant drifts (the fold shifts, the card slots change count), the prompt is usually too aggressive about "reimagining" the product; rephrase toward "same wallet, same fold and card slots, change only the leather color and stitching."
FAQ
Does the API support video as well as photos for wallet showcases?
Yes. GenRelay's video models (Veo 3.1 Lite, Grok Imagine) can turn a still wallet photo into a short unfolding or card-slide clip. See the wallet video API guide for pricing and code.
Can I edit one detail instead of restyling the whole wallet?
Yes. GPT-image-2 handles instruction-based edits like "recolor the stitching to cream" or "swap the snap to brass" at $0.014 per image, lower than a full Nano Banana Pro restyle when the change is small.
Do I need to disclose that variant images are AI-generated?
Disclose AI-generated marketing images per your local advertising rules. This is a legal requirement rather than a technical one, and the images should match the real product's shape closely enough for marketing use.
What image formats does the API accept as a reference?
JPEG and PNG. Output size is controlled by the resolution parameter, not by the input file size; check the docs for the current upload size limit.
Is there a rate limit on generation calls?
Yes, scoped per API key. Check response headers for your current limit, and use a small thread pool (3–5 workers) for batch jobs rather than firing every request at once.
Explore the Nano Banana Pro model page for full parameter docs, or read the visual consistency guide for more on reference-guided generation across a product line.