Introdução
O Vidu Q3 Pro é o nível Pro da linha de vídeo Q3 da Vidu e está disponível como um único endpoint de imagem para vídeo. Você envia um quadro inicial em image_url e uma instrução em prompt, ambos obrigatórios, e recebe de 1 a 16 segundos inteiros de vídeo em 540p, com áudio gerado na mesma passada. O quadro define o sujeito, o visual e o formato da saída; não há campo de proporção, e a proporção da própria imagem precisa ficar entre 1:4 e 4:1. Assim, o prompt só precisa descrever o que se move.
Recursos e destaques
Uma resolução só: você decide apenas a duração
resolution aceita um único valor, 540p, e todo clipe volta nesse tamanho. Sobra duration_seconds – qualquer número inteiro de 1 a 16, com padrão 5 – como o ajuste que muda ao mesmo tempo a duração do clipe e o preço, e a estimativa ao vivo acompanha conforme você mexe nele.
A identidade vem da imagem
Sujeito, figurino, enquadramento e formato de saída são definidos pela imagem, não pelo prompt. Duas gerações a partir do mesmo quadro diferem no movimento, não em quem aparece na tela, e é isso que permite montar juntos vários clipes feitos de uma única imagem. Também significa que a solicitação de vídeo não consegue reescrever nada do que foi aprovado na etapa da imagem.
Escreva o movimento e depois defina quanto
movement_amplitude define a quantidade geral de movimento – auto por padrão, ou small, medium, large – e o prompt diz o que se mexe e como. Quando uma tomada se mexe demais ou de menos, mantenha seed e o quadro fixos e reescreva só o movimento – um giro menor, uma caminhada mais lenta – para que a diferença que você vê venha dessa única edição e não de um sorteio novo.
Parâmetros da requisição
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
image_url | Sim | Obrigatório. O quadro de abertura: fixa sujeito, aparência e formato de saída. |
prompt | Sim | Obrigatório. Descreva o movimento, a câmera e o som depois do quadro; não redescreva a imagem. pelo menos 1 caracteres |
movement_amplitude | Não | Quanto as coisas no quadro se mexem: |
duration_seconds | Não | Segundos inteiros, de 1 a 16. |
resolution | Não | Apenas 540p neste endpoint. É o único valor aceito, então todo clipe volta nesse tamanho. |
generate_audio | Não | Ligado por padrão. Ponha false para um clipe mudo. Valor padrão: |
bgm | Não | Adiciona uma trilha de fundo que combina com o clima da cena. Ligado por padrão; desligue quando o clipe for para baixo da sua própria música ou precisar levar só o som da cena. Valor padrão: |
seed | Não | Para comparações controladas entre duas execuções. |
Preços
| Especificação | Preço |
|---|---|
| $0.054 / segundo |
Casos de uso
Séries de reação de um personagem
Um quadro com figurino vira uma piscadela, um aceno, uma inclinação de cabeça e um giro: quatro solicitações com a mesma imagem e quatro prompts diferentes. Como a identidade é fixada pelo quadro, a série se monta sem ninguém mudar de um clipe para o outro.
Ação próxima e ritmada
O exemplo da forja fica seis segundos colado no peito e nos antebraços de um ferreiro, iluminados de baixo pelo fogo, com faíscas a cada golpe de martelo. Impactos repetidos são um bom teste para este endpoint: as faíscas precisam cair nos golpes, e não entre eles.
Entregas verticais
Exporte a imagem em 9:16 e o clipe volta na vertical. No exemplo da passagem subterrânea, o prompt carrega só a caminhada em direção à lente sob as luminárias e uma câmera que recua no ritmo dela; o enquadramento vertical foi decidido na etapa da imagem.
Cenas sem censura a partir do seu próprio quadro
A sua imagem é animada como foi enviada, sem ser suavizada, e como a imagem carrega o conteúdo, o resultado fica próximo do que foi aprovado. O Vidu Q3 Spicy, da mesma linha, é a variante sem censura ajustada com LoRA.
Guia de prompt e dicas práticas
Exporte a imagem no formato de que você precisa
A saída segue o quadro: um clipe vertical começa de uma imagem vertical, um quadrado de uma imagem quadrada, e a proporção precisa ficar entre 1:4 e 4:1. Defina também figurino, styling e composição na etapa da imagem, porque a solicitação de vídeo não vai mudá-los.
Escreva só o que se move
Limite o prompt ao gesto, à câmera e ao som, sem descrever a imagem de novo. O exemplo publicado tem 8 segundos em 540p com generate_audio ligado, a partir de um quadro desenhado de um palco; a instrução inteira tem duas frases.
She lowers the microphone, tilts her head and winks at the crowd; glowsticks sway out of focus behind her. Slow dolly-in, haze catching the backlight, crowd roar swelling.
Oito segundos a partir de um único quadro desenhado de um palco. O prompt carrega a piscadela, o dolly-in e o rugido da plateia; o figurino e o traço vêm da imagem.
Escreva o som na instrução
generate_audio vem como true por padrão e a trilha é gerada com a imagem, então cite os sons que você quer ao lado da ação a que pertencem: o exemplo do palco pede que o rugido da plateia cresça conforme a câmera se aproxima. Mude o campo para false quando o corte for entrar embaixo de uma mixagem que você já tem. A música de fundo tem uma chave própria, bgm, ligada por padrão; desligue quando quiser só o som da cena.
Compare tomadas com um seed fixo
Mantenha o quadro e seed fixos enquanto muda uma única frase do prompt, e duas gerações vão diferir só por essa edição. O seed deixa as gerações comparáveis; ele não garante quadros idênticos. Se o sujeito precisar de outra aparência, troque a imagem em vez do prompt: neste endpoint, quem aparece na tela é decidido pela imagem, não pelo texto.
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": "vidu/q3-pro/image-to-video",
"input": {
"duration_seconds": 5,
"image_url": "https://example.com/reference.png",
"movement_amplitude": "auto",
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "540p"
}
}'
# 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.







