ByteDance: Seedance 2.0 Fast
Seedance 2.0 Fast to multimodalny profil Fast do generowania, edycji i przedłużania wideo. Przyjmuje tekst, obrazy, wideo i odniesienia dźwiękowe, obsługuje wyjście ze zsynchronizowanym dźwiękiem lub nieme i dokumentuje klipy 4–15 sekund w 480p lub 720p.
O modelu
Ten opis przedstawia możliwości modelu. Dane wejściowe, wyniki i opcje dostępne w Ailoot podano poniżej dla wybranej metody.
Seedance 2.0 Fast to osobno nazwany profil Fast, wybierany przez doubao-seedance-2-0-fast-260128. Obsługuje generowanie, edycję i przedłużanie wideo z użyciem tekstu, obrazów, wideo i odniesień dźwiękowych. Profil przydaje się, gdy opis sceny wymaga czegoś więcej niż opisu wyglądu: istniejące media mogą również przekazywać wykonanie, język kamery i dźwięk. Nazwa Fast odróżnia tożsamość żądania; nie obiecuje, że pojedyncze zadanie asynchroniczne zakończy się w ustalonym czasie.
Zacznij od elementu, który powinien określać nowe ujęcie. Sam tekst może opisywać nową scenę. Obraz może ustalać postać, produkt lub kompozycję; wideo dostarczać ruchu lub istniejącej sekwencji do zmiany albo kontynuacji. Udokumentowane kombinacje treści obejmują obrazy z dźwiękiem, wideo z dźwiękiem oraz obrazy, wideo i dźwięk razem, z opcjonalnym tekstem obok mediów wizualnych. Kombinacje te nie opisują samodzielnego żądania zawierającego tylko dźwięk, więc połącz odniesienia dźwiękowe ze źródłem wizualnym, którym mają kierować.
Jawnie określ role odniesień w tablicy content i w opisie. Elementy image_url, video_url i audio_url mogą zawierać role reference_image, reference_video i reference_audio. Opisz, który obraz dostarcza obiektu, które wideo określa kamerę lub działanie i które audio dostarcza ścieżki dźwiękowej. W ujęciu produktowym obraz może definiować opakowanie, a wideo ilustrować ruch obok przedmiotu. Określ pożądane zakończenie, aby krótka sekwencja miała przydatny widok końcowy, zamiast zatrzymywać się w połowie działania.
Dla edycji wskaż materiał źródłowy, zmianę i ciągłość do zachowania. Zmiana tła lub oświetlenia powinna pozostawiać jasno określony zamierzony obiekt i działanie. Dla przedłużenia wyjaśnij, co wydarzy się dalej i jak nowy ruch łączy się z istniejącą sceną. Odniesienia kierują generowaniem; sprawdź rzeczywiste połączenie i cały klip pod kątem wyglądu, kierunku ruchu i czasu, zamiast zakładać, że kontynuacja zachowuje każdy szczegół na poziomie klatek.
Udokumentowany zakres 2.0 Fast to cztery do piętnastu pełnych sekund, z -1 dostępnym dla długości wybranej przez model w tym zakresie. Domyślna długość wynosi pięć sekund. Rozdzielczość wyjścia to 480p lub 720p, z 720p jako wartością domyślną i wykluczonym 1080p. Wybierz stałe proporcje 16:9, 4:3, 1:1, 3:4, 9:16 i 21:9 albo kadrowanie adaptive. Kadrowanie adaptive podąża za istotnym kontekstem promptu lub odniesienia; ujęcie z pierwszej klatki podąża za obrazem otwierającym, a kadrowanie multimodalne może dawać pierwszeństwo wideo przed obrazami. Odczytaj zwrócone pola zadania, aby ustalić rzeczywistą długość i proporcje.
Użyj generate_audio, aby wybrać, czy generowane wideo ma zawierać zsynchronizowany dźwięk. Udokumentowaną wartością domyślną jest true; false żąda ciszy. Przy włączonym dźwięku profil generuje głosy, efekty lub muzykę tła z promptu i zawartości wizualnej, a poradnik zaleca zamykanie dialogu w podwójnym cudzysłowie. Określ mówiącego i zamierzoną relację między dźwiękiem a działaniem. Sprawdź mowę z osobą biegle znającą język i skontroluj zgodność dźwięku przez cały klip, w tym zmieniony lub przedłużony fragment.
Poradnik 2.0 Fast wyklucza starsze ustawienia frames i camera_fixed oraz nie obsługuje przetwarzania offline flex. Opisz zachowanie kamery w scenie i użyj duration do długości klipu. Opcje ziarna i znaku wodnego pozostają udokumentowane. To samo ziarno nie gwarantuje identycznego wyjścia, więc zachowaj ukończony artefakt przy porównywaniu poprawek zamiast polegać wyłącznie na ustawieniach żądania.
Zużycie tokenów wideo oblicza się jako (długość wideo wejściowego + długość wideo wyjściowego) × szerokość wyjściowa × wysokość wyjściowa × liczba klatek na sekundę wyjścia / 1024. Żądania zawierające wideo wejściowe i te bez wideo wejściowego mają odrębne kategorie rozliczeniowe. Zapytanie o zadanie raportuje usage.completion_tokens i usage.total_tokens; zachowaj te zgłoszone wielkości razem z ukończonym klipem.
Wysłanie żądania zwraca identyfikator zadania, zanim ukończone wideo będzie dostępne. Śledź stan przetwarzania, a po sukcesie pobierz content.video_url i zachowaj raportowaną długość, rozdzielczość, proporcje, liczbę klatek na sekundę oraz zużycie razem z wynikiem. Okres wygaśnięcia jest liczony od utworzenia zadania, domyślnie wynosi 172800 sekund i ma zakres od 3600 do 259200 sekund. Zapisz końcowy klip z odniesieniami i promptem, a następnie sprawdź tożsamość obiektu, kontakt między przedmiotami, ciągłość kamery i czas dźwięku przez całą sekwencję.
Ailoot Ultra · Wideo POST /v1/videos doubao-seedance-2-0-fast-260128
doubao-seedance-2-0-fast-260128
doubao-seedance-2-0-fast-260128Start
Seedance 2.0 Fast to multimodalny profil Fast do generowania, edycji i przedłużania wideo. Przyjmuje tekst, obrazy, wideo i odniesienia dźwiękowe, obsługuje wyjście ze zsynchronizowanym dźwiękiem lub nieme i dokumentuje klipy 4–15 sekund w 480p lub 720p.
- Akceptowane dane wejściowe
- Tekst · Obrazy · Wideo · Audio
- Wyniki
- Wideo
Dostępne w Ailoot · dane wejściowe i metody
Ailoot Ultra · Wideo POST /v1/videos
- Wejście
text,image,video,audio- Wyjście
video
| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
|---|---|---|---|---|
Polemodel | Typstring | WymaganieWymagane | Wartości i limity doubao-seedance-2-0-fast-260128 | Domyślnie— |
Polecontent | Typarray | WymaganieWymagane | Wartości i limity Warunki: Natywne obiekty tekstowe i multimedialne; zewnętrzna tablica musi być niepusta. Ten ogólny konstruktor Ailoot nie weryfikuje typów zagnieżdżonych węzłów. | Domyślnie— |
Polegenerate_audio | Typboolean | WymaganieOpcjonalne | Wartości i limity Warunki: Zsynchronizowany dźwięk osadzony w wideo. | Domyślnietrue |
Poleduration | Typinteger | WymaganieOpcjonalne | Wartości i limity Warunki: Liczba całkowita 4–15 lub -1; rzeczywisty czas trwania jest zwracany w wyniku. | Domyślnie5 |
Poleresolution | Typstring | WymaganieOpcjonalne | Wartości i limity 480p, 720p Warunki: 1080p jest wyraźnie nieobsługiwane w 2.0/fast. | Domyślnie720p |
Poleratio | Typstring | WymaganieOpcjonalne | Wartości i limity 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive Warunki: Adaptive ma wyraźnie określony zakres 2.0/fast/1.5; przykład dla 2.5 używa wyłącznie 16:9. | Domyślnieadaptive |
Polewatermark | Typboolean | WymaganieOpcjonalne | Wartości i limity | Domyślniefalse |
Poleseed | Typinteger | WymaganieOpcjonalne | Wartości i limity Minimum: -1 Maksimum: 4 294 967 295 | Domyślnie-1 |
Poleexecution_expires_after | Typinteger | WymaganieOpcjonalne | Wartości i limity Minimum: 3600 Maksimum: 259 200 Jednostka: sekundy | Domyślnie172 800 |
Poleservice_tier | Typstring | WymaganieOpcjonalne | Wartości i limity default Warunki: 2.0/fast wykluczają tryb offline flex; zakres dla 2.5 nie został ustalony. | Domyślniedefault |
Polesafety_identifier | Typstring | WymaganieOpcjonalne | Wartości i limity | Domyślnie— |
Poletools | Typobject | WymaganieOpcjonalne | Wartości i limity Warunki: Wyłącznie 2.0/fast; udokumentowane type=web_search. | Domyślnie— |
Kombinacje materiałów wejściowych
Parametry i cykl życia metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktcontent, model |
Parametroptional | Kontraktgenerate_audio, duration, resolution, ratio, watermark, seed, execution_expires_after, service_tier, safety_identifier, tools |
Parametrmaterial_types | Kontrakttext, image, video, audio |
Parametradditional_properties | Kontrakttrue |
Parametrvalidation_scope | KontraktAiloot sprawdza wymagane typy pól oraz niepusty model i tablicę content. Pozostałe pola żądania są zachowywane dla wybranego modelu. |
Parametrmaterial_combinations | Kontrakttext, image, video, image, audio, image, video, video, audio, image, video, audio |
Parametroptional_text_with_media | Kontrakttrue |
Parametrreference_media_count_and_size_limits | Kontraktnull |
Aliasy metody: /v1/videos/generations
Cykl życia: submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/videos/generations/{request_id}/content
Utwórz raz i zachowaj zwrócone publiczne id/polling_url.
Odpytuj pierwotne zadanie; pobierz rzeczywistą treść content.video_url należącą do użytkownika po uzyskaniu succeeded.
Cennik
Jak obliczana jest ostateczna opłata
Wyświetlane stawki służą do oszacowania kosztu przed generowaniem. Ostateczna opłata jest obliczana na podstawie kosztu zarejestrowanego dla pierwotnego generowania. Zmierzony czas trwania wyniku i prognozowane ilości nie stanowią ostatecznej ilości podlegającej rozliczeniu.
Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.
- Tryb szybki
- Nie określono Gdy wybrany jest tryb szybki
- Tryb flex
- Nie określono Gdy wybrany jest tryb flex
- Maksymalna intensywność rozumowania
- Nie określono Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)
Szacunkowe stawki do porównania
Ceny według konfiguracji
Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.
| Konfiguracja | Tabela stawek | Przewidywana ilość | Jednostka rozliczeniowa | Opłata |
|---|---|---|---|---|
| KonfiguracjaBazowe stawki za tokeny | Tabela stawekStawka podstawowa | Przewidywana ilość— | Jednostka rozliczeniowa— | Opłata Wejście · Tokeny wejściowe · Szacunek tylko do porównania — / 1K tokenów Wyjście · Tokeny wyjściowe · Szacunek tylko do porównania — / 1K tokenów Wejście · Odczyt cache · Szacunek tylko do porównania — / 1K tokenów Wejście · Zapis do cache · Szacunek tylko do porównania — / 1K tokenów Wejście · Zapis do cache, 1 godz. · Szacunek tylko do porównania — / 1K tokenów |
| KonfiguracjaDane wejściowe zawierają wideo. | Tabela stawek— | Przewidywana ilość— | Jednostka rozliczeniowaza 1K tokenów wideo | Opłata Wyjście · Szacunek tylko do porównania $0.007536 za 1K tokenów wideo |
| KonfiguracjaDane wejściowe nie zawierają wideo. | Tabela stawek— | Przewidywana ilość— | Jednostka rozliczeniowaza 1K tokenów wideo | Opłata Wyjście · Szacunek tylko do porównania $0.013032 za 1K tokenów wideo |
| KonfiguracjaSzacowany koszt generowania | Tabela stawek— | Przewidywana ilośćszacunek dla jednego generowania | Jednostka rozliczeniowa— | Opłata Wyjście · Szacowany koszt generowania · Szacunek tylko do porównania $0.822402 szacunek przed generowaniem Ten szacunek nie jest dodatkową opłatą ani stałą stawką za ukończone generowanie. |
Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →
Przykładowe żądania
Ailoot Ultra · Wideo
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON_REQUEST'
{"model":"doubao-seedance-2-0-fast-260128","content":[{"type":"text","text":"女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动"}]}
JSON_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_POLL'
import json
from pathlib import Path
from urllib.parse import quote,urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
i=r.get("id")
if not isinstance(i,str) or not i.startswith("native302_"):raise SystemExit("Keep original response/headers/id; do not resubmit creation.")
u=urljoin("https://api.ailoot.ai",r.get("polling_url") or "/v1/videos/"+quote(i,safe=""))
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/videos/"):raise SystemExit("Use actual Ailoot lookup path.")
Path("poll-url.txt").write_text(u)
PY_POLL
curl --fail-with-body --silent --show-error "$(cat poll-url.txt)" -H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
set -eu
python3 - <<'PY_ASSETS'
import json
from pathlib import Path
from urllib.parse import urlsplit
r=json.loads(Path("status.json").read_text())
if r.get("status")!="succeeded":raise SystemExit("Poll same original job until an owned result is returned.")
u=r.get("content",{}).get("video_url")
urls=[u] if isinstance(u,str) else u
if not isinstance(urls,list) or not urls:raise SystemExit("No completed video URL.")
for u in urls:
if not isinstance(u,str):raise SystemExit("Invalid returned URL.")
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/media/assets/") or not p.path.endswith("/content") or not p.query:raise SystemExit("Wait for actual Ailoot-owned signed result.")
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_ASSETS
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" -o "video-${index}.bin"
index=$((index + 1))
done < asset-urls.txt
Odbieranie i zapisywanie wyników
Ailoot Ultra · Wideo
Natywny JSON z publicznym id/polling_url. Po publikacji content.video_url zawiera podpisane adresy URL należące do Ailoot; przed publikacją wybrane adresy URL wyników są puste.
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Zachowaj wszystkie ukończone wyniki
Zapisz każde ukończone wideo lub zwrócony plik; pobierz każdy faktycznie zwrócony URL zasobu.
Zachowaj każdy rzeczywisty URL z content.video_url; index musi wskazywać faktycznie zwrócony wynik.
Jeśli trzeba sprawdzić pierwotną odpowiedź
Zachowaj oryginalną odpowiedź, nagłówki i id oraz odpytuj tę operację; nigdy nie ponawiaj żądania utworzenia o nieznanym wyniku.
Pola odpowiedzi
| Pole | Typ |
|---|---|
Poleid | Typstring |
Poleprovider_task_id | Typstring |
Polepolling_url | Typstring |
Polestatus | Typstring when supplied |
Polecontent.video_url | Typstring|string[] |
Poleusage | Typobject when supplied |
Błędy i dalsze kroki
| Odpowiedź | Warunek | Następny krok |
|---|---|---|
Odpowiedź400 · invalid_request_error | WarunekNieprawidłowy JSON/model, typy wymaganych pól lub indeks treści. | Następny krok |
Odpowiedź401 · authentication_error | WarunekNieprawidłowy klucz API Ailoot. | Następny krok |
Odpowiedź404 · not_found_error | WarunekZadanie lub wynik nie istnieje albo nie należy do tego samego użytkownika, klucza API lub grupy. | Następny krok |
Odpowiedź502 · result_pending_check | WarunekPierwotne wysłanie lub sprawdzenie statusu jest niekompletne; zachowaj pierwotny identyfikator i nie wysyłaj ponownie. | Następny krok |
Odpowiedź503 · result_pending_check | WarunekPierwotne multimedia, ścieżka lub rozliczenie są sprawdzane; kontynuuj pierwotną operację. | Następny krok |
Aliasy
Aliasy modelu
Ailoot Ultra doubao-seedance-2-0-fast-260128
Aliasy ścieżek metod
/v1/videos/generations
Powiązane ID modeli
FAQ · ByteDance: Seedance 2.0 Fast
- Jakie dane wejściowe i wyniki są dostępne?
POST /v1/videos·doubao-seedance-2-0-fast-260128:text,image,video,audio→video- Jakich pól używa żądanie?
POST /v1/videos·doubao-seedance-2-0-fast-260128:model,content,generate_audio,duration,resolution,ratio,watermark,seed,execution_expires_after,service_tier,safety_identifier,tools- Jakie limity obowiązują?
POST /v1/videos·doubao-seedance-2-0-fast-260128:seed.minimum:-1;seed.maximum:4294967295;execution_expires_after.minimum:3600;execution_expires_after.maximum:259200