Generation Templates
One-field effects and Compose recipes for AI video. Apply curated effects to normal generations, or plan and render a full short-form production.
Generation Templates includes two related surfaces:
- Effect templates: pre-curated creative effects for
/v1/images/generationsand/v1/videos/generations. Passtemplate: "<slug>"and EmpirioLabs applies the tuned effect to a normal generation request. - Compose recipes: full-production short-form video workflows. Compose plans scenes, creates or selects visuals, generates voiceover, captions, optional music, and returns a finished MP4.
The same catalog powers the Templates button in the playground, where Effects and Compose appear as top-level tabs.
List templates
Use the generic endpoint for the full image and video catalog, or the modality-specific endpoints when you already know the generation type.
List video templates
Filters
category:viral,cinematic,motion,transform,social,extend,product,edit,portraitmodality:videoorimagemodel: only return templates that support a specific model slugfeatured:trueto filter to featured templates only
Response shape
List image templates
Compose
Compose is the full-production video workflow. Use it when you want a complete short-form video from a brief, script, product idea, or explainable topic. Use effect templates when you want one curated effect applied to a normal image or video generation request.
List Compose recipes
The response includes public recipe metadata:
slug: pass this asrecipeonPOST /v1/videos/composedisplay_name,category,visual_mode, andaudio_modescene_count,aspect_ratios, anddefault_caption_stylerequires_face_imageandaccepts_product_imagemodels: recommended and allowed model options by stage
Model recommendations are read from the live Compose recipe catalog. If you override a stage model, use a value listed in that recipe’s models.<stage>.options.
Plan a storyboard
Use mode: "plan" to turn a topic or script into an editable storyboard. This is the fastest way to preview structure before spending on a full render.
Compose returns an async job:
Poll the job:
When the plan job completes, result contains a storyboard. You can edit that JSON before render.
Render the video
Send the storyboard back with mode: "render".
The final job result includes the output URL and Compose metadata. Generated media URLs expire after 7 days, so save anything you need to keep.
Edit a render
Use mode: "edit" when you already have a prior render manifest and want to change selected scenes.
Common Compose fields
Compose usage and billing
Compose records a parent usage row for the production, plus internal model legs for script, voice, visuals, transcription, music, and assembly when those stages run. The parent row is the customer-facing row returned by the Account Usage API.
Compose rows use source: "compose" and include structured metadata:
Read cost.amount for the final debited amount. Use metadata.compose.legs when you want a breakdown of which model stages contributed.
Fetch a single template
Returns 404 with code: "template_not_found" if the slug doesn’t exist.
Generate a video with a template
Add template: "<slug>" to a normal /v1/videos/generations call. You must provide whatever the template requires (required_inputs), usually a reference image.
Behavior:
- Model selection: if you don’t pass
model, the template’srecommended_modelis used. If you do, most templates validate that it is insupported_modelsand return 400template_model_unsupportedotherwise. Templates withmetadata.force_recommended_model: trueare pinned torecommended_modelfor effect fidelity. - Modality check: image templates only apply to
/v1/images/generations; video templates only apply to/v1/videos/generations. - Prompt blend: your
prompt(if any) is combined with the template’s built-in styling so the generated output matches both your request and the effect’s aesthetic. Send a short directional prompt; EmpirioLabs handles the rest. - Default params:
default_paramsfrom the template merge in only for keys you didn’t set explicitly. - Required inputs:
{ "image": true }means the call returns 400template_missing_imageif noimage_url/image/imagesis provided.
Generate an image with a template
The response is the same async job envelope as a normal video generation:
Poll GET /v1/jobs/{job_id} until terminal.
Extend a prior video
/v1/videos/generations also accepts extend_from to continue a previous generation. EmpirioLabs handles the prior-clip wiring for you and uses a sensible continuity prompt unless you provide your own.
You can also pass a direct URL:
Extend can compose with templates:
Extend works on every video model
Pass extend_from with any supported video model. If you omit model, EmpirioLabs picks a sensible default for the extend.
