AI Automotive Photography API — Vehicle Color and Trim Variants
A dealership's inventory system lists a sedan trim in six exterior colors, but the lot only has one unit on-site to photograph before it ships to a satellite location. The listing page needs all six color options live before the vehicle leaves, and reshooting the same trim later — after it's already sold — isn't an option once the physical car is gone. Generating the remaining color variants from the one on-site photo lets the full listing go live before the vehicle leaves the lot, rather than showing five color swatches next to a single real photo.
Direct answer: a reference-guided image generation API takes one vehicle photo as image input plus a prompt describing the target exterior color or trim finish, and outputs a new image that holds the body panel lines, wheel style, and badge placement consistent while changing only the paint or trim — no second vehicle or re-shoot required.
How Does an API Generate Vehicle Color Variants From One Photo?
Reference-guided generation anchors the output to the source photo's body shape, panel gaps, and wheel geometry, then applies the paint or trim change described in the prompt. This differs from text-to-image generation, which has no source vehicle to match and would produce a plausible-looking car rather than the exact trim on the lot — a real risk in automotive listings, where a shopper cross-checking wheel style or badge placement against the VIN sheet expects the image to match the actual unit.
Paint finish type changes how a color shift renders, so naming it precisely in the prompt matters: "pearl white metallic" scatters light differently than "matte gunmetal," and a trim prompt should name the target finish directly — "gloss black grille" versus "chrome grille" — rather than a vague "darker trim," which lets the model pick an arbitrary finish that may not match what's actually offered on that trim level.
Does the API Handle Both Exterior Paint and Trim Package Changes?
Yes, but each element responds differently to the same prompt structure. Exterior paint changes transfer cleanly across the body panels and hood since those surfaces are large, continuous, and evenly lit in most dealership lot photos. Trim package changes — wheel style, grille finish, badge color — need the specific finish named, since "sport wheels" alone is ambiguous but "five-spoke gloss black 19-inch wheels" produces a consistent result across every color variant in the same batch.
Interior shots are a separate operation from exterior paint swaps — generate the exterior color variant first, then run a second reference-guided pass on an interior photo if the listing also needs cabin color or upholstery options shown.
Which Model Fits Vehicle Listing Photography?
Nano Banana Pro's reference-guided mode holds panel lines, wheel geometry, and badge placement consistent across paint changes, which matters for dealership listings because a shifted body line or misaligned wheel reads as the wrong trim level to a shopper comparing the photo against the window sticker. GPT-image-2 fits smaller instruction-based touch-ups — background swap, reflection cleanup, or removing a dealer plate frame — on a photo that's otherwise already final.
| Model | Mode | Resolution / price | Structural consistency | Best for |
|---|---|---|---|---|
| Nano Banana Pro | Reference-guided | 1K $0.030 / 2K $0.030 / 4K $0.042 | High | Full color and trim sets from one lot photo |
| Nano Banana 2 | Reference-guided | 1K $0.020 / 4K $0.036 | Medium-high | Lower-cost variant runs for internal inventory review |
| GPT-image-2 | Instruction-based edit | $0.014/image | N/A (edits existing photo) | Background swap or reflection cleanup on a near-final shot |
For a listing-facing color launch, Nano Banana Pro's consistency at 2K resolution is worth the small premium over Nano Banana 2 — a shifted panel line or wrong wheel style reads as a trim mismatch to a shopper cross-checking against the VIN sheet, not a rendering quirk.
How Do I Generate a Vehicle Color Variant via API?
Submit the base lot photo as image input with a prompt describing the target paint or trim; 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, finish):
r = requests.post(
f"{BASE}/images/generations",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"model": "nano-banana-pro",
"prompt": f"same body panels, wheel style, and badge placement, "
f"{color} {finish} exterior paint, dealership lot shot, "
f"natural daylight, three-quarter front angle",
"image": reference_url,
"resolution": "2k",
},
)
return r.json()["id"]
job_id = generate_variant(
"https://cdn.example.com/sedan-silver.jpg",
"deep blue",
"pearl metallic",
)
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 Trim's Color Lineup?
Loop over the color 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.
colors = [
("deep blue", "pearl metallic"),
("crimson red", "gloss"),
("charcoal gray", "matte"),
("pearl white", "pearl metallic"),
("black", "gloss"),
]
jobs = []
for color, finish in colors:
job_id = generate_variant(reference_url, color, finish)
jobs.append((f"{color} {finish}", job_id))
results = [(label, wait_for_result(j)) for label, j in jobs]
for label, url in results:
print(f"{label}: {url}")
What Does a Full Lineup Cost?
Five color variants at 2K resolution on Nano Banana Pro cost 5 × $0.030 = $0.15. A wider launch spanning three trim levels (base, sport, premium) in five colors each costs 15 × $0.030 = $0.45.
| Launch size | Images | Model | Cost |
|---|---|---|---|
| Single trim, 5 colors | 5 | Nano Banana Pro, 2K | $0.15 |
| Three trims, 5 colors each | 15 | Nano Banana Pro, 2K | $0.45 |
| Internal inventory review pass | 15 | Nano Banana 2, 1K | $0.30 |
Running an internal inventory review pass on Nano Banana 2 before committing the final set to Nano Banana Pro keeps early-stage color decisions cheap without touching the listing-quality model until the lineup is finalized.
Internal Links
- Nano Banana Pro on GenRelay
- AI video generation API for automotive and car dealerships
- How to maintain visual consistency in AI-generated images via API
FAQ
Can the API change interior upholstery color as well as exterior paint?
Yes, but as a separate pass — submit an interior reference photo with a prompt describing the target upholstery color or material; exterior and interior changes don't combine in a single request.
Does it handle wheel style changes accurately, not just paint?
It applies wheel style changes when named specifically in the prompt — "five-spoke gloss black 19-inch wheels" produces a consistent result, while a vague "sport wheels" leaves the design ambiguous across a batch.
Can one API call generate both a color variant and a different background setting?
No — generate the color or trim variant first from the lot reference photo, then run a separate background pass if the listing also needs a showroom or outdoor lifestyle scene.
What resolution is needed for a dealership listing versus a print brochure?
2K covers most listing-page and zoom needs; 4K adds a $0.012 premium per image and is worth it mainly for print brochures or large showroom display graphics.
Is there a free tier to test color accuracy before a full lineup launch?
Yes. GenRelay includes free credits on signup, enough to generate a handful of color variants from one reference photo before committing to a full trim lineup batch.
As of September 2026. Pricing subject to change — verify current rates at genrelay.ai.