Vídeo e materiais
Criar Tarefa (Compatível com Volc)
Crie uma tarefa do Seedance com a API compatível com Volc.
Visão Geral
Clientes Seedance existentes no estilo Volc podem usar o TokenLab alterando o endereço da API e a chave.
Os exemplos usam Seedance 2.0. Este endpoint também oferece suporte ao Seedance 2.5, com as diferenças por modelo abaixo. Os exemplos de URI de materiais TokenLab reutilizáveis desta página se aplicam ao Seedance 2.0.
Veja também Modelos de Vídeo Seedance 2.0 e Geração de Vídeo.
Autenticação e Endpoints
- Use
Authorization: Bearer <TOKENLAB_API_KEY>. - A assinatura Volc AK/SK não é aceita. As solicitações devem incluir uma chave TokenLab Bearer.
- Use o caminho oficial da tarefa:
POST /api/v3/contents/generations/tasks.
Regras de Conteúdo
type: "text"é o texto do prompt.type: "image_url"semrole, ou comrole: "first_frame", é tratado como o primeiro quadro.role: "last_frame"deve ser pareado com um primeiro quadro.role: "reference_image",reference_videoereference_audiosão usados como referências.image_url.urlaceita uma URL de imagem pública ou um URI de material comoasset://asset-YYYYMMDDHHMMSS-xxxxx. Oroledetermina se esse material é um primeiro quadro, último quadro ou imagem de referência.- Não misture entradas de primeiro/último quadro com mídia de referência em uma única solicitação.
- Os campos de nível superior
material_asset_idematerial_asset_idssão rejeitados. Coloque o URI de material TokenLab emimage_url.url.priorityé aceito somente para Seedance 2.5.
Notas sobre Parâmetros
duration é um número inteiro de segundos; -1 seleciona a duração automática. Os padrões e limites dependem do modelo:
| Parâmetro | Seedance 2.0 | Seedance 2.5 |
|---|---|---|
duration | 4–15 / -1 (padrão: 5) | 4–30 / -1 (padrão: -1) |
resolution | 480p, 720p, 1080p (padrão: 720p) | 480p, 720p (padrão: 720p) |
generate_audio | boolean (padrão: false) | boolean (padrão: true) |
priority | Não suportado | integer: 0–9 |
seed | integer: -1–4294967295 (padrão: -1) | Não suportado |
No Seedance 2.5, solicitações de primeiro quadro, primeiro/último quadro, extensão de vídeo e vídeo para vídeo exigem ratio: "adaptive". Vídeo para vídeo também exige duration: -1. output_format aceita mp4 ou mov somente para Seedance 2.5.
ratioaceita16:9,4:3,1:1,3:4,9:16,21:9ouadaptive.watermark,return_last_frame,seed,execution_expires_afteresafety_identifiersão aceitos quando válidos para o modelo selecionado.callback_urlpode apontar para um endpoint HTTP(S) público.
Entrega de Callback
Quando callback_url está presente, o TokenLab envia um POST HTTP quando o status da tarefa muda. Os status de callback são queued, running, succeeded, failed e expired. O corpo JSON corresponde à resposta de get-task.
Uma resposta 2xx confirma o recebimento. Para succeeded e failed, uma entrega que não seja bem-sucedida em cinco segundos é tentada novamente até três vezes. O callback possui apenas o cabeçalho de conteúdo JSON padrão e nenhum cabeçalho de entrega específico do TokenLab. Redirecionamentos não são seguidos, e destinos de rede privados ou reservados são rejeitados.
Salve o ID da tarefa. Se um callback não for entregue, você ainda pode recuperar o resultado com o endpoint get-task.
Preparação de Imagem
URLs públicas de imagens HTTP(S) e URLs data compatíveis são usadas como fornecidas, sem serem salvas automaticamente como materiais reutilizáveis. Referências explícitas asset://asset-... usam materiais TokenLab existentes. A propriedade e a disponibilidade são verificadas antes da geração. Se um material ainda estiver em preparação, aguarde até ficar pronto e tente novamente. Em caso de falha, consulte error.code e error.message.
Para materiais existentes, use o ID público asset-YYYYMMDDHHMMSS-xxxxx em vez de um ID de ativo original retornado por outro sistema. O TokenLab verifica a propriedade do material antes da geração.
Resposta de Criação
{
"id": "cgt-20260102030405-a1b2c"
}A resposta de criação contém apenas o ID da tarefa. Salve-o para que você possa recuperar o status e os resultados a qualquer momento.
Prevenir Tarefas Duplicadas
Envie um Idempotency-Key exclusivo com as solicitações de criação. Se a conexão for encerrada antes que a resposta chegue, tente novamente com a mesma chave de API, chave de idempotência e corpo da solicitação:
- Se a tarefa original foi criada, o TokenLab retorna o mesmo ID
cgt-...e adicionaIdempotency-Replayed: true. - Se a solicitação original ainda estiver sendo registrada, TokenLab retorna
409 IdempotencyRequestInProgress. Tente novamente mais tarde com a mesma chave e o mesmo corpo. - Reutilizar a chave com um corpo diferente retorna
409 IdempotencyConflicte nunca cria uma segunda tarefa.
A idempotência se aplica ao caminho de criação REST v3 oficial. Ela não altera a forma da resposta JSON e não é inferida a partir de X-Request-ID ou de corpos de solicitação idênticos sem uma chave.
Exemplo
Criação REST
curl https://api.tokenlab.sh/api/v3/contents/generations/tasks \
-H "Authorization: Bearer $TOKENLAB_API_KEY" \
-H "Idempotency-Key: $CLIENT_JOB_ID" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2.0",
"content": [
{"type": "text", "text": "A cinematic forest at sunset"},
{"type": "image_url", "role": "reference_image", "image_url": {"url": "https://example.com/ref.png"}}
],
"ratio": "16:9",
"duration": 5,
"resolution": "720p",
"generate_audio": false,
"callback_url": "https://example.com/webhooks/seedance"
}'Para materiais existentes, coloque cada URI no item content[] oficial e declare sua função:
[
{
"type": "image_url",
"role": "first_frame",
"image_url": {"url": "asset://asset-20260720123458-start"}
},
{
"type": "image_url",
"role": "last_frame",
"image_url": {"url": "asset://asset-20260720123459-end01"}
}
]Próximo Passo
Use o ID cgt-... retornado com Obter Tarefa (Compatível com Volc) até que a tarefa atinja um status terminal.
curl -X POST "https://example.com/api/v3/contents/generations/tasks" \ -H "Content-Type: application/json" \ -d '{ "model": "doubao-seedance-2-0-260128", "content": [ { "type": "text", "text": "A cinematic forest at sunset" }, { "type": "image_url", "role": "reference_image", "image_url": { "url": "https://example.com/ref.png" } } ], "ratio": "16:9", "duration": 5, "resolution": "720p", "generate_audio": false }'{ "id": "string"}Autorização
BearerAuth Autenticação por Chave de API. Crie ou gerencie chaves de API em Dashboard > API > API Keys.
Local: header
Cabeçalhos
Política de entrega por solicitação. Substitui os padrões da API key e do Workspace. Tenta automaticamente o TokenLab Verified primeiro e pode alternar uma vez para Official apenas antes da saída, aceitação da solicitação ou criação de recurso persistente.
Valores permitidos
- "auto"
- "verified"
- "official"
Chave gerada pelo cliente para criação idempotente de tarefas REST. Sob a mesma credencial de API do TokenLab, reutilizar a mesma chave com o mesmo corpo JSON retorna o ID da tarefa cgt original; reutilizá-la com um corpo diferente retorna 409. Mantenha a credencial, a chave e o corpo da requisição inalterados ao tentar novamente após um timeout ou desconexão.
1 <= length <= 255Corpo da requisição
application/json
Resposta
application/json
application/json
application/json
application/json
application/json
application/json