Templates de Geração

Presets de um campo para geração de imagens e vídeos. Aplique receitas de produto, edição, viral, cinema, movimento ou transformação passando um template slug.

Templates são receitas pré-selecionadas de “efeitos criativos” para /v1/images/generations e /v1/videos/generations. Cada template traz um modelo recomendado, uma lista de modelos suportados, parâmetros padrão e regras de entrada obrigatórias. Passe template: "<slug>" no corpo da solicitação e o EmpirioLabs aplica o efeito com o que você fornecer, escolhe o modelo mais suportado para você e encaminha a chamada para o trabalhador.

O mesmo catálogo de modelos alimenta o botão Templates no playground.

Modelos de lista

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

Use o endpoint genérico para o catálogo completo de imagens e vídeos, ou os endpoints específicos de modalidade quando você já souber o tipo de geração.

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

Lista de modelos 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 ou image
  • model: retorna apenas templates que suportem um slug de modelo específico
  • featured: true filtrar apenas para modelos em destaque
$curl https://api.empiriolabs.ai/v1/videos/templates?category=viral \
> -H "Authorization: Bearer $EMPIRIOLABS_API_KEY"

Forma de resposta

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}

Modelos de imagem 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"

Buscar um único modelo

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"

Devolve o 404 com code: "template_not_found" se o slug não existir.

Gere um vídeo com um modelo

Adicione template: "<slug>" a uma chamada normal de /v1/videos/generations. Você deve fornecer o que o modelo exigir (required_inputs), geralmente uma imagem de referência.

$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"
> }'

Comportamento:

  • Seleção de modelos: se você não passar model, o recommended_model do template é usado. Se você fizer isso, a maioria dos templates valida que está em supported_models e retorna 400 template_model_unsupported caso contrário. Templates com metadata.force_recommended_model: true são fixados no recommended_model para fidelidade dos efeitos.
  • Verificação de modalidade: os templates de imagem se aplicam apenas a /v1/images/generations; Os templates de vídeo só se aplicam a /v1/videos/generations.
  • Mistura de prompts: seu prompt (se houver) é combinado com o estilo embutido do template, de modo que a saída gerada corresponde tanto ao seu pedido quanto à estética do efeito. Envie um breve comando direcional; A EmpirioLabs cuida do restante.
  • Parágrafos padrão: default_params do template merge apenas para chaves que você não definiu explicitamente.
  • Entradas necessárias: \{ "image": true \} significa que a chamada retorna 400 template_missing_image se não houver image_url / image / images fornecida.

Gerar uma imagem com um template

$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"]
> }'

A resposta é o mesmo envelope de trabalho assíncrono de uma geração normal de vídeo:

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

Enquete GET /v1/jobs/\{job_id\} até o terminal.

Estenda um vídeo anterior

/v1/videos/generations também aceita extend_from continuar uma geração anterior. A EmpirioLabs cuida da fiação do clipe anterior para você e usa um prompt de continuidade sensato, a menos que você forneça o seu próprio.

$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>" }
> }'

Você também pode passar uma URL direta:

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

O Extend pode compor com templates:

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

Estender funciona em todos os modelos de vídeo

Passe extend_from com qualquer modelo de vídeo suportado. Se você omitir model, a EmpirioLabs escolhe um padrão sensato para a extensão.

Códigos de erro

HTTPCódigosignificado
400template_not_foundO slug não corresponde a nenhum template ativo
400template_model_unsupportedO modelo que você passou não está no modelo supported_models
400template_modality_mismatchA modalidade template não corresponde ao endpoint de geração
400template_missing_imageO modelo exige uma imagem, mas o corpo não incluiu nenhuma
400template_missing_videoO modelo exige um vídeo de referência, mas o corpo não incluía nenhum
400template_no_modelO modelo não tem recommended_model e você não passou em nenhum
400extend_extraction_failedNão consegui processar o vídeo anterior para o Extend. Tente outro modelo.
400extend_invalid_shapeextend_from estava deformada
400extend_no_prior_videoo emprego anterior não tinha URL de vídeo solucionável
404extend_prior_not_foundA job_id em extend_from era desconhecida
500extend_frame_upload_failedNão consegui preparar o vídeo anterior para o Extend. Tente novamente, ou tente outro modelo.