AI Video Generation API for Rug Brands — Clip Cost Guide

Oct 20, 2026·5 min read

A rug brand sells one woven design in five colorways and four sizes. Every listing has a still photo, but shoppers also want to see pile depth, how the pattern reads from a standing angle, and how light moves across the weave. Filming twenty combinations means unrolling, steaming, and re-staging a room for each one. Animating the existing photos through an API gives shoppers a sense of texture and scale without a new shoot.

Direct answer: GenRelay's image-to-video models animate an existing rug photo into a short clip with described motion, such as a slow pan across the pile, a low-angle glide, or a light shift over the weave, 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 Rug 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 rug photo into a pan or glide 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 pile texture and pattern edges
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 colorway that needs a simple motion clip, Grok Imagine 1.5 is the practical default: it takes the photo as input and keeps the rug design consistent while generating motion. Veo 3.1 Lite fits a few hero clips where weave detail justifies the higher per-second price.

How Do I Animate a Rug Photo Into a Clip?

Submit the source photo with a prompt describing the camera movement and light. 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("rug_diamond_sand.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": (
                "Sand-colored woven wool rug with a diamond pattern in a bright "
                "living room, slow low-angle pan across the pile, soft window "
                "light shifting over the weave, 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 Colorway Range?

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

import concurrent.futures

colors = ["sand", "slate", "rust", "forest"]

def submit_and_wait(color):
    with open(f"photos/rug_{color}.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": "slow low-angle pan across the pile, soft light shift, 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 color, 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, colors))

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

What Does a Full Colorway Launch Cost?

A brand with 5 colorways needing one pan clip each pays $0.55 at Grok Imagine 1.5's 5-second rate. The same 5 clips on Veo 3.1 Lite at 720p cost $1.50; 2 hero colorways at 1080p cost $1.20.

Scope Clips Model Total cost
5 colorways × 1 pan clip 5 Grok Imagine 1.5, 5s $0.55
Same range, higher fidelity 5 Veo 3.1 Lite 720p, 5s $1.50
2 hero colorways, 1080p clip 2 Veo 3.1 Lite 1080p, 5s $1.20
5 colorways, 1 clip each 5 Omni Flash 720P (flat) $0.50

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

FAQ

Will the clip show the exact pattern of my rug?
Not reliably. The model starts from your photo, but fine pattern repeats and fringe can shift or blur during motion. Check each clip against the real rug before publishing.

Can the model show the true size of a rug in a room?
No. Generated motion does not preserve true scale. Keep size information in the listing text and use real photography for dimension shots.

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 lamp brands?
Yes. The lamp video guide covers switch-on glow, orbit, and dimming 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 Rug Brands — Clip Cost Guide — GenRelay