AI Video Generation API for Lamp Brands — Clip Cost Guide

Oct 19, 2026·6 min read

A lighting brand sells one table lamp in six shade colors and three base finishes. Every listing has a still photo, but the product page and short-form ads need to show what a lamp actually does: the glow warming up as it switches on, a slow orbit around the shade, the light spreading across a wall at dusk. Filming eighteen combinations means a darkened set and repeated lighting setups per variant. Animating the existing photos through an API gives shoppers a sense of the glow and form without a new shoot.

Direct answer: GenRelay's image-to-video models animate an existing lamp photo into a short clip with described motion, such as a switch-on glow, a slow orbit, or a dimming sweep, billed per second or per generation, and a 5-second clip costs between $0.05 and $0.96 depending on model and resolution.

How Much Does a Lamp Clip Cost?

Cost depends on billing model and resolution, not on how complicated the described motion is. As of October 2026, GenRelay video pricing is: 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, $0.120/second at 1080p, and Gemini Omni Flash a flat $0.10 per generation at 720P or $0.15 at 1080P.

Model Billing 5s clip cost 8s clip cost Best for
Grok Imagine 1.5 (i2v) Per second $0.11 $0.176 Animating an existing lamp photo into an orbit or glow clip
Grok Imagine 1.0 (t2v) Per second $0.05 $0.08 Generic living-room ambience footage from text, no source photo
Veo 3.1 Lite, 720p Per second $0.30 $0.48 Finer glow gradients and shade translucency
Veo 3.1 Lite, 1080p Per second $0.60 $0.96 Hero clips for a launch page or paid ad
Omni Flash, 720P Per generation $0.10 $0.10 Fixed-price clips regardless of duration

For a shade-color variant that needs a simple motion clip, Grok Imagine 1.5 is the practical default: it takes the photo as input and keeps the product form consistent while generating motion. Veo 3.1 Lite fits a few hero clips where the light falloff on the wall justifies the higher per-second price.

How Do I Animate a Lamp Photo Into a Clip?

Submit the source photo with a prompt describing both the light behavior and the camera movement. Image-to-video jobs are asynchronous, so the response returns a job ID to poll:

import requests
import time

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

with open("lamp_brass_linen.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": (
                "Brass table lamp with linen shade on a wooden side table, "
                "warm glow slowly brightening as the lamp switches on, "
                "slow orbit around the shade, steady camera."
            ),
            "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 Shade Range?

Submit jobs concurrently and poll each one, rather than waiting on each clip before sending the next:

import concurrent.futures

shades = ["ivory", "sage", "charcoal", "terracotta"]

def submit_and_wait(shade):
    with open(f"photos/lamp_{shade}.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": "warm glow brightening, slow orbit around the shade, steady camera",
                "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 shade, status["output_url"]
        if status["state"] == "failed":
            raise RuntimeError(status.get("error"))
        time.sleep(3)

with concurrent.futures.ThreadPoolExecutor(max_workers=4) as pool:
    clips = dict(pool.map(submit_and_wait, shades))

Four 5-second clips at Grok Imagine 1.5's $0.022/second cost $0.44 in total.

What Does a Full Shade-Range Launch Cost?

A brand with 6 shade colors needing one orbit clip each pays $0.66 at Grok Imagine 1.5's 5-second rate. The same 6 clips on Veo 3.1 Lite at 720p cost $1.80; 2 hero shades at 1080p cost $1.20.

Scope Clips Model Total cost
6 shades × 1 orbit clip 6 Grok Imagine 1.5, 5s $0.66
Same range, higher fidelity 6 Veo 3.1 Lite 720p, 5s $1.80
2 hero shades, 1080p clip 2 Veo 3.1 Lite 1080p, 5s $1.20
6 shades, 1 clip each 6 Omni Flash 720P (flat) $0.60

Omni Flash's flat rate fits when one clip per shade is enough, while per-second models earn their cost when a hero piece needs a longer clip.

FAQ

Will the clip show the exact brightness and color temperature of my lamp?
Not reliably. The model starts from your photo, but glow intensity and warmth can shift during the clip. Check the lit frames against the real product before publishing.

Can the model animate a lamp switching on convincingly?
Light changes are hard to render accurately. Keep the described motion simple (a gradual brighten or a slow orbit) and review each clip for flicker or an unnatural halo around the shade.

Does the video include audio?
Veo 3.1 supports synchronized audio on some modes; see the Veo 3.1 audio API guide. Grok Imagine and Omni Flash clips are silent, so add music or sound design in post.

How do I handle a failed generation job?
Check the state field in the polling response. A failed state includes an error field; retry with a simplified prompt if the cause is prompt content rather than a transient server error.

Do you have a similar guide for bedding brands?
Yes. The bedding video guide covers fabric-settle, texture-pan, and light-shift clips with the same pricing math.


See the image-to-video pipeline guide for the full async pattern, or the Veo model page for parameter docs.

Related posts

Join our DiscordAI Video Generation API for Lamp Brands — Clip Cost Guide — GenRelay