AI Video Generation API for Wallet and Leather Goods Brands

Oct 10, 2026·7 min read

A leather goods brand has a clean studio photo of its new bifold wallet — stitching crisp in frame, card slots fanned slightly open, a brass snap catching the light — but the product page and a round of paid social creative call for short clips the studio can't shoot on demand: the wallet unfolding to reveal the card slots, a hand sliding a card into a slot, the wallet slowly rotating to show the edge stitching before a shopper decides to buy. Booking a lifestyle videographer every time a new leather color or hardware finish launches costs more than most leather goods brands budget for a seasonal drop, and a full lifestyle shoot takes days most small brands don't have between sample approval and launch. Turning the existing studio photo into an unfolding or rotating clip via API answers "what does this wallet actually look like in motion" without scheduling a shoot.

Direct answer: GenRelay's image-to-video models animate an existing wallet or leather goods photo into a short clip with described motion — a bifold unfolding, a card sliding into a slot, a snap clicking shut, a wallet rotating — billed either per second or per generation, and a single 5-second clip costs between $0.05 and $0.90 depending on model and resolution, cheap enough to generate a clip per leather color before committing to a real lifestyle shoot.

How Much Does a Wallet Product Clip Cost?

Cost depends entirely on billing model and resolution, not on how much unfolding or card-sliding motion the described clip involves. As of October 2026, GenRelay's video pricing: Grok Imagine 1.0 (text-to-video) $0.010/second, Grok Imagine 1.5 (image-to-video) $0.022/second, Veo 3.1 Lite $0.060/second at 720p or $0.120/second at 1080p (and $0.180/second at 4K), and Gemini Omni Flash a flat $0.10 per generation at 720p or $0.15 at 1080p regardless of length.

Model Billing 5s clip cost 8s clip cost Best for
Grok Imagine 1.5 (i2v) Per second $0.11 $0.176 Animating an existing wallet photo into an unfolding or rotating clip
Grok Imagine 1.0 (t2v) Per second $0.05 $0.08 Generating generic lifestyle B-roll from a text description, no source photo
Veo 3.1 Lite, 720p Per second $0.30 $0.48 Higher-fidelity hardware and stitching detail, close-up texture shots
Veo 3.1 Lite, 1080p Per second $0.60 $0.96 Hero shots for the product page or a paid ad
Omni Flash, 720p Per generation $0.10 $0.10 Fixed-length clips regardless of duration

For a bifold that needs to end up as an unfolding-and-card-slide clip, Grok Imagine 1.5 is the practical default — it takes the studio wallet photo as input and holds the leather color, stitching pattern, and snap placement consistent while generating the unfolding motion, card slide, and surrounding lighting, at a fraction of Veo 3.1 Lite's per-second cost. Veo 3.1 Lite earns its higher price for a small number of hero clips where motion realism and camera movement quality matter more than cost per clip — a homepage banner clip, for instance, versus a dozen leather-color-launch social clips.

How Do I Animate a Wallet Photo Into an Unfolding Clip?

Submit the source photo and a motion prompt describing both the product's motion and the camera movement — image-to-video jobs are asynchronous, so the response returns a job ID to poll rather than a direct result:

import requests
import time

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

with open("wallet_studio.jpg", "rb") as f:
    r = requests.post(
        f"{BASE}/videos/generations",
        headers={"Authorization": f"Bearer {API_KEY}"},
        files={"image": f},
        data={
            "model": "grok-imagine-1.5",
            "prompt": (
                "A leather bifold wallet slowly unfolding to reveal "
                "fanned card slots, a hand sliding a card into one slot, "
                "soft studio light catching the brass snap, slow "
                "tracking camera movement circling the wallet."
            ),
            "duration": 5,
        },
    )
job_id = r.json()["id"]

while True:
    status = requests.get(
        f"{BASE}/videos/generations/{job_id}",
        headers={"Authorization": f"Bearer {API_KEY}"},
    ).json()
    if status["state"] == "completed":
        video_url = status["output_url"]
        break
    if status["state"] == "failed":
        raise RuntimeError(status.get("error"))
    time.sleep(3)

How Do I Generate Clips Across a Full Leather-Color Line?

Batch the same source photo against a list of motion prompts, submitting jobs concurrently and polling each one, rather than running the loop sequentially and waiting on each clip before submitting the next:

import concurrent.futures

variants = [
    "bifold slowly unfolding to reveal fanned card slots",
    "hand sliding a card into a slot, close-up",
    "wallet rotating 360 degrees on a turntable, studio lighting",
]

def submit_and_wait(prompt):
    with open("wallet_studio.jpg", "rb") as f:
        r = requests.post(
            f"{BASE}/videos/generations",
            headers={"Authorization": f"Bearer {API_KEY}"},
            files={"image": f},
            data={"model": "grok-imagine-1.5", "prompt": prompt, "duration": 5},
        )
    job_id = r.json()["id"]
    while True:
        status = requests.get(
            f"{BASE}/videos/generations/{job_id}",
            headers={"Authorization": f"Bearer {API_KEY}"},
        ).json()
        if status["state"] == "completed":
            return status["output_url"]
        if status["state"] == "failed":
            raise RuntimeError(status.get("error"))
        time.sleep(3)

with concurrent.futures.ThreadPoolExecutor(max_workers=3) as pool:
    clips = list(pool.map(submit_and_wait, variants))

Three 5-second clips at Grok Imagine 1.5's $0.022/second rate cost $0.33 total — less than the cost of a single stock video license, for a set of clips that actually show the exact wallet and leather color shipping to customers.

What Does a Full Leather-Color Line Launch Cost?

A leather goods brand with 5 leather colors needing 1 unfolding or rotating clip each — 5 clips total — at Grok Imagine 1.5's 5-second rate costs $0.55 for the full batch. Upgrading to Veo 3.1 Lite at 720p for the same 5 clips costs $1.50; at 1080p for a small set of 2 hero colors (2 clips) it costs $1.20, reserved for the highest-traffic product pages rather than the full line.

Scope Clips Model Total cost
5 leather colors × 1 unfolding/rotating clip 5 Grok Imagine 1.5, 5s $0.55
Same line, higher fidelity 5 Veo 3.1 Lite 720p, 5s $1.50
2 hero colors, 1080p hero clip 2 Veo 3.1 Lite 1080p, 5s $1.20
5 leather colors, 1 clip each 5 Omni Flash 720p (flat) $0.50

Omni Flash's flat per-generation rate makes sense when one representative unfolding or rotating clip per leather color is enough — a single "here's how it opens" clip per product for a launch page — while per-second models earn their cost when a color needs a longer hero clip or more elaborate card-slide or snap motion.

FAQ

Can I generate generic lifestyle B-roll from text only, without a product photo?
Yes — Grok Imagine 1.0 generates from a text prompt alone at $0.010/second, but without a source photo the model has no exact wallet to match, so it works for general lifestyle-ambience footage rather than clips depicting your actual SKU.

Does the API support longer clips for a hero video?
Duration is set per request up to each model's maximum; check the /videos/generations endpoint docs for current per-model duration limits, and expect cost to scale linearly for per-second models.

Does the video include audio, like a snap click or stitching-fabric sound?
Veo 3.1 supports synchronized audio generation on some modes; see the Veo 3.1 audio API guide for details. Grok Imagine and Omni Flash clips are silent.

How do I handle a failed generation job?
Check the state field in the polling response — a failed state includes an error field describing the cause. Retry with a simplified prompt if the failure relates to prompt content rather than a transient server error.

Can the same source photo generate both an unfolding clip and a rotating clip?
Yes — submit the same reference image with a different motion prompt for each job; the leather color and hardware stay consistent across clips since both jobs anchor to the same source photo.


See the image-to-video pipeline guide for the full async pattern, or the AI watch photography API guide for a related accessory-category workflow.

Related posts

Join our DiscordAI Video Generation API for Wallet and Leather Goods Brands — GenRelay