Надіслати завдання на генерацію відео
Створює асинхронне завдання генерації відео та одразу повертає task_id (HTTP 202). Опитуйте GET /api/v1/videos/generations/{task_id}, доки завдання не завершиться успішно. Тіло запиту можна передати у пласкому вигляді ({model, prompt, ...}) або у вкладеному ({model, input: {prompt, ...}}); за наявності об'єкт input має пріоритет. Поля callback (callBackUrl / callback_url / callbackUrl) ігноруються.
Три взаємовиключні режими введення:
- text-to-video: лише промпт;
- image-to-video (перший/останній кадр): first_frame_url (+ необов'язковий last_frame_url);
- omni-reference: reference_image_urls / reference_video_urls / reference_audio_urls. Поєднання режиму першого/останнього кадру з будь-якими мультимодальними референсними вхідними даними повертає 400 invalid_request_error.
- Тип: stringX
- Request - Id Необов'язковий ID запиту від клієнта, який повертається у відповіді для діагностики.
- Тип: stringX
- Felo - Channel Упорядкований список публічних кодів каналів, розділених комами. Щоб використовувати стандартний канал, не передавайте цей заголовок; значення default потрібно вказувати окремо. У режимі гаманця default переглядає ефективний порядок публічних каналів моделі у зворотному напрямку, пропускає неопубліковані або недоступні канали та обирає постачальника першого доступного каналу. Він охоплює доступні ендпоінти цього постачальника з тим самим ID моделі в апстрімі та рівнем обслуговування. Явно вказані канали перевіряються в порядку, заданому клієнтом; надсилається лише група постачальника першого каналу. Автоматичного переходу до інших постачальників немає. Застарілі заголовки постачальника не можуть перевизначити маршрутизацію каналів.
Вхідні дані для генерації відео. Пласкі ({model, prompt, ...}) або вкладені ({model, input: {...}}). input має пріоритет. Потрібно використовувати рівно один режим введення; поєднання першого/останнього кадру з мультимодальними референсними вхідними даними відхиляється.
- Тип: stringmodelобов'язкове
Назва моделі на боці Felo, наприклад seedance-2.0-mini.
- Тип: string перелікaspect
_ratio значення- 16:9
- 9:16
- 1:1
- 4:3
- 3:4
- 21:9
- adaptive
- Тип: integerdurationмін.:4макс.:15
Integer numbers.
- Тип: string Формат: urifirst
_frame _url - Тип: booleangenerate
_audio - Тип: objectinput
Необов'язковий вкладений об'єкт input; якщо він присутній, його поля мають пріоритет над сусідніми полями.
- aspectТип: string перелік
_ratio Співвідношення сторін виводу; adaptive відповідає пропорціям вхідного зображення.
значення- 16:9
- 9:16
- 1:1
- 4:3
- 3:4
- 21:9
- adaptive
- durationТип: integerмін.:4макс.:15
Тривалість виводу в секундах.
- firstТип: string Формат: uri
_frame _url URL зображення першого кадру (режим image-to-video).
- generateТип: boolean
_audio Чи генерувати синхронізовану звукову доріжку.
- lastТип: string Формат: uri
_frame _url URL зображення останнього кадру; потрібно використовувати разом із first_frame_url.
- promptТип: stringмаксимальна довжина:2000
Промпт. Обов'язковий для режимів text-to-video та omni-reference.
- referenceТип: array string[] …3Формат: uri
_audio _urls Аудіофрагменти для omni-reference.
- referenceТип: array string[] …9Формат: uri
_image _urls Зображення для omni-reference. Взаємовиключні з першим/останнім кадром.
- referenceТип: array string[] …3Формат: uri
_video _urls Відео для omni-reference. Взаємовиключні з першим/останнім кадром. Додавання відео змінює ціну за одиницю білінгу та додає тривалість вхідного відео до кількості токенів.
- resolutionТип: string перелік
Роздільна здатність виводу. Вища роздільна здатність споживає більше токенів і коштує дорожче.
значення- 480p
- 720p
- 1080p
- 4k
- serviceТип: string | null
_tier Наразі підтримується лише default (standard). Пропущене значення, null, псевдоніми та непідтримувані рядки замінюються на default; інші типи повертають HTTP 400. Налаштовані канали й ціни залишаються без змін. Текстові API надсилають стандартне значення постачальника; API Decisions і генерації пропускають поле апстріму.
- Тип: string Формат: urilast
_frame _url - Тип: stringpromptмаксимальна довжина:2000
- Тип: array string[] …3Формат: urireference
_audio _urls - Тип: array string[] …9Формат: urireference
_image _urls - Тип: array string[] …3Формат: urireference
_video _urls - Тип: string перелікresolutionзначення
- 480p
- 720p
- 1080p
- 4k
- Тип: string | nullservice
_tier Наразі підтримується лише default (standard). Пропущене значення, null, псевдоніми та непідтримувані рядки замінюються на default; інші типи повертають HTTP 400. Налаштовані канали й ціни залишаються без змін. Текстові API надсилають стандартне значення постачальника; API Decisions і генерації пропускають поле апстріму.
- Тип: object · VideoGenerationAccepted202
Завдання прийнято
- перелікkindконстанта:videoобов'язковезначення
- video
- Тип: array string[]outputsобов'язкове
Порожній, доки завдання не завершиться успішно.
- перелікstatusконстанта:queuedобов'язковезначення
- queued
- Тип: stringtask
_id обов'язковеID завдання для опитування статусу.
application/json - Тип: object · GenerationError400
Некоректний запит (невідома модель, змішані режими введення, неприпустимі поля)
Конверт помилки, сумісний з OpenAI.
- Тип: objecterror
- messageТип: stringобов'язкове
- typeТип: string перелікобов'язковезначення
- invalid
_request _error - server
_error
- codeТип: string
- paramТип: string допускає null
application/json - Тип: object · GenerationError401
Недійсний або відсутній API-ключ Felo
Конверт помилки, сумісний з OpenAI.
- Тип: objecterror
- messageТип: stringобов'язкове
- typeТип: string перелікобов'язковезначення
- invalid
_request _error - server
_error
- codeТип: string
- paramТип: string допускає null
application/json - Тип: object · GenerationError402
Недостатній баланс / умови білінгу не виконано
Конверт помилки, сумісний з OpenAI.
- Тип: objecterror
- messageТип: stringобов'язкове
- typeТип: string перелікобов'язковезначення
- invalid
_request _error - server
_error
- codeТип: string
- paramТип: string допускає null
application/json - Тип: object · GenerationError403
Обліковий запис не має дозволу (потрібна підписка або користувача заблоковано). Вимкнені моделі також відхиляються до викликів до апстріму. Уже прийняті запити та завдання продовжують виконуватися.
Конверт помилки, сумісний з OpenAI.
- Тип: objecterror
- messageТип: stringобов'язкове
- typeТип: string перелікобов'язковезначення
- invalid
_request _error - server
_error
- codeТип: string
- paramТип: string допускає null
application/json - Тип: object · GenerationError429
Досягнуто ліміту запитів або витрат
Конверт помилки, сумісний з OpenAI.
- Тип: objecterror
- messageТип: stringобов'язкове
- typeТип: string перелікобов'язковезначення
- invalid
_request _error - server
_error
- codeТип: string
- paramТип: string допускає null
application/json - Тип: object · GenerationError502
Помилка постачальника в апстрімі
Конверт помилки, сумісний з OpenAI.
- Тип: objecterror
- messageТип: stringобов'язкове
- typeТип: string перелікобов'язковезначення
- invalid
_request _error - server
_error
- codeТип: string
- paramТип: string допускає null
application/json - Тип: object · GenerationError503
Служба генерації або служба білінгу тимчасово недоступна
Конверт помилки, сумісний з OpenAI.
- Тип: objecterror
- messageТип: stringобов'язкове
- typeТип: string перелікобов'язковезначення
- invalid
_request _error - server
_error
- codeТип: string
- paramТип: string допускає 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"
]
}