Introdução
O Seedance 1.5 Pro Spicy imagem para vídeo transforma a imagem que você envia no primeiro quadro e a anima por até 12 segundos. Com camera_fixed ligado, a composição enviada é a composição do clipe inteiro.
O Seedance 1.5 Pro Spicy é a variante sem censura ajustada com LoRA da geração Seedance 1.5 Pro da ByteDance, publicada como um único endpoint de imagem para vídeo. image_url é o único campo obrigatório, e os clipes duram de 4 a 12 segundos em 480p, 720p ou 1080p, com som gerado na mesma passada.
Recursos e destaques
Um quadro travado deixa um movimento pequeno sustentar o clipe
Coloque camera_fixed em true e o quadro para por completo enquanto o sujeito continua se movendo dentro dele. Em cenas próximas e sem pressa, o que importa: uma câmera errante transforma um olhar sustentado em videoclipe, enquanto um quadro travado deixa uma respiração, um tornozelo que se move ou uma mão sobre um edredom carregar o clipe inteiro.
O que a imagem mostra já está no clipe
Figurino, pose, pele e exposição chegam com a imagem antes de o prompt ser lido. Por isso o trabalho guiado por imagem passa por briefings que uma página em branco não passaria, e uma imagem nítida e bem exposta vale mais que qualquer remendo posterior no prompt.
Limites firmes que vale conhecer
Esta geração vai até 1080p e doze segundos e não tem endpoint de referências. Se uma tomada precisar de 4K ou trinta segundos, o Seedance 2.5 Spicy chega lá, mas sem câmera travada. aspect_ratio usa adaptive por padrão e segue a proporção da sua imagem.
Parâmetros da requisição
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
image_url | Sim | Obrigatório, e o único campo obrigatório. |
prompt | Não | Opcional aqui e, com |
last_image_url | Não | Quadro de fechamento opcional. Ele decide a imagem em que o plano aterrissa: uma transição, um par antes/depois ou um loop que abre e fecha no mesmo still. |
aspect_ratio | Não | Enquadramento de saída, adaptive por padrão, que segue a proporção do quadro que você forneceu e poupa um recorte prévio. |
duration_seconds | Não | Duração do clipe finalizado em segundos inteiros, de 4 a 12, padrão 5, e a quantidade cobrada. |
resolution | Não | Resolução de saída: 480p, 720p por padrão, ou 1080p. |
generate_audio | Não | Se uma trilha nativa é renderizada em sincronia com a imagem. Vem ligada e move a requisição para uma faixa de preço mais alta. Valor padrão: |
camera_fixed | Não | Desligado por padrão. Ligado, a câmera fica parada e só o sujeito se move — um jeito mais confiável de conseguir um plano travado do que argumentar por um no prompt. Valor padrão: |
seed | Não | Seed inteiro; omita e cada execução sorteia o seu. Fixe com todo o resto constante para julgar o que uma edição de prompt realmente mudou. |
Preços
| Resolução | Gerar áudio: Não | Gerar áudio: Sim |
|---|---|---|
| $0.012 / segundo | $0.024 / segundo |
| $0.026 / segundo | $0.052 / segundo |
| $0.052 / segundo | $0.104 / segundo |
Casos de uso
Clipes em primeira pessoa e ponto de vista
Pés no fim da cama, uma mão no edredom, um olhar sustentado direto na lente: tomadas que só funcionam se a câmera se comporta como alguém deitado e imóvel. camera_fixed é o que torna isso possível, e não só aproximado.
Loops que não derivam
Envie a mesma imagem como image_url e last_image_url, ligue camera_fixed e limite o movimento a uma respiração ou a uma troca de peso. Um quadro travado com um movimento pequeno volta perto de onde começou, então o corte de volta ao início não aparece.
Um ajuste do cliente sem refilmar
Fixe o seed de uma tomada aprovada, mude um trecho, como a mão indo para a esquerda em vez da direita ou uma luz mais quente, e gere de novo. Com a câmera travada e o quadro definido, a segunda versão é claramente a mesma tomada.
Guia de prompt e dicas práticas
Componha o quadro inicial como uma tomada travada
Enquadre a imagem como quer o clipe inteiro, porque com camera_fixed é exatamente isso que você recebe. Deixe espaço para o sujeito se mover sem ajuda da câmera. Cada lado precisa ter entre 300 e 6000 pixels.
Todo verbo é do sujeito
Com a câmera travada, o prompt descreve só o movimento dentro do quadro: uma respiração, uma mão, um tornozelo, um olhar sustentado. Uma instrução de câmera e uma câmera travada se contradizem. A camada própria do Seedance ainda recusa uma faixa estreita de redação, principalmente o beijo, então coloque esse momento na imagem, não na frase.
Adapte o exemplo incluído
O exemplo publicado usa camera_fixed true, duration_seconds 5, generate_audio true e resolution 720p.
Camera stays locked off. Her crossed ankles rock slowly and one foot flexes. She slides one hand out from behind her head and rests it on her stomach, her fingers tracing a slow circle on the camisole, while her other hand stays tucked behind her head. Her chest rises with a long breath. Nothing else in frame moves except the light shifting on the sheets.
A imagem inicial fornece a composição e o figurino, camera_fixed mantém o quadro totalmente parado, e o prompt move apenas os tornozelos, a mão e a respiração dela.
Teste curto antes de pagar doze segundos
Uma tomada guiada por um único quadro deriva mais quanto mais dura, então confirme primeiro o movimento em 4 ou 5 segundos. generate_audio leva a solicitação para uma faixa de preço mais alta; desligue enquanto estiver só conferindo o enquadramento.
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": "bytedance/seedance-1.5-pro-spicy/image-to-video",
"input": {
"aspect_ratio": "adaptive",
"duration_seconds": 5,
"generate_audio": true,
"image_url": "https://example.com/reference.png",
"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.
















