Introdução
Wan 3.0 Imagem para vídeo anima uma imagem estática que você fornece. image_url é usado exatamente como primeiro quadro, então figurino, corpo, cenário e direção da luz vêm da imagem, e o prompt só precisa descrever o movimento. O prompt é opcional; sem ele, o modelo anima o quadro por conta própria. Um last_image_url opcional fixa exatamente o último quadro. Os clipes têm de 2 a 30 segundos em 480p, 720p ou 1080p, com som gerado ligado por padrão. É o mais literal dos modos: quando o resultado precisa bater com o seu texto, deixe o visual na imagem e use o prompt para o movimento.
Escolha o modo pelo material inicial
| Material inicial | Modo |
|---|---|
| Um briefing escrito define cena, ação, câmera e, quando necessário, som. | Wan 3.0 Texto para vídeo |
| Uma imagem inicial aprovada fixa sujeito e composição; a instrução direciona o movimento seguinte. | Wan 3.0 Imagem para vídeo |
| Referências separadas podem orientar identidade, local, movimento ou som, com uma função clara para cada uma. | Wan 3.0 Referências para vídeo |
Recursos e destaques
O quadro inicial define o teto de qualidade
Como o primeiro quadro é a sua imagem, a nitidez, a iluminação e a composição dela são o limite máximo do clipe. São aceitos JPEG, PNG sem transparência, BMP ou WEBP, de 240 a 8000 pixels por lado, proporção não mais larga que 8:1 e no máximo 20 MB. Se você omitir aspect_ratio, o clipe herda o formato da imagem; uma proporção conflitante recorta o quadro.
Um quadro final fixado, não sugerido
last_image_url não é uma orientação vaga: o clipe termina exatamente nessa imagem, e o campo só funciona junto com image_url. O exemplo da garrafa envia o mesmo packshot nas duas pontas, então a garrafa gira um quarto de volta, um brilho percorre o vidro e ela volta ao ângulo inicial com o rótulo legível.
Trechos longos entre dois momentos fixos
Com as duas pontas definidas, só a passagem entre elas é gerada. O exemplo do terraço fixa uma posição de dança aberta como primeiro quadro e o ponto mais baixo de uma inclinação como último, e o modelo preenche os cinco segundos entre eles em 720p; as mesmas duas imagens podem delimitar um movimento bem mais longo, porque neste endpoint duration_seconds vai até 30.
Parâmetros da requisição
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
prompt | Não | Opcional: sem ele, o modelo anima o quadro de abertura por conta própria. Se escrever um, descreva o plano: sujeito, uma ação, um movimento de câmera, e então luz e som. pelo menos 1 caracteres |
image_url | Sim | O quadro de abertura, usado exatamente como primeiro quadro, e o verdadeiro teto de qualidade do plano. |
last_image_url | Não | Opcional, e só junto com |
aspect_ratio | Não | 16:9, 9:16, 1:1, 4:3, 3:4 ou adaptive, que deixa o modelo escolher. Deixe de fora e o clipe herda o formato do quadro de abertura; um valor conflitante corta. |
enable_thinking | Não | Faz o modelo analisar o pedido e o material de referência antes de gerar. Valor padrão: |
resolution | Não | 480p, 720p ou 1080p. Padrão 720p. |
duration_seconds | Não | Qualquer número inteiro de 2 a 30, ou -1 para duração inteligente, em que o modelo escolhe a duração: o máximo de 30 segundos é reservado de antemão e a cobrança fica na duração… |
generate_audio | Não | Ligado por padrão. O clipe volta com som já travado à imagem. Valor padrão: |
enable_prompt_expansion | Não | Desligada por padrão. Ligada, o prompt é reescrito antes da geração, o que ajuda briefings magros e briga com você nos detalhados. Valor padrão: |
seed | Não | De 0 a 2147483647. Mantenha fixo para comparar um campo alterado por vez; tire para ter variedade. |
Preços
| Especificação | Preço |
|---|---|
| $0.045 / segundo |
| $0.09 / segundo |
| $0.18 / segundo |
Casos de uso
Giros de produto que voltam ao ângulo principal
Para packshots, envie a imagem aprovada como primeiro e último quadro, trave a câmera e descreva um único movimento. O exemplo da garrafa usa uma luz principal suave vinda da esquerda, sem música (generate_audio em false) e uma semente fixa, 20260907, o que facilita repetir o mesmo movimento depois de uma pequena mudança no texto e comparar os dois arquivos.
Cenas produzidas que seguem o texto
Quando uma peça, um corpo ou um cenário precisa aparecer exatamente como foi aprovado, coloque-o no quadro inicial. O exemplo da janela parte de uma imagem de uma mulher de camisola de seda; o prompt descreve só o giro dela em direção à lente, uma cortina translúcida passando pela luz e uma aproximação lenta enquanto o amanhecer se fortalece. O clipe tem 5 segundos em 1080p, com som.
Guia de prompt e dicas práticas
Descreva o que muda, não o que aparece
Tudo o que já está no quadro é herdado; descrever de novo gasta palavras de que o movimento precisa. Diga quem ou o que se move, em que direção e com que velocidade, e depois o que a câmera faz: "The bottle rotates a quarter turn so the highlight travels across the glass, then returns to its starting angle. Locked camera, single soft key from the left, no music."
Prepare os dois quadros como um par
Ao adicionar last_image_url, faça as duas imagens com o mesmo enquadramento e no mesmo cenário, e deixe o prompt explicar como uma vira a outra. O exemplo do terraço junta um quadro inicial de um casal em posição de dança aberta a um quadro final do mesmo casal, no mesmo terraço e da mesma posição de câmera, no ponto mais baixo de uma inclinação, e o prompt descreve apenas o movimento entre eles: ele a puxa pela mão e a inclina para trás enquanto a câmera fica parada.
Confira o meio do clipe, não só as pontas
Um quadro final correto não prova uma transição convincente. Confira identidade e geometria no começo, no meio e no fim; se houver desvio, diminua o número de movimentos simultâneos antes de aumentar a duração. Acerte o movimento em 5 segundos, estenda depois e deixe enable_prompt_expansion no padrão false para que um briefing de movimento detalhado seja executado como foi escrito.
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": "alibaba/wan-3.0/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.



























