01
Proporção que não bate custa caro em silêncio
Se a referência é 1:1 e você pede um clipe 16:9, o endpoint precisa colocar barras, cortar ou esticar. Alinhe a referência ao aspect_ratio ou à resolution que vai pedir antes de enviar.
Guia de integração
Imagem para vídeo tira a variável mais difícil — como a cena é — e a troca por outra mais estreita: como ela deve se mover. O quadro de referência faz quase todo o trabalho, e por isso o prompt não salva uma referência fraca.

O desafio
Endpoints de movimento herdam tudo do primeiro quadro: enquadramento, luz, proporção, artefatos. Uma referência mole ou mal cortada gera um clipe mole e mal cortado, e a tarifa é de vídeo.
01
Se a referência é 1:1 e você pede um clipe 16:9, o endpoint precisa colocar barras, cortar ou esticar. Alinhe a referência ao aspect_ratio ou à resolution que vai pedir antes de enviar.
02
Onde last_image_url é declarado, fornecer as duas pontas define começo e fim em vez de uma deriva aberta. Onde não é declarado, enviá-lo dá 400.
03
movement_amplitude, camera_fixed, fps e duration_seconds aparecem conforme o endpoint, e o esquema marca quais mexem na tarifa. Não existe embaixo um vocabulário de movimento comum.
A abordagem
Faça o trabalho de imagem parada num endpoint de imagem, onde cada iteração custa centavos, fixe o quadro e só então pague pelo movimento. Passar um upload spicy:// confirmado mantém a referência idêntica byte a byte entre tentativas, então uma repetição parte exatamente dos mesmos pixels.
O corpo é uma chamada de criação com campo de imagem. O acompanhamento é igual ao de qualquer outra tarefa de mídia.
POST /api/v1/jobs/createTask
POST /api/v1/jobs/createTask
Authorization: Bearer $SPICY_API_KEY
Idempotency-Key: 7b1f0c2e-9a4d-4f31-8c67-2b5e0d9a1c44
Content-Type: application/json
{
"model": "<publisher>/<model>/image-to-video",
"input": {
"prompt": "Slow push-in, fabric moving in a light breeze",
"image_url": "https://example.com/reference.png",
"duration_seconds": 5,
"resolution": "720p"
},
"callBackUrl": "https://example.com/hooks/spicyapi"
}202 Accepted
HTTP/1.1 202 Accepted
Location: /api/v1/jobs/recordInfo?taskId=job_01k3m8x9q2z4v7n5p6r8s0t1w3
{
"code": 200,
"msg": "success",
"request_id": "req_example_create",
"data": {
"taskId": "job_01k3m8x9q2z4v7n5p6r8s0t1w3",
"state": "queued",
"estimatedCost": "0.750000"
}
}Contrato
| Campo ou cabeçalho | Valor ou limite |
|---|---|
| image_url · last_image_url | declared per endpoint |
| POST /api/v1/jobs/retry | new task · source record untouched |
| state | queued · running · succeeded · failed · expired |
| audio / video upload | ≤ 100 MiB · ≤ 600 s |
Deslize horizontalmente para ver todas as colunas.
Integração
Adequação
Evidências
URLs HTTPS, uploads spicy:// confirmados e data URIs embutidas funcionam do mesmo jeito em endpoints de imagem e de vídeo, sob os mesmos limites e as mesmas checagens de admissão.
POST /api/v1/jobs/retry monta uma tarefa a partir de uma que falhou ou expirou e reavalia esquema, preço, permissões e disponibilidade. O registro de origem fica intacto.
queued, running, succeeded, failed, expired. As mesmas cinco palavras descrevem todo endpoint de mídia, então a lógica de transição se escreve uma vez.
Antes de lançar
Perguntas frequentes
Modelos
Cada link abre a página daquela família de modelos: entradas, limites, política de conteúdo e o preço atual por unidade.
A seguir
Transforme uma imagem de referência em clipe. O que a qualidade do primeiro quadro, a proporção, os campos de movimento e a duração fazem.