API Hop

Documentazione

Documentazione API Hop

Generazione video Seedance 2.5

Parametri di contenuto multimodale, audio generato e riutilizzo di processi bozza di Seedance 2.5.

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

Crea un processo asincrono Seedance 2.5. Per Seedance 2.0 usa il riferimento separato dei parametri.

Autenticazione

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

Corpo della richiesta

modelstringobbligatorio

seedance-2.5.

promptstring

Prompt video. Obbligatorio per la generazione da solo testo; può essere omesso o vuoto quando si forniscono riferimenti immagine/video. Omettilo per il riutilizzo di draft_task. Gli elementi di testo in metadata.content vengono scartati; fa fede il prompt di primo livello.

durationnumberPredefinito: 5

Intero da 4 a 30, oppure -1 per durata automatica. Il campo nativo seconds accetta la stringa intera equivalente. È accettato anche metadata.duration. Gli alias di durata forniti devono coincidere. Ometti tutti i controlli di durata per il riutilizzo di draft_task.

resolutionstringPredefinito: 720p

480p, 720p o 1080p. Il campo nativo size può specificare la risoluzione; metadata.resolution ha la precedenza. 4k non è supportato.

aspectRatiostringPredefinito: 16:9

16:9, 9:16, 1:1, 4:3, 3:4, 21:9 o adaptive. Sono accettati aspect_ratio, ratio e metadata.ratio. I rapporti d’aspetto esistenti in size restano accettati per compatibilità, ma un valore di risoluzione in size indica la risoluzione. L’input del primo/ultimo fotogramma richiede adaptive, selezionato quando sono presenti ruoli dei fotogrammi senza un rapporto esplicito.

metadataobject

Accetta resolution, ratio, duration, content, generate_audio e output_format. Imposta generate_audio su un booleano per l’audio generato. I campi di primo livello generateAudio / generate_audio sono alias; usa un solo controllo audio.

imageUrlsstring[]

Immagini di riferimento. images, imageUrl, image_urls e image_url sono alias. La forma nativa abbreviata images usa le prime due immagini come primo/ultimo fotogramma; imageUrls mantiene la semantica di immagine di riferimento.

imageWithRolesobject[]

Immagini basate su ruoli con url e role: first_frame, last_frame o reference_image. image_with_roles è un alias. È accettato anche metadata.content tipizzato.

videoUrlsstring[]

Video di riferimento. videoUrl, video_urls e video_url sono alias.

audioUrlsstring[]

Audio di riferimento. audioUrl, audio_urls e audio_url sono alias. Richiede un’immagine o un video nella stessa richiesta.

outputFormatstringPredefinito: mp4

Solo mp4. Sono accettati output_format e metadata.output_format. mov e watermark non sono supportati.

callback_urlstring

URL di callback nativo opzionale. La disponibilità dipende dal canale scelto; usa GET https://api.apihop.ai/v1/jobs/{jobId} come risultato autorevole.

Contenuto multimodale

Gli URL multimediali possono essere URL HTTP(S) pubblici o identificatori asset:// esistenti.

TipoCampo annidatoRuoli
image_urlimage_url.urlfirst_frame, last_frame, reference_image
video_urlvideo_url.urlreference_video
audio_urlaudio_url.urlreference_audio
draft_taskdraft_task.idNessun ruolo; solo riutilizzo del campione

Tra forme abbreviate e contenuti tipizzati sono accettati fino a 30 immagini, 10 video e 10 file audio, per un massimo complessivo di 50 elementi multimediali. L’audio richiede un’immagine o un video. Usa prompt di primo livello invece di contenuti type: "text". Fornisci un solo alias per impostazione. I controlli non supportati vengono rifiutati. I campi di primo livello first_frame_url, last_frame_url, reference_image_urls, reference_video_urls e reference_audio_urls sono forme abbreviate specifiche per ruolo. I campi non elencati negli elementi di contenuto non vengono inoltrati.

Riutilizzo di processi bozza

draft_task è esclusivo di Seedance 2.5. Riutilizza un campione esistente compatibile e completato; questa pagina non definisce i controlli per creare campioni.

  • metadata.content deve contenere esattamente un elemento draft_task.
  • Preferisci il jobId del campione esistente, una stringa decimale Synapse, come draft_task.id. È accettato anche un identificatore di piattaforma task_... già registrato; non usare un ID grezzo del fornitore e non inventare identificatori.
  • Il campione deve appartenere allo stesso account, usare lo stesso modello e canale di elaborazione, essere completato ed essere stato creato meno di 7 giorni fa.
  • Non fornire prompt, input immagine/video/audio, durata, rapporto, seed, generate_audio, formato di output o omni_reference_task_type. Vengono riutilizzate le impostazioni del campione.
  • È possibile fornire la risoluzione di output.

I controlli di compatibilità e proprietà possono rifiutare il riutilizzo anche se il processo di riferimento è stato completato con successo. Non presumere che ogni generazione normale sia un campione riutilizzabile.

Esempi di richiesta

Riferimento multimodale

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"}
    ]
  }
}

Primo e ultimo fotogramma

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"}
    ]
  }
}

Riutilizzare un campione esistente

Sostituisci EXISTING_SAMPLE_JOB_ID con il jobId effettivamente restituito da un campione compatibile e completato. Il segnaposto sotto non è un identificatore di processo utilizzabile.

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

Invio e risultato

Il campo data della risposta contiene jobId, status, model e message. Un invio riuscito significa che il processo è stato accettato, non completato. Interroga GET https://api.apihop.ai/v1/jobs/{jobId} con la chiave API dello stesso account. Consulta Recuperare un processo asincrono.

Quando lo stato è COMPLETED, leggi data.outputResult. Accetta sia stringhe sia array per url in ogni oggetto risultato.