API Hop

Dokumentacja

Dokumentacja API Hop

Generowanie wideo Seedance 2.0

Parametry Seedance 2.0 dla tekstu, pierwszej/ostatniej klatki, wejścia multimodalnego i generowania dźwięku.

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

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

Uwierzytelnianie

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

Treść żądania

modelstringWymagane

seedance-2.0 lub jego alias seedance-2-0.

promptstring

Prompt wideo. Wymagany przy generowaniu wyłącznie z tekstu; można go pominąć lub pozostawić pusty, gdy dostarczono referencje obrazowe lub wideo. Sam dźwięk nie jest prawidłowym wejściem. Elementy tekstowe w metadata.content są odrzucane; używany jest tylko ten prompt na najwyższym poziomie.

secondsstringWartość domyślna: 5

Ciąg znaków liczby całkowitej od "4" do "15". Akceptowany jest także liczbowy alias duration. Jeśli podano oba, muszą być zgodne. Automatyczny czas trwania (-1) nie jest obsługiwany.

sizestringWartość domyślna: 720p

Rozdzielczość wyniku: 480p, 720p, 1080p lub 4k. Nie są to proporcje. Kolejność pierwszeństwa rozdzielczości: metadata.resolution, size, następnie resolution.

aspectRatiostringWartość domyślna: 16:9

16:9, 9:16, 1:1, 4:3, 3:4, 21:9 lub adaptive. aspect_ratio i ratio są aliasami; metadata.ratio ma pierwszeństwo. Używaj jednego aliasu dla każdego ustawienia.

metadataobject

Przyjmuje resolution, ratio, content i generate_audio. Ustaw generate_audio na wartość logiczną, aby sterować generowanym dźwiękiem. generateAudio / generate_audio na najwyższym poziomie są aliasami; podaj tylko jedno ustawienie dźwięku.

imagesstring[]

Skrócony zapis obrazów: pierwszy obraz to pierwsza klatka, a drugi to ostatnia. Do precyzyjnego określenia ról używaj metadata.content. Istniejące aliasy imageUrls, imageUrl, image_urls i image_url nadal są akceptowane z tą samą semantyką klatek.

imageWithRolesobject[]

Obrazy z url i role: first_frame, last_frame lub reference_image. image_with_roles jest aliasem. Obie wersje przyjmują 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 referencji obrazowej lub wideo w tym samym żądaniu.

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

Każdy element multimedialny metadata.content zawiera odpowiadający mu zagnieżdżony obiekt URL. Adresy multimediów mogą używać publicznych adresów URL HTTP(S) lub istniejących identyfikatorów asset://.

TypPole URLRole
image_urlimage_url.urlfirst_frame, last_frame, reference_image
video_urlvideo_url.urlreference_video
audio_urlaudio_url.urlreference_audio

Akceptowanych jest do 9 obrazów, 3 plików wideo i 3 plików audio, łącznie ze skróconym zapisem i treścią z określonym typem. Dźwięk wymaga obrazu lub wideo. draft_task nie jest obsługiwane. Używaj prompt na najwyższym poziomie zamiast elementów treści type: "text". 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.

Nieobsługiwane ustawienia, takie jak negativePrompt, seed, returnLastFrame, nsfwCheck, tools, webhook, watermark, outputFormat i ich aliasy w formacie snake_case, są odrzucane. width, height, fps, cfgScale, steps i style nie są obsługiwane.

Przykłady żądań

Tekst na wideo

json
{
  "model": "seedance-2.0",
  "prompt": "A quiet city street at dawn, slow forward camera movement",
  "seconds": "5",
  "size": "720p",
  "metadata": {"ratio": "16:9", "generate_audio": true}
}

Pierwsza i ostatnia klatka

json
{
  "model": "seedance-2.0",
  "seconds": "5",
  "metadata": {
    "resolution": "720p",
    "ratio": "9:16",
    "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"}
    ]
  }
}

Referencje obrazowe i dźwiękowe

json
{
  "model": "seedance-2.0",
  "prompt": "Animate the scene to match the rhythm",
  "metadata": {
    "resolution": "720p",
    "generate_audio": true,
    "content": [
      {"type": "image_url", "image_url": {"url": "asset://existing-image-id"}, "role": "reference_image"},
      {"type": "audio_url", "audio_url": {"url": "https://example.com/beat.mp3"}, "role": "reference_audio"}
    ]
  }
}

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 url, jak i tablicę adresów URL w każdym obiekcie wyniku. Opłaty zależą od rzeczywistych tokenów wygenerowanego wyniku i rozdzielczości wyjściowej; referencje wideo wybierają stawkę wejścia wideo, a referencje obejmujące wyłącznie obraz/dźwięk tego nie robią.