Introdução
O Seedance 2.0 Mini imagem para vídeo começa o clipe numa imagem que você fornece e a anima por até 15 segundos. Adicione uma imagem final e a tomada precisa chegar a ela, o que torna as transições repetíveis.
O Seedance 2.0 Mini é o menor nível da linha Seedance 2.0 da ByteDance. Ele publica os mesmos três endpoints do Seedance 2.0 Fast e devolve clipes de 4 a 15 segundos em 480p ou 720p, com áudio gerado na mesma passada.
Escolha o modo do Seedance 2.0 Mini pelo material inicial
| Material inicial | Modo |
|---|---|
| Um roteiro ou a descrição de uma cena | Seedance 2.0 Mini Texto para vídeo |
| Uma imagem inicial aprovada | Seedance 2.0 Mini Imagem para vídeo |
| Referências separadas de aparência, movimento ou áudio | Seedance 2.0 Mini Referências para vídeo |
Recursos e destaques
O mesmo contrato do Seedance 2.0 Fast
O Mini publica os mesmos endpoints e campos do Seedance 2.0 Fast: formato adaptativo mais seis proporções fixas, de 4 a 15 segundos ou -1 para o modelo escolher a duração, áudio nativo e seed, com resolução limitada a 720p. Um pipeline escrito para o Mini passa para o Fast trocando o id do modelo, não a solicitação.
Feito para volume
O Mini é o nível certo quando vazão importa mais que a qualidade extra dos modelos Seedance 2.0 maiores. Todos os endpoints são assíncronos: envie um Idempotency-Key em cada solicitação, guarde os ids das tarefas e deixe o polling ou os callbacks resolverem. A chave vale por 24 horas, então uma nova tentativa depois de uma conexão caída devolve a tarefa original.
Sequências mais longas com a extensão de vídeo
Para passar de quinze segundos, envie um clipe pronto ao endpoint video-extend: o último quadro dele abre uma nova tomada do Seedance 2.0 Mini e você recebe um único arquivo com as duas partes unidas. Cada passo cobra só os segundos que acrescenta, e o resultado unido pode ser estendido de novo.
Parâmetros da requisição
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
prompt | Não | Opcional, mas vale escrever: diga o que acontece depois do quadro em vez de repetir o que já está visível — a ação, o movimento de câmera, a passagem do tempo, o som. pelo menos 1 caracteres |
image_url | Sim | Link público e diretamente baixável para o primeiro quadro; obrigatório. |
last_image_url | Não | Quadro final opcional. Ele define a imagem em que a tomada termina: uma transição, um antes e depois, ou um loop que abre e fecha na mesma imagem. |
aspect_ratio | Não | Enquadramento de saída, adaptive por padrão: o clipe mantém as proporções do seu quadro inicial, então nada é cortado. |
resolution | Não | Resolução de saída: 480p ou 720p por padrão. Ela seleciona uma faixa de preço e governa só o formato entregue — não acrescenta detalhe que o primeiro quadro já não tenha. |
duration_seconds | Não | Duração do clipe final em segundos inteiros, de 4 a 15, padrão 5, e a quantidade cobrada; com -1 o modelo escolhe e a estimativa considera 15 segundos. |
generate_audio | Não | Se uma trilha nativa é renderizada em sincronia com a imagem. Vem ligada; desligar não reduz a tarifa nesta versão. Valor padrão: |
enable_web_search | Não | Desligado por padrão. Quando ligado, o modelo pode buscar na web informações relacionadas ao seu prompt antes de renderizar. 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. |
return_last_frame | Não | Devolve também o último quadro do clipe como imagem separada, junto com o vídeo. Valor padrão: |
bitrate_mode | Não | Taxa de bits do arquivo entregue: |
watermark | Não | Adiciona ao vídeo a marca-d’água visível “AI generated” do próprio modelo. Valor padrão: |
Preços
| Especificação | Preço |
|---|---|
| $0.0246078 / segundo |
| $0.05292 / segundo |
| $0.036 / segundo |
| $0.072 / segundo |
Casos de uso
Fotos de catálogo em movimento
Uma foto chapada de produto ou de gôndola vira alguns segundos de movimento sem refazer a sessão. O exemplo publicado repõe uma prateleira refrigerada lata por lata em quatro segundos, com a câmera parada, pequenos tilintares e o zumbido do refrigerador.
Um time-lapse entre dois quadros
Com last_image_url, o clipe precisa chegar à imagem final. Um dos exemplos leva a mesma alameda do fim do verão ao auge do outono em dez segundos, câmera parada, sem cortes.
Cenas que o filtro de texto recusaria
O quadro inicial carrega o conteúdo, então o prompt só descreve o movimento. Quando a camada própria do Seedance recusa uma cena escrita como texto, conduzi-la a partir de um primeiro quadro é o jeito de chegar lá.
Guia de prompt e dicas práticas
Prepare o quadro inicial
image_url é obrigatório e define composição, visual e teto de qualidade; cada lado precisa ter entre 300 e 6000 pixels. Remova antes textos, marcas d'água e logotipos, porque eles passam para o vídeo.
Diga o que muda, não o que está lá
O prompt é opcional. Descreva a ação, o movimento de câmera e o som que vêm depois do quadro; sem prompt, o modelo decide o movimento. Confirme o movimento em 4 ou 5 segundos antes de pagar por 15, porque uma tomada de um só quadro deriva mais quanto mais dura.
Adapte o exemplo incluído
O exemplo publicado usa aspect_ratio 16:9, duration_seconds 4, generate_audio true e resolution 720p, com a foto de uma prateleira como image_url.
A gloved hand enters from the right and fills the gap in the upper row can by can, facing each label forward, then withdraws. Camera locked off on the shelf. Small metallic clinks, chiller hum, fluorescent light unchanged throughout.
Quatro segundos bastam para uma ação clara com câmera parada. Troque pela foto do seu produto e mantenha um único movimento.
Dê à imagem final o mesmo formato
last_image_url precisa das mesmas proporções do quadro inicial; se não, é cortada para combinar. Mantenha câmera e luz estáveis entre os dois quadros e mude um único estado claro, como a estação do ano no exemplo da alameda.
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-2.0-mini/image-to-video",
"input": {
"aspect_ratio": "adaptive",
"bitrate_mode": "standard",
"duration_seconds": 5,
"enable_web_search": false,
"generate_audio": true,
"image_url": "https://example.com/reference.png"
}
}'
# 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.
















