APIMaster.ai

Seedance 2.0 Mini API Generowania Wideo

Parametry Seedance 2.0 Mini, media referencyjne, zadania asynchroniczne, uwierzytelnione pobieranie i rozliczanie czasu trwania na APIMaster.

Seedance 2.0 Mini generowanie wideo

Użyj seedance-2.0-mini do generowania tekst-na-wideo, obraz-na-wideo, pierwszej/ostatniej klatki oraz wideo lub audio referencyjnego. Mini 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

Bazowy URL: https://apimaster.ai/v1. Przesyłaj Authorization: Bearer YOUR_API_KEY podczas składania, zapytań i pobierania.

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ń wideo dla filmów. Zaakceptowane żądanie tworzy jedno zadanie asynchroniczne; sukces HTTP nie oznacza, że wideo zostało ukończone.

Parametry

Pole Typ Wymagane / domyślne Opis
model string Wymagane seedance-2.0-mini
prompt string Wymagane APIMaster nie nakłada limitu długości promptu specyficznego dla modelu. Opisz temat, ruch, scenę, kamerę i pożądane audio; zwięzłe prompty 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 osobno. Sprzeczne specyfikacje zwracają 400.
seed integer Pominięte Kontroluje zmienność; pasujące seedy 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 całkowitym rozliczanym czasem trwania wejścia 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ą włączone w to sprawdzenie 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

Dla 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-mini",
  "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"

Dla 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-mini" jawnie. Identyfikatorów zasobów z innej platformy lub konta nie można tutaj użyć.

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ą Mini. Nieudana weryfikacja może nie zwrócić szczegółowego powodu; używaj jasnych, 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-mini",
    "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 udane przesłanie tworzy oddzielne, płatne zadanie.

Filmy i audio referencyjne

{
  "model": "seedance-2.0-mini",
  "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":138,
    "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-mini",
    "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 według 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ż referencje obrazu/dźwięku.

  • Bez filmu referencyjnego: wygenerowane sekundy wideo × cena jednostkowa dla odpowiedniej rozdzielczości.
  • Z filmem referencyjnym: (całkowity czas trwania filmu referencyjnego + wygenerowane sekundy wideo) × cena jednostkowa dla odpowiedniego 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 trwający 4 sekund i wyjście trwające 5 sekund wykorzystuje 9 sekund rozliczeniowych na poziomie wejścia. Cena jednostkowa na poziomie wejścia może różnić się od ceny na zwykłym poziomie; 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 zadania 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ę obowiązującą w momencie 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 korzysta z 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żywaj spójnych wartości 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 jednej każdej roli, i pomiń referencje wideo/dźwięku.
Nie można sprawdzić filmu referencyjnego Podaj dostępny, kompletny plik MP4/MOV z prawidłowym czasem trwania.
Dźwięk referencyjny bez obrazu/wideo Dodaj referencje obrazu/wideo lub usuń referencję dźwiękową.
Odrzucenie przez moderację treści Zmodyfikuj tekst lub obraz i złóż 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 Poczekaj 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ę niepowodzeniem asynchronicznie; sprawdź ostateczny status zadania przed użyciem wyniku.

Zobacz także: Przegląd generowania wideo, Seedance 2.0, Seedance 2.0 Fast oraz Seedance 2.5.