API Hop

Documentação

Documentação do API Hop

Geração de vídeo Seedance 2.5

Parâmetros de conteúdo multimodal, áudio gerado e reutilização de tarefa de rascunho do Seedance 2.5.

POSThttps://api.apihop.ai/v1/video/seedance

Crie uma tarefa assíncrona Seedance 2.5. Para Seedance 2.0, use a referência separada de parâmetros.

Autenticação

http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Corpo da requisição

modelstringobrigatório

seedance-2.5.

promptstring

Prompt de vídeo. Obrigatório para geração somente por texto; pode ser omitido ou vazio quando há referências de imagem/vídeo. Omita-o ao reutilizar draft_task. Itens de texto em metadata.content são descartados; o prompt de nível superior é a referência.

durationnumberPadrão: 5

Inteiro de 4 a 30, ou -1 para duração automática. O campo nativo seconds aceita a string inteira equivalente. metadata.duration também é aceito. Os aliases de duração enviados devem coincidir. Omita todos os controles de duração ao reutilizar draft_task.

resolutionstringPadrão: 720p

480p, 720p ou 1080p. O campo nativo size pode especificar a resolução; metadata.resolution tem precedência. 4k não é suportado.

aspectRatiostringPadrão: 16:9

16:9, 9:16, 1:1, 4:3, 3:4, 21:9 ou adaptive. São aceitos aspect_ratio, ratio e metadata.ratio. Valores existentes de proporção em size continuam aceitos por compatibilidade, mas um valor de resolução em size significa resolução. Entrada de primeiro/último quadro exige adaptive, selecionado quando há papéis de quadro sem proporção explícita.

metadataobject

Aceita resolution, ratio, duration, content, generate_audio e output_format. Defina generate_audio como booleano para áudio gerado. Os campos de nível superior generateAudio / generate_audio são aliases; use apenas um controle de áudio.

imageUrlsstring[]

Imagens de referência. images, imageUrl, image_urls e image_url são aliases. A forma nativa abreviada images usa as duas primeiras imagens como primeiro/último quadro; imageUrls mantém a semântica de imagem de referência.

imageWithRolesobject[]

Imagens baseadas em papéis com url e role: first_frame, last_frame ou reference_image. image_with_roles é um alias. metadata.content tipado também é aceito.

videoUrlsstring[]

Vídeos de referência. videoUrl, video_urls e video_url são aliases.

audioUrlsstring[]

Áudio de referência. audioUrl, audio_urls e audio_url são aliases. Exige imagem ou vídeo na mesma requisição.

outputFormatstringPadrão: mp4

Somente mp4. output_format e metadata.output_format são aceitos. mov e watermark não são suportados.

callback_urlstring

URL de callback nativo opcional. A disponibilidade depende do canal escolhido; use GET https://api.apihop.ai/v1/jobs/{jobId} como resultado definitivo.

Conteúdo multimodal

URLs de mídia podem ser URLs HTTP(S) públicas ou identificadores asset:// existentes.

TipoCampo aninhadoPapéis
image_urlimage_url.urlfirst_frame, last_frame, reference_image
video_urlvideo_url.urlreference_video
audio_urlaudio_url.urlreference_audio
draft_taskdraft_task.idSem papel; apenas reutilização de amostra

São aceitos até 30 imagens, 10 vídeos e 10 arquivos de áudio, com no máximo 50 itens de mídia no total entre formas abreviadas e conteúdo tipado. Áudio exige imagem ou vídeo. Use prompt de nível superior em vez de conteúdo type: "text". Envie apenas um alias por configuração. Controles não suportados são rejeitados. Os campos de nível superior first_frame_url, last_frame_url, reference_image_urls, reference_video_urls e reference_audio_urls são formas abreviadas específicas de papel. Campos não listados nos itens de conteúdo não são encaminhados.

Reutilização de tarefa de rascunho

draft_task é exclusivo do Seedance 2.5. Reutiliza uma amostra existente compatível e concluída; esta página não define controles para criar amostras.

  • metadata.content deve conter exatamente um item draft_task.
  • Prefira o jobId da amostra existente, uma string decimal Synapse, como draft_task.id. Um identificador de plataforma task_... já registrado também é aceito; não use um ID bruto do provedor nem invente um identificador.
  • A amostra deve pertencer à mesma conta, usar o mesmo modelo e canal de processamento, estar concluída e ter sido criada há menos de 7 dias.
  • Não envie prompt, entradas de imagem/vídeo/áudio, duração, proporção, seed, generate_audio, formato de saída ou omni_reference_task_type. As configurações da amostra serão reutilizadas.
  • A resolução de saída pode ser informada.

As verificações de compatibilidade e propriedade podem rejeitar a reutilização mesmo quando a tarefa referenciada foi concluída com sucesso. Não presuma que toda geração normal seja uma amostra reutilizável.

Exemplos de requisição

Referência multimodal

json
{
  "model": "seedance-2.5",
  "prompt": "Keep the referenced character and camera movement in a coherent film",
  "seconds": "8",
  "size": "720p",
  "metadata": {
    "ratio": "16:9",
    "generate_audio": true,
    "content": [
      {"type": "image_url", "image_url": {"url": "https://example.com/character.png"}, "role": "reference_image"},
      {"type": "video_url", "video_url": {"url": "https://example.com/camera.mp4"}, "role": "reference_video"},
      {"type": "audio_url", "audio_url": {"url": "https://example.com/music.mp3"}, "role": "reference_audio"}
    ]
  }
}

Primeiro e último quadros

json
{
  "model": "seedance-2.5",
  "duration": 5,
  "metadata": {
    "ratio": "adaptive",
    "content": [
      {"type": "image_url", "image_url": {"url": "https://example.com/first.jpg"}, "role": "first_frame"},
      {"type": "image_url", "image_url": {"url": "https://example.com/last.jpg"}, "role": "last_frame"}
    ]
  }
}

Reutilizar amostra existente

Substitua EXISTING_SAMPLE_JOB_ID pelo jobId real retornado pela amostra compatível concluída. O marcador abaixo não é um identificador de tarefa utilizável.

json
{
  "model": "seedance-2.5",
  "metadata": {
    "resolution": "1080p",
    "content": [
      {"type": "draft_task", "draft_task": {"id": "EXISTING_SAMPLE_JOB_ID"}}
    ]
  }
}

Envio e resultado

O campo data da resposta contém jobId, status, model e message. Envio bem-sucedido significa que a tarefa foi aceita, não concluída. Consulte GET https://api.apihop.ai/v1/jobs/{jobId} com a chave de API da mesma conta. Veja Consultar tarefa assíncrona.

Quando o status for COMPLETED, leia data.outputResult. Aceite valores de string e de array para url em cada objeto de resultado.