AI Pet Product Photography API — Colorway and Material Variants
A pet accessories brand shipping a leash in eight colorways has one studio photo of the sample unit from its manufacturer, and the storefront listing needs a clean product shot for every colorway before the launch date — but the factory only sends physical samples in two or three colors ahead of a run, with the rest arriving closer to shipment. Generating the remaining colorways from the one reference photo means the listing can go live with a full color grid before the last samples clear customs.
Direct answer: a reference-guided image generation API takes one pet product photo as image input plus a prompt describing the target color or material change, and outputs a new image that holds the item's shape, hardware, and stitching consistent while altering only the requested attribute — no second sample shipment required.
How Does an API Generate Pet Product Variants From One Photo?
Reference-guided generation anchors the output to the shape, hardware (buckles, D-rings, zippers), and stitching pattern of the source image, then applies the color or material change described in the prompt. This differs from text-to-image generation, which has no source object to match and would produce a plausible-looking leash or bed rather than the exact SKU shipping to a warehouse — a real risk when a slightly different buckle style or stitch pattern reads as a different product to a returning customer comparing colorways side by side.
Nylon webbing, leather, and plush fabric each catch light differently under a color swap, so naming the material in the prompt matters: "matte nylon webbing" holds a flatter highlight than "full-grain leather," and leaving the material unstated lets the model default to whichever finish the reference photo already shows — wrong for a leather-look variant generated from a nylon reference or the reverse.
Which Model Fits Pet Product Photography?
Nano Banana Pro's reference-guided mode holds hardware placement, stitch lines, and proportions consistent across colorway changes, which matters for pet gear because a shifted buckle or resized handle reads as a manufacturing defect rather than a rendering artifact on a category where safety hardware gets scrutinized. GPT-image-2 fits smaller instruction-based touch-ups — background swap, packaging crop, or a shadow cleanup — on a photo that's otherwise already final.
| Model | Mode | Resolution / price | Shape consistency | Best for |
|---|---|---|---|---|
| Nano Banana Pro | Reference-guided | 1K $0.030 / 2K $0.030 / 4K $0.042 | High | Full colorway sets from one base studio photo |
| Nano Banana 2 | Reference-guided | 1K $0.020 / 4K $0.036 | Medium-high | Lower-cost variant runs for internal buyer review |
| GPT-image-2 | Instruction-based edit | $0.014/image | N/A (edits existing photo) | Packaging crop or background swap on a near-final shot |
For a retail-facing colorway launch, Nano Banana Pro's consistency at 2K resolution is worth the small premium over Nano Banana 2 — a warped buckle or mismatched stitch pattern reads as a defect to a shopper comparing colorways on a product page, not a rendering quirk.
How Do I Generate a Pet Product Colorway Variant via API?
Submit the base product photo as image input with a prompt describing the target color and material 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, material):
r = requests.post(
f"{BASE}/images/generations",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"model": "nano-banana-pro",
"prompt": f"same shape, hardware, and stitching, "
f"{color} {material}, studio product shot, "
f"45-degree angle, white background",
"image": reference_url,
"resolution": "2k",
},
)
return r.json()["id"]
job_id = generate_variant(
"https://cdn.example.com/leash-sample.jpg",
"burgundy",
"matte nylon webbing",
)
Poll the job until it completes, since reference-guided generation is asynchronous:
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 Product Line Launch?
Loop over the colorway list and submit each as its own job, holding concurrency low enough to stay under the account's rate limit — see the batch image generation guide for the concurrency and retry pattern this scales to.
colorways = [
("burgundy", "matte nylon webbing"),
("forest green", "matte nylon webbing"),
("charcoal", "matte nylon webbing"),
("sand", "matte nylon webbing"),
]
jobs = []
for color, material in colorways:
job_id = generate_variant(reference_url, color, material)
jobs.append((color, job_id))
results = [(color, wait_for_result(j)) for color, j in jobs]
for color, url in results:
print(f"{color}: {url}")
What Does a Full Launch Cost?
Eight colorways at 2K resolution on Nano Banana Pro cost 8 × $0.030 = $0.24. A wider line spanning three product types (leash, collar, harness) in eight colorways each costs 24 × $0.030 = $0.72.
| Launch size | Images | Model | Cost |
|---|---|---|---|
| Single product, 8 colorways | 8 | Nano Banana Pro, 2K | $0.24 |
| Three products, 8 colorways each | 24 | Nano Banana Pro, 2K | $0.72 |
| Internal buyer review pass | 24 | Nano Banana 2, 1K | $0.48 |
Running an internal buyer review pass on Nano Banana 2 before committing the final set to Nano Banana Pro keeps early-stage colorway decisions cheap without touching the launch-quality model until the line is finalized.
Internal Links
- Nano Banana Pro on GenRelay
- AI video generation API for pet brands
- E-commerce product image generation API
FAQ
Can the API change a product's material (nylon to leather) as well as its color?
Yes — describe the target material explicitly in the prompt alongside the color, since leaving it unstated causes the model to default to the reference photo's existing material finish.
Does it preserve small hardware details like embossed logos or metal clasps?
It approximates fine hardware detail based on the reference photo's resolution; for branding that must stay pixel-exact (embossed logos, safety certifications), plan on a manual overlay pass rather than relying on the model to reproduce small engraved text precisely.
Can one API call generate a packaging shot and a standalone product shot together?
No — each shot type needs its own reference photo and prompt. Generate the packaged version and the standalone version as separate jobs from separate reference images.
What resolution is needed for a marketplace listing versus a print catalog?
2K covers most e-commerce listing and zoom needs; 4K adds a $0.012 premium per image and is worth it mainly for print catalogs or large in-store display graphics.
Is there a free tier to test colorway consistency before a full line launch?
Yes. GenRelay includes free credits on signup, enough to generate a handful of colorway variants from one reference photo before committing to a full line batch.
As of September 2026. Pricing subject to change — verify current rates at genrelay.ai.