AI Video Generation API for Events and Weddings — Highlight Reels
A wedding and event platform that delivers a same-day photo gallery to clients has a gap between the moment photos land and the moment the professionally edited highlight video is ready, which can take days or weeks. A short automated teaser clip — built from the gallery photos already on hand — gives clients something to share immediately, without waiting on the full edit or shooting additional video on-site.
Direct answer: an image-to-video (i2v) API can turn a handful of event or wedding photos into short motion clips within minutes of upload, which a platform can stitch into a same-day teaser reel while the full edited video is still in production.
How Can an API Turn Event Photos Into a Highlight Reel Clip?
An image-to-video model takes a single still photo and generates a few seconds of plausible motion around it — a slow push-in, hair or fabric moving, background depth shifting — rather than requiring original video footage. Submitting 5–8 photos from an event gallery and combining the resulting clips downstream (with a simple video-editing step such as ffmpeg concatenation) produces a short reel without a videographer having shot any motion footage at the event itself.
This only covers the motion-clip generation step; sequencing clips together with transitions and music is a separate downstream task the API doesn't handle.
Which Video Model Fits Wedding and Event Content?
Veo 3.1 Lite's native audio makes it the stronger fit for a client-facing highlight reel where ambient sound adds to the moment; Grok Imagine 1.5 is the lower-cost option for generating a larger volume of candidate clips per event before selecting the best ones.
| Model | Mode | Billing | 5s clip cost (720p) | Native audio | Best for |
|---|---|---|---|---|---|
| Grok Imagine 1.5 | Image-to-video | Per second | 5 × $0.022 = $0.110 | No | High-volume candidate clips per event |
| Veo 3.1 Lite | Image-to-video | Per second | 5 × $0.060 = $0.300 | Yes | Client-facing hero reel clips |
| Gemini Omni Flash | Image-to-video | Flat per generation | $0.10 (720p) | No | Fast same-day turnaround clips |
For a same-day teaser, Gemini Omni Flash's flat per-generation pricing keeps costs predictable regardless of how many photos a coordinator selects from the gallery. For the final client-facing reel, Veo 3.1 Lite's audio track removes a manual voiceover or music-sync step in post.
How Do I Animate an Event Photo Into a Clip?
Submit the photo with a prompt describing subtle, continuous motion — camera movement or environmental detail works better than trying to animate specific facial expressions.
import requests
import time
API_KEY = "YOUR_GENRELAY_KEY"
BASE_URL = "https://genrelay.ai/v1"
def submit_job(image_url, prompt, duration=5, model="veo-3.1-lite"):
r = requests.post(
f"{BASE_URL}/videos/generations",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"model": model,
"mode": "image-to-video",
"image_url": image_url,
"prompt": prompt,
"duration": duration,
},
timeout=30,
)
return r.json()["id"]
def poll_job(job_id, interval=5, timeout=180):
elapsed = 0
while elapsed < timeout:
r = requests.get(
f"{BASE_URL}/videos/generations/{job_id}",
headers={"Authorization": f"Bearer {API_KEY}"},
)
data = r.json()
if data["status"] in ("completed", "failed"):
return data
time.sleep(interval)
elapsed += interval
raise TimeoutError(f"job {job_id} did not finish in {timeout}s")
job_id = submit_job(
"https://cdn.example.com/events/couple-first-dance.jpg",
"Slow cinematic push-in, soft ambient string lights, gentle fabric movement",
)
result = poll_job(job_id)
print(result.get("output_url"))
How Do I Process a Full Wedding Gallery Into Clips?
Select a subset of gallery photos per event, queue them against the same model with per-photo motion prompts, and submit with bounded concurrency to stay within rate limits.
from concurrent.futures import ThreadPoolExecutor
GALLERY_SELECTS = [
("https://cdn.example.com/events/couple-first-dance.jpg", "Slow push-in, soft string lights, fabric movement"),
("https://cdn.example.com/events/ceremony-kiss.jpg", "Gentle camera drift, soft focus shift, ambient light flicker"),
("https://cdn.example.com/events/venue-wide-shot.jpg", "Slow pan across venue, guests softly moving in background"),
("https://cdn.example.com/events/ring-detail.jpg", "Subtle rotation and light glint on ring detail"),
]
def generate_and_wait(image_url, prompt):
job_id = submit_job(image_url, prompt, model="grok-imagine-1.5")
return poll_job(job_id)
with ThreadPoolExecutor(max_workers=3) as pool:
results = list(pool.map(lambda pair: generate_and_wait(*pair), GALLERY_SELECTS))
for r in results:
print(r.get("output_url"))
See the image-to-video pipeline guide for the async polling pattern this batch relies on at larger scale.
What Does an Event Highlight Package Cost via API?
As of September 2026, GenRelay per-second pricing: Grok Imagine 1.5 $0.022/s, Veo 3.1 Lite $0.060/s at 720p; Gemini Omni Flash is flat $0.10 per generation at 720p.
A same-day teaser built from 8 candidate clips at 5 seconds each via Grok Imagine 1.5 costs 8 × 5 × $0.022 = $0.88 per event. A final client-facing reel of 4 hero clips through Veo 3.1 Lite at 720p adds 4 × 5 × $0.060 = $1.20. A full package — 8 candidate clips plus 4 hero clips — totals $0.88 + $1.20 = $2.08 per event.
| Package tier | Composition | Cost per event |
|---|---|---|
| Same-day teaser only | 8 × 5s via Grok Imagine 1.5 | $0.88 |
| Client-facing hero reel | 4 × 5s via Veo 3.1 Lite (720p) | $1.20 |
| Full package | Both above | $2.08 |
| High-volume flat-rate option | 12 × Gemini Omni Flash (720p) | $1.20 |
At 50 events booked per month, the full package scales to 50 × $2.08 = $104 — well under what a single hour of additional videographer time would cost, and delivered same-day rather than on the multi-week edit timeline.
Internal Links
- Veo 3.1 on GenRelay
- How to build an image-to-video pipeline with API
- AI video generation API for hospitality and travel
FAQ
Does the API generate the full edited wedding video, transitions and music included?
No. It generates individual short motion clips from still photos; sequencing clips with transitions, music, and pacing is a separate downstream editing step.
Can it animate photos with multiple people without distorting faces?
Motion prompts that describe camera movement or environmental detail (fabric, lighting, background) hold up more reliably than prompts trying to animate specific facial expressions on multiple subjects — test a clip before committing to a full gallery batch.
How fast can a same-day teaser clip be ready after photos are uploaded?
Generation typically completes within a few minutes per clip; an 8-clip teaser batch submitted concurrently finishes well within the same-day window most platforms need.
Does Veo 3.1 Lite's audio work for a moment like vows or a first dance?
Veo 3.1 Lite generates native ambient audio synchronized to the clip's motion, which adds atmosphere but does not capture or reproduce actual on-site dialogue or music from the event.
Is there a free tier to test clip quality before offering this to clients?
Yes. GenRelay includes free credits on signup, enough to generate and compare sample clips across Grok Imagine 1.5 and Veo 3.1 Lite before building a client-facing package.
As of September 2026. Pricing subject to change — verify current rates at genrelay.ai.