Introdução
LTX 2.5 Imagem para vídeo anima um quadro inicial enviado por você durante 5 a 20 segundos inteiros, em 720p, 1080p, 2K ou 4K. image_url e prompt são obrigatórios; last_image_url acrescenta um quadro final opcional, e duration_seconds, resolution e seed funcionam como no Texto para vídeo. Não existe campo aspect_ratio: o quadro inicial fixa sujeito e composição e define o formato da saída. Os clipes voltam com uma trilha sonora gerada e as tarefas rodam de forma assíncrona. Envie apenas imagens que você tem autorização para usar; o uso do resultado é responsabilidade sua.
Escolha o modo pelo material inicial
| Material inicial | Modo |
|---|---|
| Um briefing escrito define cena, ação, câmera e, quando necessário, som. | LTX 2.5 Texto para vídeo |
| Uma imagem inicial aprovada fixa sujeito e composição; a instrução direciona o movimento seguinte. | LTX 2.5 Imagem para vídeo |
Recursos e destaques
O quadro inicial é seguido de perto
Identidade, figurino, cenário e luz vêm de image_url, e esse quadro é seguido de perto. É o caminho confiável para um resultado literal: um quadro inicial sem censura volta literal, e não suavizado. Como a imagem já carrega o visual, o prompt só precisa descrever o que muda depois dela.
Um quadro opcional para onde o plano termina
last_image_url fixa a composição final e só vale junto com image_url. Ele restringe o final, não o caminho: o movimento entre os dois quadros continua sendo gerado e, num clipe longo, o meio pode se afastar bastante. Dois quadros que discordam em luz ou figurino produzem uma negociação visível entre eles, então prepare-os como um par contínuo.
A mesma duração, resolução e som do endpoint de texto
duration_seconds vai de 5 a 20 segundos inteiros, e clipes mais longos se afastam mais de um quadro final enviado. resolution oferece 720p (padrão), 1080p, 2k (cerca de 2560 px de largura) e 4k. A saída inclui uma faixa de áudio gerada sem campo para desativá-la; planeje silenciá-la ou substituí-la na edição quando precisar da sua própria mixagem.
Parâmetros da requisição
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
prompt | Sim | Obrigatório. Descreva o que muda depois do quadro — ação, câmera, luz — e não o quadro em si. pelo menos 1 caracteres |
image_url | Sim | O quadro de abertura. Ele fixa sujeito e composição e define o formato de saída. |
last_image_url | Não | Quadro de fechamento opcional, válido só junto com |
resolution | Não | 720p, 1080p, 2k ou 4k. O 2k sai com cerca de 2560 px de largura. |
duration_seconds | Não | Segundos inteiros, de 5 a 20. Clipes mais longos se afastam mais de um quadro final fornecido. |
seed | Não | Mantenha constante ao subir a resolução, para só uma variável ter mudado. |
Preços
| Especificação | Preço |
|---|---|
| $0.09 / segundo |
| $0.13 / segundo |
| $0.19 / segundo |
| $0.30 / segundo |
Casos de uso
Uma mudança de horário entre dois quadros aprovados
No exemplo beach-to-bonfire, image_url mostra um casal na praia ao pôr do sol e last_image_url os mesmos dois à noite, enrolados num cobertor perto de uma fogueira. A solicitação dura 10 segundos em 1080p, e o prompt descreve a passagem, não o destino: o sol se pondo e a luz do fogo assumindo. Fixar o final deixa o modelo inventar o meio sem ultrapassar um quadro que já foi aprovado.
De um quadro do storyboard ao outro, para a edição
Quando um plano precisa começar num quadro do storyboard e terminar em outro, envie os dois como image_url e last_image_url. A composição de saída então casa com o corte seguinte, e é isso que torna um clipe gerado utilizável numa timeline, e não só como peça avulsa.
Movimento para uma imagem pronta
O quadro de candlelit-tub já contém as velas, o esmalte e a seda esmeralda molhada, então o prompt cobre só a mudança: afundar na água, passar as mãos pelo cabelo encharcado, abrir os olhos para a câmera. Já o exemplo deco-pool-backfall é um momento físico: uma queda de costas na água, bolhas subindo e reflexos que percorrem as colunas enquanto a câmera afunda junto.
Guia de prompt e dicas práticas
Descreva o que muda, não o que já está lá
Tudo o que aparece no quadro inicial é definido pela imagem. Use o prompt para dizer quem se move, em que direção e em que ritmo, e depois a câmera e as mudanças de luz. O prompt de candlelit-tub começa pela primeira ação ("She pushes up off the rim of the tub") e termina em "Slow drift-in, warm candle light only".
Diga onde o plano pousa quando enviar um quadro final
Com last_image_url, deixe claro no prompt que o plano termina no quadro final enviado e descreva o que acontece no caminho. O briefing da fogueira faz exatamente isso: "Begin on the two of them on the beach at sunset and end on the supplied final frame". Alinhe sujeito, figurino e luz entre as duas imagens antes de escrever qualquer coisa.
Ajuste a duração à distância percorrida
Os exemplos de ação única duram 5 segundos; a transição do pôr do sol para a noite usa 10. Comece com um clipe curto e revise sujeito, bordas, luz e continuidade de câmera na saída inteira antes de alongar. Percorra quadro a quadro as tomadas com água, como o exemplo da piscina, porque é na água que uma imagem animada costuma desmontar.
Dirija o som e trave a seed
Como o áudio é sempre gerado, escreva o som no prompt: o briefing da piscina pede "no music, only muffled underwater tone". Com o movimento certo, mantenha seed e o prompt iguais e suba só resolution. A seed torna as passadas comparáveis, não idênticas quadro a quadro, então confira de novo o render final em resolução total.
Início rápido da API
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "lightricks/ltx-2.5/image-to-video",
"input": {
"duration_seconds": 5,
"image_url": "https://example.com/reference.png",
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "720p"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
Consulte a referência da API para autenticação, esquema completo, polling e tratamento de erros.












