Prześlij zadanie generowania wideo
Tworzy asynchroniczne zadanie generowania wideo i od razu zwraca task_id (HTTP 202). Odpytuj GET /api/v1/videos/generations/{task_id}, aż zadanie zakończy się powodzeniem. Treść żądania można podać w formie spłaszczonej ({model, prompt, ...}) lub zagnieżdżonej ({model, input: {prompt, ...}}); obiekt input ma pierwszeństwo, jeśli jest obecny. Pola callback (callBackUrl / callback_url / callbackUrl) są ignorowane.
Trzy wykluczające się tryby wejścia:
- text-to-video: tylko prompt;
- image-to-video (pierwsza/ostatnia klatka): first_frame_url (+ opcjonalny last_frame_url);
- omni-reference: reference_image_urls / reference_video_urls / reference_audio_urls. Połączenie pierwszej/ostatniej klatki z dowolnym multimodalnym wejściem referencyjnym zwraca 400 invalid_request_error.
- Typ: stringX
- Request - Id Opcjonalny identyfikator żądania wywołującego, zwracany w celach diagnostycznych.
- Typ: stringX
- Felo - Channel Uporządkowane kody publicznych kanałów rozdzielone przecinkami. Pomiń ten nagłówek, aby użyć wartości domyślnej; wartość domyślna musi być używana samodzielnie. W trybie portfela wartość domyślna przegląda efektywną kolejność publicznych kanałów modelu od końca, pomija kanały nieopublikowane lub niedostępne i wybiera dostawcę pierwszego dostępnego kanału. Obejmuje dostępne endpointy tego dostawcy o tym samym identyfikatorze modelu upstream i tym samym poziomie usługi. Jawne kanały są weryfikowane w kolejności podanej przez klienta; przesyłana jest tylko grupa dostawcy pierwszego kanału. Brak automatycznego przełączania na innych dostawców. Przestarzałe nagłówki dostawcy nie mogą nadpisać routingu kanałów.
Dane wejściowe generowania wideo. Albo spłaszczone ({model, prompt, ...}), albo zagnieżdżone ({model, input: {...}}). Pierwszeństwo ma input. Należy użyć dokładnie jednego trybu wejścia; połączenie pierwszej/ostatniej klatki z multimodalnymi wejściami referencyjnymi jest odrzucane.
- Typ: stringmodelwymagane
Nazwa modelu widoczna w Felo, np. seedance-2.0-mini.
- Typ: string enumaspect
_ratio wartości- 16:9
- 9:16
- 1:1
- 4:3
- 3:4
- 21:9
- adaptive
- Typ: integerdurationmin.:4maks.:15
Integer numbers.
- Typ: string Format: urifirst
_frame _url - Typ: booleangenerate
_audio - Typ: objectinput
Opcjonalny zagnieżdżony obiekt wejściowy; jeśli jest obecny, jego pola mają pierwszeństwo przed polami na tym samym poziomie.
- aspectTyp: string enum
_ratio Proporcje wyjścia; wartość adaptive zachowuje proporcje obrazu wejściowego.
wartości- 16:9
- 9:16
- 1:1
- 4:3
- 3:4
- 21:9
- adaptive
- durationTyp: integermin.:4maks.:15
Czas trwania wyjścia w sekundach.
- firstTyp: string Format: uri
_frame _url Adres URL obrazu pierwszej klatki (tryb image-to-video).
- generateTyp: boolean
_audio Czy generować zsynchronizowaną ścieżkę audio.
- lastTyp: string Format: uri
_frame _url Adres URL obrazu ostatniej klatki; musi być używany razem z first_frame_url.
- promptTyp: stringmaks. długość:2000
Prompt. Wymagany w trybie text-to-video i omni-reference.
- referenceTyp: array string[] …3Format: uri
_audio _urls Klipy audio omni-reference.
- referenceTyp: array string[] …9Format: uri
_image _urls Obrazy omni-reference. Wykluczają się wzajemnie z pierwszą/ostatnią klatką.
- referenceTyp: array string[] …3Format: uri
_video _urls Wideo omni-reference. Wykluczają się wzajemnie z pierwszą/ostatnią klatką. Podanie wideo zmienia jednostkową cenę rozliczeniową i dodaje czas trwania wejścia do liczby tokenów.
- resolutionTyp: string enum
Rozdzielczość wyjściowa. Wyższa rozdzielczość zużywa więcej tokenów i kosztuje więcej.
wartości- 480p
- 720p
- 1080p
- 4k
- serviceTyp: string | null
_tier Obecnie obsługiwana jest tylko wartość default (standard). Pominięcie, null, aliasy i nieobsługiwane ciągi znaków powodują powrót do wartości default; inne typy zwracają HTTP 400. Skonfigurowane kanały i ceny pozostają bez zmian. Interfejsy API modeli tekstowych wysyłają standardową wartość dostawcy; interfejsy Decisions i generowania pomijają pole upstream.
- Typ: string Format: urilast
_frame _url - Typ: stringpromptmaks. długość:2000
- Typ: array string[] …3Format: urireference
_audio _urls - Typ: array string[] …9Format: urireference
_image _urls - Typ: array string[] …3Format: urireference
_video _urls - Typ: string enumresolutionwartości
- 480p
- 720p
- 1080p
- 4k
- Typ: string | nullservice
_tier Obecnie obsługiwana jest tylko wartość default (standard). Pominięcie, null, aliasy i nieobsługiwane ciągi znaków powodują powrót do wartości default; inne typy zwracają HTTP 400. Skonfigurowane kanały i ceny pozostają bez zmian. Interfejsy API modeli tekstowych wysyłają standardową wartość dostawcy; interfejsy Decisions i generowania pomijają pole upstream.
- Typ: object · VideoGenerationAccepted202
Zadanie przyjęte
- enumkindconst:videowymaganewartości
- video
- Typ: array string[]outputswymagane
Puste, dopóki zadanie się nie powiedzie.
- enumstatusconst:queuedwymaganewartości
- queued
- Typ: stringtask
_id wymaganeIdentyfikator zadania używany do odpytywania.
application/json - Typ: object · GenerationError400
Nieprawidłowe żądanie (nieznany model, mieszane tryby wejścia, nieprawidłowe pola)
Koperta błędu zgodna z OpenAI.
- Typ: objecterror
- messageTyp: stringwymagane
- typeTyp: string enumwymaganewartości
- invalid
_request _error - server
_error
- codeTyp: string
- paramTyp: string dopuszcza null
application/json - Typ: object · GenerationError401
Nieprawidłowy lub brakujący klucz API Felo
Koperta błędu zgodna z OpenAI.
- Typ: objecterror
- messageTyp: stringwymagane
- typeTyp: string enumwymaganewartości
- invalid
_request _error - server
_error
- codeTyp: string
- paramTyp: string dopuszcza null
application/json - Typ: object · GenerationError402
Niewystarczające saldo / niespełniony warunek rozliczeniowy
Koperta błędu zgodna z OpenAI.
- Typ: objecterror
- messageTyp: stringwymagane
- typeTyp: string enumwymaganewartości
- invalid
_request _error - server
_error
- codeTyp: string
- paramTyp: string dopuszcza null
application/json - Typ: object · GenerationError403
Konto nie ma uprawnień (wymagana subskrypcja lub użytkownik zablokowany). Wyłączone modele są również odrzucane przed wywołaniami upstream. Istniejące przyjęte żądania i zadania są kontynuowane.
Koperta błędu zgodna z OpenAI.
- Typ: objecterror
- messageTyp: stringwymagane
- typeTyp: string enumwymaganewartości
- invalid
_request _error - server
_error
- codeTyp: string
- paramTyp: string dopuszcza null
application/json - Typ: object · GenerationError429
Osiągnięto limit żądań lub wydatków
Koperta błędu zgodna z OpenAI.
- Typ: objecterror
- messageTyp: stringwymagane
- typeTyp: string enumwymaganewartości
- invalid
_request _error - server
_error
- codeTyp: string
- paramTyp: string dopuszcza null
application/json - Typ: object · GenerationError502
Błąd dostawcy upstream
Koperta błędu zgodna z OpenAI.
- Typ: objecterror
- messageTyp: stringwymagane
- typeTyp: string enumwymaganewartości
- invalid
_request _error - server
_error
- codeTyp: string
- paramTyp: string dopuszcza null
application/json - Typ: object · GenerationError503
Usługa generowania lub usługa rozliczeniowa tymczasowo niedostępna
Koperta błędu zgodna z OpenAI.
- Typ: objecterror
- messageTyp: stringwymagane
- typeTyp: string enumwymaganewartości
- invalid
_request _error - server
_error
- codeTyp: string
- paramTyp: string dopuszcza null
application/json
curl https://openapi.felo.ai/api/v1/videos/generations \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"model": "seedance-2.0-mini",
"prompt": "a cinematic trailer shot, 720p",
"resolution": "720p",
"duration": 5,
"generate_audio": true
}'
{
"task_id": "string",
"status": "queued",
"kind": "video",
"outputs": [
"string"
]
}