Plantillas de generación

Presets de un solo campo para la generación de imágenes y vídeo. Aplica recetas de producto, edición, viral, cinemática, movimiento o transformación pasando una plantilla slug.

Las plantillas son recetas preseleccionadas de “efectos creativos” para /v1/images/generations y /v1/videos/generations. Cada plantilla incluye un modelo recomendado, una lista de modelos soportados, parámetros por defecto y reglas de entrada requeridas. Pasa template: "<slug>" en el cuerpo de la solicitud y EmpirioLabs aplica el efecto con lo que proporciones, elige el modelo mejor soportado para ti y reenvía la llamada al trabajador.

El mismo catálogo de plantillas alimenta el botón Plantillas en el patio de juegos.

Plantillas de lista

GET
/v1/templates
1curl https://api.empiriolabs.ai/v1/templates \
2 -H "Authorization: Bearer <token>" \
3 -H "Content-Type: application/json"

Utiliza el endpoint genérico para el catálogo completo de imágenes y vídeos, o los endpoints específicos de la modalidad cuando ya sepas el tipo de generación.

$curl https://api.empiriolabs.ai/v1/templates?modality=image \
> -H "Authorization: Bearer $EMPIRIOLABS_API_KEY"

Lista de plantillas de vídeo

GET
/v1/videos/templates
1curl https://api.empiriolabs.ai/v1/videos/templates \
2 -H "Authorization: Bearer <token>" \
3 -H "Content-Type: application/json"

Filtros

  • category: viral, cinematic, motion, transform, social, extend, product, edit, portrait
  • modality: video o image
  • model: solo devolver plantillas que soporten un slug de modelo específico
  • featured: true filtrar solo por plantillas destacadas
$curl https://api.empiriolabs.ai/v1/videos/templates?category=viral \
> -H "Authorization: Bearer $EMPIRIOLABS_API_KEY"

Forma de respuesta

1{
2 "object": "list",
3 "template_count": 11,
4 "data": [
5 {
6 "slug": "baseball-stadium",
7 "display_name": "Stadium",
8 "category": "viral",
9 "description": "Customer-facing description shown in the playground card.",
10 "recommended_model": "kling-o3",
11 "supported_models": ["kling-o3"],
12 "default_params": { "aspect_ratio": "16:9", "duration": 10 },
13 "required_inputs": { "image": true, "min_images": 1, "max_images": 1 },
14 "cover_image_url": "https://media.empiriolabs.ai/assets/template-posters/baseball-stadium.jpg",
15 "preview_video_url": "https://media.empiriolabs.ai/assets/template-previews/baseball-stadium.mp4",
16 "modality": "video",
17 "is_featured": true,
18 "display_order": 10
19 }
20 ]
21}

Plantillas de imágenes de lista

GET
/v1/images/templates
1curl https://api.empiriolabs.ai/v1/images/templates \
2 -H "Authorization: Bearer <token>" \
3 -H "Content-Type: application/json"
$curl https://api.empiriolabs.ai/v1/images/templates?model=seedream-5-0-lite \
> -H "Authorization: Bearer $EMPIRIOLABS_API_KEY"

Busca una sola plantilla

GET
/v1/templates/:slug
1curl https://api.empiriolabs.ai/v1/templates/studio-product-shot \
2 -H "Authorization: Bearer <token>" \
3 -H "Content-Type: application/json"
$curl https://api.empiriolabs.ai/v1/templates/studio-product-shot \
> -H "Authorization: Bearer $EMPIRIOLABS_API_KEY"

Devuelve 404 con code: "template_not_found" si la bala no existe.

Genera un vídeo con una plantilla

Añade template: "<slug>" a una llamada normal de /v1/videos/generations. Debes proporcionar lo que la plantilla requiera (required_inputs), normalmente una imagen de referencia.

$curl https://api.empiriolabs.ai/v1/videos/generations \
> -H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
> -H "Content-Type: application/json" \
> -d '{
> "template": "baseball-stadium",
> "image_url": "https://example.com/me.jpg"
> }'

Comportamiento:

  • Selección de modelos: si no pasas model, se utiliza la recommended_model de la plantilla. Si lo haces, la mayoría de las plantillas validan que está en supported_models y devolven 400 template_model_unsupported lo contrario. Las plantillas con metadata.force_recommended_model: true se fijan a recommended_model para mayor fidelidad de efectos.
  • Comprobación de modalidad: las plantillas de imagen solo se aplican a /v1/images/generations; Las plantillas de vídeo solo se aplican a /v1/videos/generations.
  • Mezcla de prompts: tu prompt (si la hay) se combina con el estilo incorporado de la plantilla para que la salida generada coincida tanto con tu petición como con la estética del efecto. Envía una breve indicación direccional; EmpirioLabs se encarga del resto.
  • Parámetros por defecto: default_params de la plantilla se integran solo para claves que no hayas configurado explícitamente.
  • Entradas requeridas: \{ "image": true \} significa que la llamada devuelve 400 template_missing_image si no se proporciona image_url / image / images.

Genera una imagen con una plantilla

$curl https://api.empiriolabs.ai/v1/images/generations \
> -H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
> -H "Content-Type: application/json" \
> -d '{
> "template": "background-swap",
> "prompt": "Place this product on a brushed steel studio plinth",
> "image": ["https://example.com/product.jpg"]
> }'

La respuesta es el mismo envolvente de trabajo asincrónico que una generación normal de vídeo:

1{
2 "job_id": "abc123...",
3 "status": "processing",
4 "poll_url": "/v1/jobs/abc123..."
5}

Encuesta GET /v1/jobs/\{job_id\} hasta la terminal.

Extender un vídeo anterior

/v1/videos/generations también acepta extend_from continuar con una generación anterior. EmpirioLabs se encarga del cableado del pre-clip por ti y utiliza un prompt de continuidad sensato, a menos que proporciones el tuyo propio.

$curl https://api.empiriolabs.ai/v1/videos/generations \
> -H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
> -H "Content-Type: application/json" \
> -d '{
> "extend_from": { "job_id": "<prior_job_id>" }
> }'

También puedes pasar una URL directa:

1{ "extend_from": { "video_url": "https://media.empiriolabs.ai/..." } }

Extend puede escribir con plantillas:

1{
2 "template": "action-hero",
3 "extend_from": { "job_id": "<prior>" }
4}

Extend funciona en cada modelo de vídeo

Aproba extend_from con cualquier modelo de vídeo compatible. Si omites model, EmpirioLabs elige un valor predeterminado sensato para el extendido.

Códigos de error

HTTPCódigoSignificado
400template_not_foundEl slug no coincide con ninguna plantilla activa
400template_model_unsupportedEl modelo que aprobaste no está en la supported_models
400template_modality_mismatchLa modalidad de plantilla no coincide con el endpoint de generación
400template_missing_imageLa plantilla requiere una imagen, pero el cuerpo no la incluía
400template_missing_videoLa plantilla requiere un vídeo de referencia, pero el cuerpo no lo incluía
400template_no_modelLa plantilla no tiene recommended_model y no aprobaste ninguno
400extend_extraction_failedNo pude procesar el vídeo anterior durante la extensión. Prueba con otro modelo.
400extend_invalid_shapeextend_from estaba deformada
400extend_no_prior_videoel trabajo anterior no tenía una URL de vídeo resoluble
404extend_prior_not_foundLa job_id en extend_from era desconocida
500extend_frame_upload_failedNo pude preparar el vídeo anterior para extender. Inténtalo de nuevo, o prueba con otro modelo.