Seedance 2.0 Fast API Generowania Wideo
Parametry Seedance 2.0 Fast, media referencyjne, zadania asynchroniczne, uwierzytelnione pobieranie i rozliczanie czasu trwania na APIMaster.
Seedance 2.0 Fast generowanie wideo
Użyj seedance-2.0-fast do generowania tekst-na-wideo, obraz-na-wideo, pierwszej/ostatniej klatki oraz wideo lub audio referencyjnego. Fast obsługuje 480p i 720p, z czasem trwania wyjścia od 4 do 15 sekund.
Dla generowania pierwszej/ostatniej klatki, jawnie ustaw
aspect_ratio: "adaptive". Referencyjne audio musi towarzyszyć obrazowi lub wideo. Przechowuj swój klucz API APIMaster na swoim serwerze.
Punkty końcowe i uwierzytelnianie
Podstawowy URL: https://apimaster.ai/v1. Przesyłaj Authorization: Bearer YOUR_API_KEY przy składaniu, odpytywaniu i pobieraniu.
| Operacja | Metoda i ścieżka |
|---|---|
| Utwórz wideo | POST /v1/videos/generations |
| Zapytaj o kompatybilny wynik | GET /v1/video/generations/{task_id} |
| Zapytaj o wynik w stylu OpenAI | GET /v1/videos/{task_id} |
| Pobierz wideo | GET /v1/videos/{task_id}/content |
| Pobierz żądaną ostatnią klatkę | GET /v1/videos/{task_id}/last-frame |
Użyj publicznego task_id zwróconego przez APIMaster. Zadania wideo i zadania przeglądu mediów to różne zasoby: użyj powyższych punktów końcowych zapytań o wideo dla filmów. Przyjęte żądanie tworzy jedno zadanie asynchroniczne; sukces HTTP nie oznacza, że wideo zostało zakończone.
Parametry
| Pole | Typ | Wymagane / domyślne | Opis |
|---|---|---|---|
model |
string | Wymagane | seedance-2.0-fast |
prompt |
string | Wymagane | Do 4000 znaków. Opisz temat, ruch, scenę, kamerę i pożądane audio; zwięzłe podpowiedzi są łatwiejsze do kontroli. |
duration |
integer | 5 |
Długość wyjścia, 4–15 sekund. -1 nie jest obsługiwane. |
resolution |
string | 720p |
480p lub 720p; 1080p i 4k nie są obsługiwane. |
aspect_ratio |
string | 16:9 |
16:9, 9:16, 1:1, 4:3, 3:4, 21:9 lub adaptive. |
ratio |
string | Takie samo jak aspect_ratio |
Alias APIMaster. Jeśli oba się pojawią, ich wartości muszą się zgadzać. |
size |
string | Takie samo jak aspect_ratio |
Proporcja taka jak 16:9 lub adaptive. Preferuj aspect_ratio i resolution aby wyrazić dwa wymiary oddzielnie. Sprzeczne specyfikacje zwracają 400. |
seed |
integer | Pominięte | Kontroluje zmienność; pasujące ziarna nie gwarantują identycznego wyjścia. |
generate_audio |
boolean | true |
Generuj towarzyszące audio; użyj false dla wyjścia bez dźwięku. |
image_urls |
string[] | Pominięte | Do 9 obrazów referencyjnych. Publiczne URL obrazów lub zatwierdzone ID asset:// APIMaster. |
image_with_roles |
object[] | Pominięte | Obiekty obrazów z url i role; nie mogą pojawiać się razem z image_urls. Zobacz zasady ról poniżej. |
video_urls |
string[] | Pominięte | Do 3 wideo referencyjnych, z łącznym rozliczanym czasem trwania wejścia wynoszącym co najwyżej 15 sekund. Zobacz wymagania materiałowe. |
audio_urls |
string[] | Pominięte | Do 3 plików audio referencyjnych, łączny czas trwania co najwyżej 15 sekund. Wymaga obrazów lub wideo referencyjnych. |
return_last_frame |
boolean | false |
Po pomyślnym zakończeniu, zwróć uwierzytelniony URL APIMaster do pobrania ostatniej klatki, gdy wynik zawiera ostatnią klatkę. |
nsfw_check |
boolean | false |
Żądaj moderacji treści tekstowej/obrazowej przed generowaniem. Wideo i audio nie są uwzględniane w tej fazie moderacji. |
tools |
object[] | Pominięte | Deklaracja narzędzia wyszukiwania: [{"type":"web_search"}]. |
Generowanie szkicu i ulepszanie szkicu są wyłączne dla Seedance 2.5. Nie przekazuj draft: true lub draft_task_id do tego modelu.
Materiały referencyjne
Podaj publicznie dostępne adresy URL HTTPS lub zatwierdzone identyfikatory z biblioteki multimediów APIMaster. Pliki znajdujące się za stronami wymagającymi logowania lub wymagające własnych nagłówków autoryzacyjnych nie mogą być pobrane. Pomyślne przesłanie obrazu nie oznacza zatwierdzenia treści ani zgodności z każdym wymaganiem modelu.
| Materiał | Wymagania |
|---|---|
| Obrazy referencyjne | Do 9; użyj czytelnych obrazów RGB w formacie JPEG/PNG. Punkt końcowy APIMaster do przesyłania obrazów ma własny limit 20 MiB i akceptuje formaty JPEG, PNG, GIF i WebP. |
| Filmy referencyjne | Do 3; MP4/MOV, wideo H.264/H.265; audio AAC/MP3, jeśli obecne. Użyj filmu referencyjnego o długości 480p–720p. Łączny czas trwania materiałów referencyjnych musi mieścić się w 15 płatnych sekund. APIMaster weryfikuje dostępny czas trwania plików MP4/MOV przed naliczeniem opłat; długości klipów wejściowych są zaokrąglane w górę do pełnych sekund dla tej weryfikacji i rozliczenia. |
| Audio referencyjne | Do 3; WAV lub MP3, maksymalnie 20 MB na plik, łączny czas trwania maksymalnie 15 sekund. Zawsze towarzysz obrazowi lub filmowi referencyjnemu. |
Używaj wyraźnych obrazów z wystarczającą ilością szczegółów, unikaj uszkodzonych lub niekompletnych plików oraz utrzymuj ruch w filmie referencyjnym zgodny z twoim promptem. Multimedia mogą nie przejść asynchronicznej weryfikacji formatu lub treści, nawet jeśli zgłoszenie zostało zaakceptowane.
Role obrazów
role |
Znaczenie |
|---|---|
first_frame |
Klatka początkowa; maksymalnie jeden |
last_frame |
Klatka końcowa; maksymalnie jeden i wymaga klatki początkowej |
reference_image |
Obraz referencyjny, w tym zatwierdzone zasoby postaci |
W przypadku zadań z pierwszą/ostatnią klatką ustaw aspect_ratio na adaptive i pomiń video_urls oraz audio_urls. Używaj image_with_roles dla jawnych ról; nie przekazuj również image_urls.
{
"model": "seedance-2.0-fast",
"prompt": "A paper boat drifts gently from the starting composition to the ending composition",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "adaptive",
"image_with_roles": [
{"url": "https://your-storage.example/start.png", "role": "first_frame"},
{"url": "https://your-storage.example/end.png", "role": "last_frame"}
],
"generate_audio": false
}
Przesyłanie i biblioteka multimediów
Prześlij lokalny obraz za pomocą POST /v1/uploads/images, używając pola multipart file i autoryzacji Bearer. Zwrócony najwyższego poziomu url może być użyty jako publiczny obraz wejściowy.
curl "https://apimaster.ai/v1/uploads/images" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@reference.png"
W przypadku materiałów wielokrotnego użytku lub materiałów postaci utwórz grupę za pomocą POST /v1/seedance2/private-avatar/groups, prześlij materiały za pomocą POST /v1/seedance2/private-avatar/assets, sprawdź status weryfikacji za pomocą GET /v1/tasks/{asset_task_id} i używaj tylko zasobów o statusie Active jako asset://{asset_id}. Te zasoby należą do twojego konta. Określ model: "seedance-2.0-fast" jawnie. Identyfikatorów zasobów z innej platformy lub konta nie można tutaj używać.
Zobacz przepływ pracy biblioteki multimediów dotyczący tworzenia, przesyłania, weryfikacji, częściowych niepowodzeń i usuwania. Punkty końcowe przesyłania i zarządzania zasobami są współdzielone; limity generowania na tej stronie dotyczą Fast. Nieudana weryfikacja może nie zwrócić szczegółowego powodu; używaj wyraźnych, zgodnych materiałów w obsługiwanym formacie i prześlij nową weryfikację. Nie twórz wielokrotnie zadania, gdy istniejąca weryfikacja jest jeszcze w trakcie przetwarzania.
Prześlij film
curl "https://apimaster.ai/v1/videos/generations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model":"seedance-2.0-fast",
"prompt":"A small paper boat on calm water at sunrise, gentle tracking shot",
"duration":5,
"resolution":"720p",
"aspect_ratio":"16:9",
"generate_audio":true,
"return_last_frame":true
}'
Odpowiedź utworzenia:
{"code":200,"data":[{"status":"submitted","task_id":"task_PUBLIC_VIDEO_ID"}]}
Limit czasu przesłania jest niejednoznaczny: żądanie mogło zostać zaakceptowane. Sprawdź historię swoich zadań przed ponownym przesłaniem; kolejne pomyślne przesłanie tworzy oddzielne, płatne zadanie.
Filmy i audio referencyjne
{
"model": "seedance-2.0-fast",
"prompt": "Follow the reference motion and keep the scene consistent with the image",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "adaptive",
"image_urls": ["https://your-storage.example/reference.png"],
"video_urls": ["https://your-storage.example/reference.mp4"],
"audio_urls": ["https://your-storage.example/reference.mp3"],
"generate_audio": true
}
Zapytanie i pobieranie
Sonduj co 3–5 sekund. Zatrzymaj się, gdy zadanie zakończy się sukcesem lub porażką.
curl "https://apimaster.ai/v1/video/generations/task_PUBLIC_VIDEO_ID" \
-H "Authorization: Bearer YOUR_API_KEY"
Kompatybilne zapytanie sukcesu:
{
"code":"success",
"message":"",
"data":{
"error":null,
"format":"mp4",
"metadata":null,
"status":"succeeded",
"task_id":"task_PUBLIC_VIDEO_ID",
"url":"https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/content",
"actual_time":118,
"last_frame_url":"https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/last-frame"
}
}
Przykład zawiera opcjonalne pola ukończenia. actual_time to czas, który upłynął od przesłania do ukończenia w sekundach, a nie płatny czas trwania wideo. last_frame_url jest pomijany, jeśli ostatnia klatka nie była żądana lub jest niedostępna. Nieudane zadania nie zawierają pól czasu, które upłynął ani ostatniej klatki, dostępnych tylko dla sukcesu.
Zapytanie w stylu OpenAI:
curl "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID" \
-H "Authorization: Bearer YOUR_API_KEY"
| Znaczenie | Kompatybilny data.status |
Styl OpenAI status |
|---|---|---|
| Oczekiwanie | queued |
queued |
| Generowanie | processing |
in_progress |
| Sukces | succeeded |
completed |
| Porażka | failed |
failed |
Obiekt w stylu OpenAI używa id dla publicznego identyfikatora zadania i url dla adresu URL pobierania wideo. Opcjonalne actual_time i last_frame_url pojawiają się na najwyższym poziomie. W przypadku niepowodzenia, należy odczytać error.message w odpowiadającym obiekcie wyniku. Odpowiedzi nie zawierają pól dotyczących pieniędzy.
Pobieraj za pomocą klucza API tego samego konta. Otwarcie adresu URL wyniku bez autoryzacji jest niewystarczające. Zapisz wynik niezwłocznie.
curl -L "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/content" \
-H "Authorization: Bearer YOUR_API_KEY" -o output.mp4
curl -L "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/last-frame" \
-H "Authorization: Bearer YOUR_API_KEY" -o last-frame.jpg
Pełny przepływ pracy w Pythonie
import os
import time
import requests
base = "https://apimaster.ai/v1"
headers = {"Authorization": f"Bearer {os.environ['APIMASTER_API_KEY']}"}
response = requests.post(base + "/videos/generations", headers=headers, json={
"model": "seedance-2.0-fast",
"prompt": "A small paper boat on calm water at sunrise",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9",
"generate_audio": True,
"return_last_frame": True,
}, timeout=90)
response.raise_for_status()
task_id = response.json()["data"][0]["task_id"]
for _ in range(240):
response = requests.get(base + "/video/generations/" + task_id,
headers=headers, timeout=30)
response.raise_for_status()
task = response.json()["data"]
if task["status"] == "failed":
raise RuntimeError((task.get("error") or {}).get("message", "Video failed"))
if task["status"] == "succeeded":
print("Elapsed seconds:", task.get("actual_time"))
for field, filename in [("url", "output.mp4"), ("last_frame_url", "last-frame.jpg")]:
if task.get(field):
with requests.get(task[field], headers=headers, stream=True, timeout=120) as result:
result.raise_for_status()
with open(filename, "wb") as out:
for chunk in result.iter_content(1024 * 1024):
out.write(chunk)
break
time.sleep(5)
else:
raise TimeoutError("Task still processing; query the same task_id later")
Rozliczanie czasu trwania
Istnieją cztery poziomy: 480P, 720P, 480P-input i 720P-input. Poziom oznaczony jako „przesłane filmy wideo” oznacza, że żądanie zawiera wejście w postaci filmu referencyjnego. Wybierz poziom wejścia dla żądanej rozdzielczości wyjściowej, nawet jeśli obecne są również obrazy/dźwięki referencyjne.
- Bez filmu referencyjnego: wygenerowane sekundy wideo × cena jednostkowa odpowiadającej rozdzielczości.
- Z filmem referencyjnym: (całkowity czas filmu referencyjnego + wygenerowane sekundy wideo) × cena jednostkowa odpowiadającego poziomu wejścia.
- Skonfigurowana bazowa cena jednostkowa jest mnożona przez odpowiednie współczynniki kanału i konta/grupy, aby uzyskać ostateczną cenę jednostkową. Sprawdź kartę modelu i historię zużycia portfela, aby poznać obowiązującą cenę.
Na przykład, film referencyjny o długości 4 sekund i wyjście o długości 5 sekund wykorzystuje 9 sekund rozliczeniowych na poziomie wejścia. Cena jednostkowa poziomu wejścia może różnić się od zwykłego poziomu; nie obliczaj tylko czasu trwania wyjścia ani nie stosuj zwykłego poziomu do filmów referencyjnych. Obrazy i dźwięk nie dodają sekund filmu referencyjnego. Wygenerowany dźwięk nie wprowadza oddzielnego poziomu dźwięku/ciszy dla tych czterech skonfigurowanych cen.
Złożenie żądania rezerwuje żądany czas trwania wyjścia oraz zweryfikowany czas trwania wejściowego filmu wideo, jeśli jest obecny. Pominięcie czasu trwania wyjścia rezerwuje 5 sekund wyjścia. Zadanie zachowuje taryfę z momentu złożenia; po zakończeniu następuje rozliczenie rzeczywistego czasu trwania. Nieudane generowanie zwraca opłatę za zadanie wideo.
Błędy i rozwiązywanie problemów
Nieprawidłowe żądania zwracają błąd HTTP. Przeczytaj komunikat błędu JSON oraz kod statusu. Walidacja parametrów używa opakowania błędów APIMaster, na przykład:
{"code":"invalid_request","message":"First/last-frame tasks require adaptive aspect_ratio","data":null}
| Problem | Działanie |
|---|---|
| Nieobsługiwana rozdzielczość / czas trwania | Wybierz 480p lub 720p oraz całkowity czas trwania od 4 do 15. |
| Sprzeczny współczynnik proporcji lub rozmiar | Użyj spójnych aspect_ratio, ratio, size i resolution; najlepiej zachowaj tylko jawną parę współczynnik proporcji/rozdzielczość. |
| Ograniczenia pierwszej/ostatniej klatki | Użyj adaptive, co najwyżej jednego dla każdej roli, i pomiń referencje wideo/dźwiękowe. |
| Nie można przeanalizować filmu referencyjnego | Podaj dostępny, kompletny plik MP4/MOV z prawidłowym czasem trwania. |
| Dźwięk referencyjny bez obrazu/wideo | Dodaj obrazy/filmy referencyjne lub usuń referencję dźwiękową. |
| Odrzucenie przez moderację treści | Zmodyfikuj tekst lub obraz i prześlij nowe żądanie. Awaria usługi moderacji może pozwolić na kontynuację generowania; nie jest to absolutna gwarancja bezpieczeństwa. |
FormatUnsupported / Asynchroniczne odrzucenie formatu/treści |
Przeczytaj error.message nieudanego zadania, sprawdź wymagania dotyczące formatów i materiałów i zastąp źródło. |
401 |
Podaj prawidłowy klucz API typu Bearer. |
| Niewystarczające saldo | Doładuj konto lub użyj klucza z wystarczającą pulą. |
429 / tymczasowy błąd usługi |
Zaczekaj i ponów próbę z wycofaniem; unikaj duplikowania zgłoszeń po niejednoznacznym przekroczeniu limitu czasu. |
Synchroniczne żądania z nieprawidłowymi parametrami nie tworzą zadań wideo ani nie naliczają opłat za generowanie. Zaakceptowane zadania nadal mogą zakończyć się asynchroniczną porażką; sprawdź ostateczny status zadania przed użyciem wyniku.
Zobacz także: Przegląd generowania wideo, Seedance 2.0, Seedance 2.0 Mini oraz Seedance 2.5.
