AI Video Generation API for Drinkware Brands — Clip Cost Guide
A drinkware company has an insulated tumbler in eight colors. Each color has a studio packshot, but the product page and short-form ads need motion: the lid flipping open, condensation beading on the surface, the tumbler slowly rotating to show the handle. Filming eight colors means a set, a stylist, and a lighting crew repeated eight times. Animating the existing packshots through an API answers "what does it look like in hand" without a new shoot.
Direct answer: GenRelay's image-to-video models animate an existing drinkware photo into a short clip with described motion, such as a lid flip, a rotation, or a condensation shimmer, billed per second or per generation, and a 5-second clip costs between $0.05 and $0.90 depending on model and resolution.
How Much Does a Drinkware 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 $0.180/second at 4K, 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 packshot into a rotation or lid-flip clip |
| Grok Imagine 1.0 (t2v) | Per second | $0.05 | $0.08 | Generic pour or splash footage from text, no source photo |
| Veo 3.1 Lite, 720p | Per second | $0.30 | $0.48 | Finer condensation and reflection detail |
| 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 color variant that needs a simple motion clip, Grok Imagine 1.5 is the practical default: it takes the packshot as input and keeps the bottle shape and color consistent while generating motion. Veo 3.1 Lite fits a few hero clips where condensation and highlight realism justify the higher per-second price.
How Do I Animate a Drinkware Packshot Into a Clip?
Submit the source photo with a prompt describing both the product motion 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("tumbler_packshot.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 sage green insulated tumbler on a light stone surface, "
"the lid flipping open, fine condensation on the body, "
"soft daylight, slow camera orbit."
),
"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 Color Range?
Submit jobs concurrently and poll each one, rather than waiting on each clip before sending the next:
import concurrent.futures
colors = ["sage", "navy", "cream", "coral"]
def submit_and_wait(color):
with open(f"packshots/{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": "tumbler slowly rotating, soft daylight, fine condensation, 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 Color-Range Launch Cost?
A brand with 8 colors needing one rotation clip each pays $0.88 at Grok Imagine 1.5's 5-second rate. The same 8 clips on Veo 3.1 Lite at 720p cost $2.40; 2 hero colors at 1080p cost $1.20.
| Scope | Clips | Model | Total cost |
|---|---|---|---|
| 8 colors × 1 rotation clip | 8 | Grok Imagine 1.5, 5s | $0.88 |
| Same range, higher fidelity | 8 | Veo 3.1 Lite 720p, 5s | $2.40 |
| 2 hero colors, 1080p clip | 2 | Veo 3.1 Lite 1080p, 5s | $1.20 |
| 8 colors, 1 clip each | 8 | Omni Flash 720P (flat) | $0.80 |
Omni Flash's flat rate fits when one clip per color is enough, while per-second models earn their cost when a hero piece needs a longer clip.
FAQ
Will the clip show the exact color of my tumbler?
The model starts from your packshot, but color can shift during motion and lighting changes. Check the first and last frames against the real product before publishing.
Can I generate pour or splash footage from text only?
Yes. Grok Imagine 1.0 generates from a text prompt at $0.010/second, but with no source photo it cannot match your actual SKU, so it suits general mood footage.
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.
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 cookware brands?
Yes. The cookware video guide covers lid-lift, steam, and pan-tilt 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.