ByteDance: Seedance 1.0 Pro
Seedance 1.0 Pro generuje nieme wideo z tekstu lub obrazu otwierającego. Opisz działanie i kamerę albo ożyw istniejącą kompozycję, z długością 2–12 sekund, 24 fps oraz jawnymi ustawieniami kadrowania i rozdzielczości wyjścia.
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 1.0 Pro generuje wideo z tekstu lub sceny kierowanej obrazem. Selektor doubao-seedance-1-0-pro-250528 obsługuje oba tryby wejściowe, więc punktem wyjścia może być pisemna koncepcja lub istniejąca kompozycja wizualna. Użyj opisu tekstowego do stworzenia nowej sceny albo dostarcz obraz, gdy obiekt, układ i widok otwierający mają zostać określone wizualnie. Ten profil 1.0 tworzy nieme wideo; zsynchronizowany dźwięk należy do osobno opisanego profilu 1.5 Pro.
Dla generowania tekst-do-wideo określ obiekt, otoczenie, ruch, kadrowanie i kamerę w jednej spójnej scenie. Udokumentowany przykład stopniowo przechodzi od pola stokrotek do zbliżenia kwiatu z kroplami rosy na płatkach. Taka struktura przydaje się do innych prezentacji: pokaż otoczenie, zbliż się do obiektu i zakończ na istotnym szczególe. Dla koncepcji produktu opisz materiał i oświetlenie oraz działanie, nadając kamerze wykonalną trasę w ramach krótkiego ujęcia.
Dla generowania obraz-do-wideo umieść odniesienie w elemencie image_url tablicy content i wyjaśnij, co powinno zmienić się od tego widoku początkowego. Przygotowany portret może określać osobę i kadr, podczas gdy opis przedstawia niewielki obrót, poruszające się włosy lub delikatny odjazd kamery. Zdjęcie produktu może ustalać przedmiot i tło, a prompt prosić o kontrolowane odsłonięcie. Dopasuj żądany ruch do kompozycji źródłowej; obraz jednej strony przedmiotu nie dostarcza niewidzianego, dokładnego widoku każdej pozostałej strony.
Pole obrazu przyjmuje dostępny adres URL lub adres danych z obrazem zakodowanym w Base64. Udokumentowane formaty to JPEG, PNG, WEBP, BMP, TIFF i GIF. Obraz musi być mniejszy niż 30 MB, z ilorazem szerokości i wysokości ściśle między 0.4 a 2.5 oraz każdym wymiarem ściśle między 300 a 6000 pikseli. Przygotuj czytelne źródło we właściwym kadrze zamiast polegać na miniaturze, której charakterystycznych szczegółów już brakuje. Dla generowania obraz-do-wideo poradnik zaleca kadrowanie adaptive, aby zachować proporcje odniesienia.
Udokumentowana długość dla 1.0 wynosi od dwóch do dwunastu sekund, a liczba klatek to 24 fps. Ustawienia wyjścia obejmują poziomy 480p, 720p i 1080p, z 1080p jako wartością domyślną Pro; poradnik wyklucza 1080p w scenariuszu obrazu referencyjnego. Stałe proporcje obejmują 16:9, 4:3, 1:1, 3:4, 9:16 i 21:9. Dla ujęcia kierowanego obrazem wybierz zgodne z nim ustawienia zamiast przenosić bez zmian wszystkie ustawienia tekst-do-wideo. Sprawdź rzeczywiście zwrócony kadr przed umieszczeniem klipu w kompozycji.
Ustawienia ziarna i znaku wodnego są udokumentowane obok camerafixed. Instrukcja nieruchomej kamery nie jest obsługiwana w scenariuszu obrazu referencyjnego, a tam, gdzie działa, poradnik nie gwarantuje idealnie nieruchomej kamery. Instrukcje parametrów w promptach mają pierwszeństwo przed osobnymi polami opcjonalnymi. Zachowaj jedno miarodajne ustawienie długości, rozdzielczości i proporcji oraz dopasuj do niego opis kamery. Zapobiega to niezamierzonemu nadpisaniu wybranych ustawień żądania przez opis sceny.
Zużycie jest mierzone w tokenach wideo: szerokość wyjściowa × wysokość wyjściowa × liczba klatek na sekundę × długość wyjściowego klipu / 1024. Zakończone zadanie raportuje tę wielkość jako usage.completion_tokens. Zachowaj zgłoszone zużycie razem z gotowym klipem i żądanymi ustawieniami.
Przepływ najpierw zwraca identyfikator zadania, a po przetworzeniu lokalizację ukończonego wideo. Zachowaj identyfikator podczas sprawdzania stanów queued lub running; zadanie succeeded dostarcza content.video_url i informacje o zużyciu. Udokumentowany okres przechowywania wygenerowanych plików wynosi siedem dni. Zapisz ukończony klip, obraz źródłowy i dokładny prompt jako historię wersji, a następnie sprawdź wygląd obiektu, ruch, ciągłość względem obrazu i końcową kompozycję w całym wyniku.
Ailoot Ultra · Wideo POST /v1/videos doubao-seedance-1-0-pro-250528
doubao-seedance-1-0-pro-250528
doubao-seedance-1-0-pro-250528Start
Seedance 1.0 Pro generuje nieme wideo z tekstu lub obrazu otwierającego. Opisz działanie i kamerę albo ożyw istniejącą kompozycję, z długością 2–12 sekund, 24 fps oraz jawnymi ustawieniami kadrowania i rozdzielczości wyjścia.
- Akceptowane dane wejściowe
- Tekst · Obrazy
- Wyniki
- Wideo
Dostępne w Ailoot · dane wejściowe i metody
Ailoot Ultra · Wideo POST /v1/videos
- Wejście
text,image- Wyjście
video
| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
|---|---|---|---|---|
Polemodel | Typstring | WymaganieWymagane | Wartości i limity doubao-seedance-1-0-pro-250528 | 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— |
Poleduration | Typinteger | WymaganieOpcjonalne | Wartości i limity Minimum: 2 Maksimum: 12 Warunki: Pierwotny schemat 1.x określa 2–12; późniejszy wspólny opis wskazuje dla 1.5 zakres 4–12 lub -1. Przykład używa wartości 5 udokumentowanej w obu miejscach. | Domyślnie5 |
Poleresolution | Typstring | WymaganieOpcjonalne | Wartości i limity Warunki: Potwierdzone wartości dla generowania wideo z tekstu to 480p i 1080p. Wejściowy obraz referencyjny wyklucza 1080p. Wspólna wartość enum 720p jest sprzeczna z opisem danego modelu, więc obsługa 720p pozostaje nierozstrzygnięta w obu trybach. | Domyślnie1080p |
Poleratio | Typstring | WymaganieOpcjonalne | Wartości i limity 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive Warunki: Wartości domyślne zależą od sceny i modelu; dokumentacja wejścia obrazowego zaleca adaptive. | Domyślnie— |
Poleservice_tier | Typstring | WymaganieOpcjonalne | Wartości i limity default, flex Warunki: default=online, flex=offline; wybierz przed utworzeniem. | Domyślniedefault |
Poleseed | Typinteger | WymaganieWymagane | Wartości i limity Minimum: -1 Maksimum: 4 294 967 295 | Domyślnie-1 |
Polecamerafixed | Typboolean | WymaganieWymagane | Wartości i limity Warunki: Wymagane przez Ailoot; sterowanie kamerą przy obrazie referencyjnym jest opisane jako nieobsługiwane, a jego efekt nie jest gwarantowany. | Domyślniefalse |
Polewatermark | Typboolean | WymaganieWymagane | Wartości i limity | Domyślniefalse |
Poleexecution_expires_after | Typinteger | WymaganieWymagane | Wartości i limity Minimum: 3600 Maksimum: 259 200 Jednostka: sekundy | Domyślnie172 800 |
Kombinacje materiałów wejściowych
Parametry i cykl życia metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktcamerafixed, content, execution_expires_after, model, seed, watermark |
Parametroptional | Kontraktduration, resolution, ratio, service_tier |
Parametrmaterial_types | Kontrakttext, image |
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. |
Parametrimage_constraints | Kontrakt{"formats":["jpeg","png","webp","bmp","tiff","gif"],"aspect_ratio_exclusive":[0.4,2.5],"dimensions_px_exclusive":[300,6000],"file_size_mb_exclusive":30,"mb_bytes_definition":null} |
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 |
| KonfiguracjaUltra | Tabela stawek— | Przewidywana ilość— | Jednostka rozliczeniowaza 1K tokenów wideo | Opłata Wyjście · Szacunek tylko do porównania $0.0044 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.2112 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-1-0-pro-250528","content":[{"type":"text","text":"女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动"}],"resolution":"480p","ratio":"1:1","duration":5,"service_tier":"default","seed":-1,"camerafixed":false,"watermark":false,"execution_expires_after":172800}
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-1-0-pro-250528
Aliasy ścieżek metod
/v1/videos/generations
Powiązane ID modeli
FAQ · ByteDance: Seedance 1.0 Pro
- Jakie dane wejściowe i wyniki są dostępne?
POST /v1/videos·doubao-seedance-1-0-pro-250528:text,image→video- Jakich pól używa żądanie?
POST /v1/videos·doubao-seedance-1-0-pro-250528:model,content,duration,resolution,ratio,service_tier,seed,camerafixed,watermark,execution_expires_after- Jakie limity obowiązują?
POST /v1/videos·doubao-seedance-1-0-pro-250528:duration.minimum:2;duration.maximum:12;seed.minimum:-1;seed.maximum:4294967295;execution_expires_after.minimum:3600;execution_expires_after.maximum:259200