AI Video Generation API for Restaurants and Food Brands
A restaurant relaunching its menu has professional dish photos from a food photographer but no video — no steam rising off a bowl of noodles, no sauce being poured over a plated dish for the delivery app listing or Instagram feed. Booking a food videographer for every new seasonal dish costs far more than most restaurants budget for menu photography, and it has to happen before the listing can show any motion at all. Turning existing dish photos into short showcase clips via API answers the "what would this cost" question before booking a shoot.
Direct answer: GenRelay's video models bill either per second of output or per generation, and a 5-second dish showcase clip costs between $0.05 and $0.30 depending on the model and resolution — low enough to generate a clip for every seasonal dish rather than reserving video for a handful of signature items.
How Much Does a Single Dish Showcase Clip Cost?
A 5-second clip's cost depends entirely on which model and resolution generate it, since per-second models scale with duration while per-generation models charge a flat fee regardless of length. As of September 2026, GenRelay's video pricing: Grok Imagine 1.0 (text-to-video) $0.010/s, Grok Imagine 1.5 (image-to-video) $0.022/s, Veo 3.1 Lite $0.060/s at 720p or $0.120/s at 1080p, and Gemini Omni Flash a flat $0.10 per generation at 720p or $0.15 at 1080p.
| Model | Mode | Billing | 5s clip cost (720p) | Native audio |
|---|---|---|---|---|
| Grok Imagine 1.0 | Text-to-video | Per second | 5 × $0.010 = $0.050 | No |
| Grok Imagine 1.5 | Image-to-video | Per second | 5 × $0.022 = $0.110 | No |
| Veo 3.1 Lite | Image-to-video | Per second | 5 × $0.060 = $0.300 | Yes |
| Gemini Omni Flash | Image-to-video | Flat per generation | $0.10 (720p) | No |
For a plated dish photo with no existing footage, image-to-video is the relevant mode — it animates the photo itself into steam rising, sauce pouring, or a garnish being placed, rather than generating a scene from a text description alone.
Which Model Fits Restaurant and Food Brand Clips?
Grok Imagine 1.5's lower per-second rate fits a full-menu rollout where every seasonal dish gets a short clip regardless of expected order volume; Veo 3.1 Lite's native audio is a better fit for a smaller set of hero clips meant for paid social or a homepage reel, where ambient sound (a sizzle, a pour) adds to the scene rather than playing silently.
Gemini Omni Flash's flat per-generation price becomes cheaper than Grok Imagine 1.5 once a clip runs past roughly 4.5 seconds at 720p, which matters for restaurant groups standardizing on a fixed clip length across a multi-location menu rather than varying duration per dish.
How Do I Generate a Dish Showcase Clip From a Product Photo?
Submit the dish photo with a prompt describing the intended motion — steam rising or sauce pouring reads better than trying to animate the whole scene, including background elements, at once.
import requests, time
API_KEY = "YOUR_KEY"
BASE = "https://genrelay.ai/v1"
def generate_clip(model, image_url, prompt, duration=5, resolution="720p"):
r = requests.post(
f"{BASE}/videos/generations",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"model": model,
"image": image_url,
"prompt": prompt,
"duration": duration,
"resolution": resolution,
},
)
return r.json()["id"]
job_id = generate_clip(
"grok-imagine-1.5",
"https://cdn.example.com/dish-photo.jpg",
"steam rising gently off the bowl, static camera, warm restaurant lighting",
)
Poll the job until it completes, since video generation is asynchronous:
def wait_for_result(job_id, timeout=180):
start = time.time()
while time.time() - start < timeout:
status = requests.get(
f"{BASE}/videos/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(3)
raise TimeoutError(f"Job {job_id} did not finish in {timeout}s")
video_url = wait_for_result(job_id)
How Do I Batch a Full Menu Relaunch?
Loop over every dish photo and submit each as its own job, holding concurrency low enough to stay under the account's rate limit — see the image-to-video pipeline guide for the async polling and error-handling pattern this batch relies on at larger menu sizes.
dishes = [
("miso-ramen.jpg", "steam rising gently off the bowl, static camera"),
("seared-salmon.jpg", "sauce being poured over the fillet, close-up"),
("chocolate-tart.jpg", "spoon breaking into the tart, chocolate flowing"),
]
jobs = []
for filename, prompt in dishes:
image_url = f"https://cdn.example.com/{filename}"
job_id = generate_clip("grok-imagine-1.5", image_url, prompt)
jobs.append((filename, job_id))
results = [(name, wait_for_result(j)) for name, j in jobs]
for name, url in results:
print(f"{name}: {url}")
What Does a Full Menu Relaunch Cost?
A twelve-dish seasonal menu on Grok Imagine 1.5 at 5 seconds per clip costs 12 × $0.110 = $1.32. Adding three hero clips on Veo 3.1 Lite with audio for the homepage reel adds 3 × $0.300 = $0.90.
| Package tier | Composition | Cost |
|---|---|---|
| Full menu clips (Grok Imagine 1.5) | 12 × 5s | $1.32 |
| Hero clips with audio (Veo 3.1 Lite, 720p) | 3 × 5s | $0.90 |
| Combined rollout | Both above | $2.22 |
| Flat-rate alternative (Gemini Omni Flash) | 12 × $0.10 | $1.20 |
At $2.22 for a twelve-dish menu relaunch with three audio-enabled hero clips included, adding a showcase clip to every new seasonal dish costs less than a single hour of a food videographer's time, without scheduling a full shoot around a menu launch calendar. See the AI food photography API guide for the matching still-photo model selection this video workflow builds on.
Internal Links
FAQ
Can the API animate a dish photo that includes multiple plates in frame?
It works best with one dish as the clear subject — a photo with several plates in frame tends to produce motion the model has to guess how to distribute, so cropping to a single dish before generating gets more predictable results.
Is per-second or per-generation billing cheaper for menu clips?
It depends on clip length — Grok Imagine 1.5 stays cheaper than Gemini Omni Flash's flat $0.10 (720p) up to roughly 4.5 seconds; past that, the flat rate wins regardless of duration.
Does Veo 3.1 Lite's audio track require a separate API call?
No. Audio generates synchronized with the video in the same request when using Veo 3.1 Lite — there's no separate audio generation step or additional endpoint.
How fast can a twelve-dish batch finish?
Individual clips typically complete within a few minutes; a twelve-clip batch submitted with bounded concurrency finishes well within a same-day turnaround for a menu launch deadline.
Is there a free tier to compare models before committing to a full menu relaunch?
Yes. GenRelay includes free credits on signup, enough to generate sample clips across Grok Imagine 1.5 and Veo 3.1 Lite before choosing a model for the full menu.
As of September 2026. Pricing subject to change — verify current rates at genrelay.ai.