API Hop

Dokumentacja

Dokumentacja API Hop

Generowanie wideo Seedance 2.5

Parametry Seedance 2.5 dla treści multimodalnej, generowanego dźwięku i ponownego użycia zadania próbnego.

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

Utwórz asynchroniczne zadanie Seedance 2.5. Dla Seedance 2.0 skorzystaj z oddzielnej dokumentacji parametrów.

Uwierzytelnianie

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

Treść żądania

modelstringWymagane

seedance-2.5.

promptstring

Prompt wideo. Wymagany przy generowaniu wyłącznie z tekstu; można go pominąć lub pozostawić pusty, gdy dostarczono referencje obrazowe/wideo. Pomiń go przy ponownym użyciu draft_task. Elementy tekstowe metadata.content są odrzucane; wiążący jest prompt na najwyższym poziomie.

durationnumberWartość domyślna: 5

Liczba całkowita od 4 do 30 lub -1 dla automatycznego czasu trwania. Natywne seconds przyjmuje równoważny ciąg znaków liczby całkowitej. Akceptowane jest także metadata.duration. Podane aliasy czasu trwania muszą być zgodne. Przy ponownym użyciu draft_task pomiń wszystkie ustawienia czasu trwania.

resolutionstringWartość domyślna: 720p

480p, 720p lub 1080p. Natywne size może określać rozdzielczość; metadata.resolution ma pierwszeństwo. 4k nie jest obsługiwane.

aspectRatiostringWartość domyślna: 16:9

16:9, 9:16, 1:1, 4:3, 3:4, 21:9 lub adaptive. Akceptowane są aspect_ratio, ratio i metadata.ratio. Istniejące wartości proporcji w size nadal są przyjmowane dla zgodności, ale wartość rozdzielczości w size oznacza rozdzielczość. Wejście pierwszej/ostatniej klatki wymaga adaptive; ta wartość jest wybierana, gdy podano role klatek bez jawnych proporcji.

metadataobject

Przyjmuje resolution, ratio, duration, content, generate_audio i output_format. Ustaw generate_audio na wartość logiczną dla generowanego dźwięku. generateAudio / generate_audio na najwyższym poziomie są aliasami; używaj tylko jednego ustawienia dźwięku.

imageUrlsstring[]

Obrazy referencyjne. images, imageUrl, image_urls i image_url są aliasami. Natywny skrót images używa pierwszych dwóch obrazów jako pierwszej/ostatniej klatki; imageUrls zachowuje semantykę obrazów referencyjnych.

imageWithRolesobject[]

Obrazy o określonych rolach z url i role: first_frame, last_frame lub reference_image. image_with_roles jest aliasem. Akceptowane jest także metadata.content z określonymi typami.

videoUrlsstring[]

Referencyjne wideo. videoUrl, video_urls i video_url są aliasami.

audioUrlsstring[]

Referencyjny dźwięk. audioUrl, audio_urls i audio_url są aliasami. Wymaga obrazu lub wideo w tym samym żądaniu.

outputFormatstringWartość domyślna: mp4

Tylko mp4. Akceptowane są output_format i metadata.output_format. mov i watermark nie są obsługiwane.

callback_urlstring

Opcjonalny natywny adres URL wywołania zwrotnego. Dostępność zależy od wybranego kanału; traktuj GET https://api.apihop.ai/v1/jobs/{jobId} jako wiążący wynik.

Treść multimodalna

Adresy multimediów mogą używać publicznych adresów URL HTTP(S) lub istniejących identyfikatorów asset://.

TypZagnieżdżone poleRole
image_urlimage_url.urlfirst_frame, last_frame, reference_image
video_urlvideo_url.urlreference_video
audio_urlaudio_url.urlreference_audio
draft_taskdraft_task.idBez roli; tylko ponowne użycie próbki

Akceptowanych jest do 30 obrazów, 10 plików wideo i 10 plików audio, maksymalnie 50 elementów multimedialnych łącznie, w skróconym zapisie i treści z określonym typem. Dźwięk wymaga obrazu lub wideo. Używaj prompt na najwyższym poziomie zamiast treści type: "text". Podawaj tylko jeden alias dla każdego ustawienia. Nieobsługiwane ustawienia są odrzucane. Pola najwyższego poziomu first_frame_url, last_frame_url, reference_image_urls, reference_video_urls i reference_audio_urls są skrótami dla określonych ról. Niewymienione pola wewnątrz elementów treści nie są przekazywane dalej.

Ponowne użycie zadania próbnego

draft_task jest dostępne wyłącznie w Seedance 2.5. Ponownie wykorzystuje istniejącą zgodną ukończoną próbkę; ta strona nie definiuje ustawień tworzenia próbek.

  • metadata.content musi zawierać dokładnie jeden element draft_task.
  • Preferuj jobId istniejącej próbki Synapse zapisany jako dziesiętny ciąg znaków w draft_task.id. Akceptowany jest także istniejący zapisany identyfikator platformy task_...; nie używaj surowego identyfikatora zadania dostawcy ani nie wymyślaj identyfikatora.
  • Próbka musi należeć do tego samego konta, używać tego samego modelu i kanału przetwarzania, być ukończona i utworzona mniej niż 7 dni temu.
  • Nie podawaj promptu, wejść obrazowych/wideo/audio, czasu trwania, proporcji, ziarna, generate_audio, formatu wyjściowego ani omni_reference_task_type. Ustawienia próbki są używane ponownie.
  • Można podać rozdzielczość wyjściową.

Kontrole zgodności i własności mogą odrzucić ponowne użycie nawet wtedy, gdy wskazane zadanie zakończyło się pomyślnie. Nie zakładaj, że każde zwykłe generowanie jest próbką nadającą się do ponownego użycia.

Przykłady żądań

Referencja multimodalna

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

Pierwsza i ostatnia klatka

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

Użyj ponownie istniejącej próbki

Zastąp EXISTING_SAMPLE_JOB_ID zwróconym jobId rzeczywistej, zgodnej i ukończonej próbki. Poniższy symbol zastępczy nie jest działającym identyfikatorem zadania.

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

Zgłoszenie i wynik

Pole data odpowiedzi zawiera jobId, status, model i message. Powodzenie zgłoszenia oznacza przyjęcie zadania, a nie jego zakończenie. Odpytuj GET https://api.apihop.ai/v1/jobs/{jobId} kluczem API tego samego konta. Zobacz pobieranie zadania asynchronicznego.

Gdy stan to COMPLETED, odczytaj data.outputResult. Akceptuj zarówno ciąg znaków, jak i tablicę jako wartość url w każdym obiekcie wyniku.