APIMaster.ai

API de Geração de Vídeo Seedance 2.0 Fast

Parâmetros Seedance 2.0 Fast, mídia de referência, tarefas assíncronas, downloads autenticados e cobrança por duração no APIMaster.

Geração de vídeo Seedance 2.0 Fast

Use seedance-2.0-fast para texto-para-vídeo, imagem-para-vídeo, geração de primeiro/último quadro e referências de vídeo ou áudio. O Fast suporta 480p e 720p, com durações de saída de 4 a 15 segundos.

Para geração de primeiro/último quadro, defina explicitamente aspect_ratio: "adaptive". O áudio de referência deve acompanhar uma imagem ou vídeo. Mantenha sua chave de API do APIMaster em seu servidor.

Endpoints e autenticação

URL base: https://apimaster.ai/v1. Envie Authorization: Bearer YOUR_API_KEY ao enviar, consultar e baixar.

Operação Método e caminho
Criar vídeo POST /v1/videos/generations
Consultar resultado compatível GET /v1/video/generations/{task_id}
Consultar resultado estilo OpenAI GET /v1/videos/{task_id}
Baixar vídeo GET /v1/videos/{task_id}/content
Baixar último quadro solicitado GET /v1/videos/{task_id}/last-frame

Use o task_id público retornado pelo APIMaster. Tarefas de vídeo e tarefas de revisão de mídia são recursos diferentes: use os endpoints de consulta de vídeo acima para vídeos. Uma solicitação aceita cria uma tarefa assíncrona; sucesso HTTP não significa que o vídeo foi finalizado.

Parâmetros

Campo Tipo Obrigatório / padrão Descrição
model string Obrigatório seedance-2.0-fast
prompt string Obrigatório Até 4000 caracteres. Descreva o assunto, movimento, cena, câmera e áudio desejado; prompts concisos são mais fáceis de controlar.
duration integer 5 Duração da saída, 4–15 segundos. -1 não é suportado.
resolution string 720p 480p ou 720p; 1080p e 4k não são suportados.
aspect_ratio string 16:9 16:9, 9:16, 1:1, 4:3, 3:4, 21:9 ou adaptive.
ratio string Igual a aspect_ratio Apelido APIMaster. Se ambos aparecerem, seus valores devem coincidir.
size string Igual a aspect_ratio Uma proporção como 16:9 ou adaptive. Prefira aspect_ratio e resolution para expressar as duas dimensões separadamente. Especificações conflitantes retornam 400.
seed integer Omitido Controla a variação; seeds correspondentes não garantem saída idêntica.
generate_audio boolean true Gerar áudio acompanhante; use false para saída silenciosa.
image_urls string[] Omitido Até 9 imagens de referência. URLs públicas de imagens ou IDs de asset:// aprovados do APIMaster.
image_with_roles object[] Omitido Objetos de imagem com url e role; não podem aparecer junto com image_urls. Veja as regras de função abaixo.
video_urls string[] Omitido Até 3 vídeos de referência, com uma duração total de entrada faturável de no máximo 15 segundos. Veja os requisitos de material.
audio_urls string[] Omitido Até 3 arquivos de áudio de referência, duração combinada de no máximo 15 segundos. Requer referências de imagem ou vídeo.
return_last_frame boolean false Após conclusão bem-sucedida, retorna uma URL de download autenticada do APIMaster para o último quadro quando o resultado incluir um último quadro.
nsfw_check boolean false Solicitar moderação de conteúdo de texto/imagem antes da geração. Vídeos e áudio não são incluídos nesta passagem de moderação.
tools object[] Omitido Declaração de ferramenta de busca: [{"type":"web_search"}].

Geração de rascunho e upgrades de rascunho são exclusivos do Seedance 2.5. Não passe draft: true ou draft_task_id para este modelo.

Materiais de referência

Forneça URLs HTTPS publicamente acessíveis, ou IDs aprovados da sua biblioteca de mídia do APIMaster. Arquivos atrás de páginas de login ou que requerem seus próprios cabeçalhos de autorização não podem ser buscados. O upload bem-sucedido de uma imagem não implica aprovação do conteúdo ou conformidade com todos os requisitos do modelo.

Material Requisitos
Imagens de referência Até 9; use imagens JPEG/PNG RGB legíveis. O endpoint de upload de imagem do APIMaster tem seu próprio limite de 20 MiB e aceita JPEG, PNG, GIF e WebP.
Vídeos de referência Até 3; vídeo MP4/MOV, H.264/H.265; áudio AAC/MP3 quando presente. Use vídeo de referência de 480p–720p. A duração combinada da referência deve caber dentro de 15 segundos faturáveis. O APIMaster verifica a duração acessível do MP4/MOV antes de cobrar; as durações dos clipes de entrada são arredondadas para cima para segundos inteiros para esta verificação e faturamento.
Áudio de referência Até 3; WAV ou MP3, no máximo 20 MB por arquivo, duração combinada no máximo 15 segundos. Sempre acompanhe uma imagem ou vídeo de referência.

Use imagens claras com detalhes suficientes, evite arquivos corrompidos ou incompletos e mantenha o movimento do vídeo de referência consistente com seu prompt. A mídia pode falhar na revisão assíncrona de formato ou conteúdo mesmo quando a submissão é aceita.

Funções de imagem

role Significado
first_frame Quadro inicial; no máximo um
last_frame Quadro final; no máximo um, e requer um primeiro quadro
reference_image Imagem de referência, incluindo assets de personagem aprovados

Para tarefas de primeiro/último quadro, defina aspect_ratio como adaptive e omita video_urls e audio_urls. Use image_with_roles para funções explícitas; não passe também image_urls.

{
  "model": "seedance-2.0-fast",
  "prompt": "A paper boat drifts gently from the starting composition to the ending composition",
  "duration": 5,
  "resolution": "720p",
  "aspect_ratio": "adaptive",
  "image_with_roles": [
    {"url": "https://your-storage.example/start.png", "role": "first_frame"},
    {"url": "https://your-storage.example/end.png", "role": "last_frame"}
  ],
  "generate_audio": false
}

Uploads e biblioteca de mídia

Faça upload de uma imagem local com POST /v1/uploads/images usando o campo multipart file e autorização Bearer. O url de nível superior retornado pode ser usado como uma entrada de imagem pública.

curl "https://apimaster.ai/v1/uploads/images" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@reference.png"

Para materiais reutilizáveis ou de personagem, crie um grupo com POST /v1/seedance2/private-avatar/groups, submeta materiais com POST /v1/seedance2/private-avatar/assets, consulte a revisão com GET /v1/tasks/{asset_task_id} e use apenas assets com status Active como asset://{asset_id}. Esses recursos pertencem à sua conta. Especifique model: "seedance-2.0-fast" explicitamente. IDs de asset de outra plataforma ou conta não podem ser usados aqui.

Veja o fluxo de trabalho da biblioteca de mídia para criação, submissão, revisão, falhas parciais e exclusão. Os endpoints de upload e gerenciamento de assets são compartilhados; os limites de geração nesta página se aplicam ao Fast. Uma revisão falha pode não retornar um motivo detalhado; use material claro e compatível em um formato suportado e submeta uma nova revisão. Não recrie repetidamente uma tarefa enquanto uma revisão existente ainda está em processamento.

Submeta um vídeo

curl "https://apimaster.ai/v1/videos/generations" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model":"seedance-2.0-fast",
    "prompt":"A small paper boat on calm water at sunrise, gentle tracking shot",
    "duration":5,
    "resolution":"720p",
    "aspect_ratio":"16:9",
    "generate_audio":true,
    "return_last_frame":true
  }'

Resposta de criação:

{"code":200,"data":[{"status":"submitted","task_id":"task_PUBLIC_VIDEO_ID"}]}

Um timeout na submissão é ambíguo: a requisição pode ter sido aceita. Verifique seu histórico de tarefas antes de reenviar; outra submissão bem-sucedida cria uma tarefa faturada separada.

Referências de vídeo e áudio

{
  "model": "seedance-2.0-fast",
  "prompt": "Follow the reference motion and keep the scene consistent with the image",
  "duration": 5,
  "resolution": "720p",
  "aspect_ratio": "adaptive",
  "image_urls": ["https://your-storage.example/reference.png"],
  "video_urls": ["https://your-storage.example/reference.mp4"],
  "audio_urls": ["https://your-storage.example/reference.mp3"],
  "generate_audio": true
}

Consulta e download

Sondagem a cada 3 a 5 segundos. Pare quando for bem-sucedido ou falhar.

curl "https://apimaster.ai/v1/video/generations/task_PUBLIC_VIDEO_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"

Sucesso de consulta compatível:

{
  "code":"success",
  "message":"",
  "data":{
    "error":null,
    "format":"mp4",
    "metadata":null,
    "status":"succeeded",
    "task_id":"task_PUBLIC_VIDEO_ID",
    "url":"https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/content",
    "actual_time":118,
    "last_frame_url":"https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/last-frame"
  }
}

O exemplo inclui campos opcionais de conclusão. actual_time é o tempo decorrido desde o envio até a conclusão em segundos, não a duração faturável do vídeo. last_frame_url é omitido se um último quadro não foi solicitado ou não está disponível. Tarefas com falha não incluem os campos de tempo decorrido ou último quadro, que são apenas para sucesso.

Consulta estilo OpenAI:

curl "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"
Significado data.status compatível status estilo OpenAI
Aguardando queued queued
Gerando processing in_progress
Sucesso succeeded completed
Falha failed failed

O objeto no estilo OpenAI usa id para o ID público da tarefa e url para o URL de download do vídeo. Os campos opcionais actual_time e last_frame_url aparecem no nível superior. Em caso de falha, leia error.message no objeto de resultado correspondente. As respostas não incluem campos monetários.

Faça download com a chave de API da mesma conta. Abrir uma URL de resultado sem autorização é insuficiente. Salve a saída prontamente.

curl -L "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/content" \
  -H "Authorization: Bearer YOUR_API_KEY" -o output.mp4
curl -L "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/last-frame" \
  -H "Authorization: Bearer YOUR_API_KEY" -o last-frame.jpg

Fluxo de trabalho completo em Python

import os
import time
import requests

base = "https://apimaster.ai/v1"
headers = {"Authorization": f"Bearer {os.environ['APIMASTER_API_KEY']}"}
response = requests.post(base + "/videos/generations", headers=headers, json={
    "model": "seedance-2.0-fast",
    "prompt": "A small paper boat on calm water at sunrise",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "generate_audio": True,
    "return_last_frame": True,
}, timeout=90)
response.raise_for_status()
task_id = response.json()["data"][0]["task_id"]
for _ in range(240):
    response = requests.get(base + "/video/generations/" + task_id,
                            headers=headers, timeout=30)
    response.raise_for_status()
    task = response.json()["data"]
    if task["status"] == "failed":
        raise RuntimeError((task.get("error") or {}).get("message", "Video failed"))
    if task["status"] == "succeeded":
        print("Elapsed seconds:", task.get("actual_time"))
        for field, filename in [("url", "output.mp4"), ("last_frame_url", "last-frame.jpg")]:
            if task.get(field):
                with requests.get(task[field], headers=headers, stream=True, timeout=120) as result:
                    result.raise_for_status()
                    with open(filename, "wb") as out:
                        for chunk in result.iter_content(1024 * 1024):
                            out.write(chunk)
        break
    time.sleep(5)
else:
    raise TimeoutError("Task still processing; query the same task_id later")

Cobrança por duração

Existem quatro níveis: 480P, 720P, 480P-input e 720P-input. Um nível rotulado como "vídeos carregados" significa que a solicitação contém entrada de vídeo de referência. Selecione o nível de entrada para a resolução de saída solicitada, mesmo que referências de imagem/áudio também estejam presentes.

  • Sem vídeo de referência: segundos de vídeo gerados × o preço unitário da resolução correspondente.
  • Com vídeo de referência: (total de segundos do vídeo de referência + segundos de vídeo gerados) × o preço unitário do nível de entrada correspondente.
  • O preço unitário base configurado é multiplicado pelos coeficientes de canal e de conta/grupo aplicáveis para obter seu preço unitário final. Verifique o cartão do seu modelo e os registros de consumo da carteira para o preço aplicável.

Por exemplo, um vídeo de referência de 4 segundos e uma saída de 5 segundos usam 9 segundos faturáveis no nível de entrada. O preço unitário do nível de entrada pode diferir do nível regular; não calcule apenas a duração da saída ou aplique o nível regular às referências de vídeo. Imagens e áudio não adicionam segundos de vídeo de referência. O áudio gerado não introduz um nível separado de som/silêncio para esses quatro preços configurados.

O envio reserva a duração de saída solicitada, mais a duração verificada do vídeo de entrada quando presente. A duração de saída omitida reserva 5 segundos de saída. A tarefa mantém sua tarifa do momento do envio; a conclusão reconcilia a duração real. Uma geração com falha reembolsa a cobrança da tarefa de vídeo.

Erros e solução de problemas

Solicitações inválidas retornam um erro HTTP. Leia a mensagem de erro JSON, bem como o código de status. A validação de parâmetros usa o wrapper de erro do APIMaster, por exemplo:

{"code":"invalid_request","message":"First/last-frame tasks require adaptive aspect_ratio","data":null}
Problema Ação
Resolução / duração não suportada Escolha 480p ou 720p, e uma duração inteira de 4 a 15.
Proporção ou tamanho conflitante Use aspect_ratio, ratio, size e resolution consistentes; de preferência, mantenha apenas o par proporção/resolução explícito.
Restrições de primeiro/último quadro Use adaptive, no máximo um de cada função, e omita referências de vídeo/áudio.
Vídeo de referência não pode ser inspecionado Forneça um MP4/MOV completo e acessível com uma duração válida.
Áudio de referência sem imagem/vídeo Adicione referências de imagem/vídeo ou remova a referência de áudio.
Rejeição por moderação de conteúdo Modifique o texto ou a imagem e envie uma nova solicitação. Uma falha no serviço de moderação pode permitir que a geração continue; isso não é uma garantia absoluta de segurança.
FormatUnsupported / Rejeição assíncrona de formato/conteúdo Leia o error.message da tarefa com falha, verifique os formatos e requisitos de material e substitua a fonte.
401 Forneça uma chave de API Bearer válida.
Saldo insuficiente Recarregue ou use uma chave com cota suficiente.
429 / erro temporário do serviço Aguarde e tente novamente com backoff; evite envios duplicados após um tempo limite ambíguo.

Solicitações síncronas com parâmetros inválidos não criam tarefas de vídeo nem cobram pela geração. Tarefas aceitas ainda podem falhar de forma assíncrona; verifique o status final da tarefa antes de usar um resultado.

Veja também: Visão geral da geração de vídeo, Seedance 2.0, Seedance 2.0 Mini e Seedance 2.5.