Felo API PlatformFelo API Platform
v0.4.0
OpenAPI 3.1.0

Надіслати завдання на генерацію відео

Сервер:https://openapi.felo.ai
Клієнтські бібліотеки

Надіслати завдання на генерацію відео

​

Створює асинхронне завдання генерації відео та одразу повертає 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.
Заголовки
  • X-Request-Id
    Тип: string

    Необов'язковий ID запиту від клієнта, який повертається у відповіді для діагностики.

  • X-Felo-Channel
    Тип: string

    Упорядкований список публічних кодів каналів, розділених комами. Щоб використовувати стандартний канал, не передавайте цей заголовок; значення default потрібно вказувати окремо. У режимі гаманця default переглядає ефективний порядок публічних каналів моделі у зворотному напрямку, пропускає неопубліковані або недоступні канали та обирає постачальника першого доступного каналу. Він охоплює доступні ендпоінти цього постачальника з тим самим ID моделі в апстрімі та рівнем обслуговування. Явно вказані канали перевіряються в порядку, заданому клієнтом; надсилається лише група постачальника першого каналу. Автоматичного переходу до інших постачальників немає. Застарілі заголовки постачальника не можуть перевизначити маршрутизацію каналів.

Тіло·VideoGenerationRequest
обов'язкове
application/json

Вхідні дані для генерації відео. Пласкі ({model, prompt, ...}) або вкладені ({model, input: {...}}). input має пріоритет. Потрібно використовувати рівно один режим введення; поєднання першого/останнього кадру з мультимодальними референсними вхідними даними відхиляється.

  • model
    Тип: string
    обов'язкове

    Назва моделі на боці Felo, наприклад seedance-2.0-mini.

  • aspect_ratio
    Тип: string перелік
    значення
    • 16:9
    • 9:16
    • 1:1
    • 4:3
    • 3:4
    • 21:9
    • adaptive
  • duration
    Тип: integer
    мін.:  
    4
    макс.:  
    15

    Integer numbers.

  • first_frame_url
    Тип: string Формат: uri
  • generate_audio
    Тип: boolean
  • input
    Тип: object

    Необов'язковий вкладений об'єкт input; якщо він присутній, його поля мають пріоритет над сусідніми полями.

    • aspect_ratio
      Тип: string перелік

      Співвідношення сторін виводу; adaptive відповідає пропорціям вхідного зображення.

      значення
      • 16:9
      • 9:16
      • 1:1
      • 4:3
      • 3:4
      • 21:9
      • adaptive
    • duration
      Тип: integer
      мін.:  
      4
      макс.:  
      15

      Тривалість виводу в секундах.

    • first_frame_url
      Тип: string Формат: uri

      URL зображення першого кадру (режим image-to-video).

    • generate_audio
      Тип: boolean

      Чи генерувати синхронізовану звукову доріжку.

    • last_frame_url
      Тип: string Формат: uri

      URL зображення останнього кадру; потрібно використовувати разом із first_frame_url.

    • prompt
      Тип: string
      максимальна довжина:  
      2000

      Промпт. Обов'язковий для режимів text-to-video та omni-reference.

    • reference_audio_urls
      Тип: array string[] …3Формат: uri

      Аудіофрагменти для omni-reference.

    • reference_image_urls
      Тип: array string[] …9Формат: uri

      Зображення для omni-reference. Взаємовиключні з першим/останнім кадром.

    • reference_video_urls
      Тип: array string[] …3Формат: uri

      Відео для omni-reference. Взаємовиключні з першим/останнім кадром. Додавання відео змінює ціну за одиницю білінгу та додає тривалість вхідного відео до кількості токенів.

    • resolution
      Тип: string перелік

      Роздільна здатність виводу. Вища роздільна здатність споживає більше токенів і коштує дорожче.

      значення
      • 480p
      • 720p
      • 1080p
      • 4k
    • service_tier
      Тип: string | null

      Наразі підтримується лише default (standard). Пропущене значення, null, псевдоніми та непідтримувані рядки замінюються на default; інші типи повертають HTTP 400. Налаштовані канали й ціни залишаються без змін. Текстові API надсилають стандартне значення постачальника; API Decisions і генерації пропускають поле апстріму.

  • last_frame_url
    Тип: string Формат: uri
  • prompt
    Тип: string
    максимальна довжина:  
    2000
  • reference_audio_urls
    Тип: array string[] …3Формат: uri
  • reference_image_urls
    Тип: array string[] …9Формат: uri
  • reference_video_urls
    Тип: array string[] …3Формат: uri
  • resolution
    Тип: string перелік
    значення
    • 480p
    • 720p
    • 1080p
    • 4k
  • service_tier
    Тип: string | null

    Наразі підтримується лише default (standard). Пропущене значення, null, псевдоніми та непідтримувані рядки замінюються на default; інші типи повертають HTTP 400. Налаштовані канали й ціни залишаються без змін. Текстові API надсилають стандартне значення постачальника; API Decisions і генерації пропускають поле апстріму.

Відповіді
  • 202
    Тип: object · VideoGenerationAccepted

    Завдання прийнято

    • kind
      перелік
      константа:  
      video
      обов'язкове
      значення
      • video
    • outputs
      Тип: array string[]
      обов'язкове

      Порожній, доки завдання не завершиться успішно.

    • status
      перелік
      константа:  
      queued
      обов'язкове
      значення
      • queued
    • task_id
      Тип: string
      обов'язкове

      ID завдання для опитування статусу.

    application/json
  • 400
    Тип: object · GenerationError

    Некоректний запит (невідома модель, змішані режими введення, неприпустимі поля)

    Конверт помилки, сумісний з OpenAI.

    • error
      Тип: object
      • message
        Тип: string
        обов'язкове
      • type
        Тип: string перелік
        обов'язкове
        значення
        • invalid_request_error
        • server_error
      • code
        Тип: string
      • param
        Тип: string допускає null
    application/json
  • 401
    Тип: object · GenerationError

    Недійсний або відсутній API-ключ Felo

    Конверт помилки, сумісний з OpenAI.

    • error
      Тип: object
      • message
        Тип: string
        обов'язкове
      • type
        Тип: string перелік
        обов'язкове
        значення
        • invalid_request_error
        • server_error
      • code
        Тип: string
      • param
        Тип: string допускає null
    application/json
  • 402
    Тип: object · GenerationError

    Недостатній баланс / умови білінгу не виконано

    Конверт помилки, сумісний з OpenAI.

    • error
      Тип: object
      • message
        Тип: string
        обов'язкове
      • type
        Тип: string перелік
        обов'язкове
        значення
        • invalid_request_error
        • server_error
      • code
        Тип: string
      • param
        Тип: string допускає null
    application/json
  • 403
    Тип: object · GenerationError

    Обліковий запис не має дозволу (потрібна підписка або користувача заблоковано). Вимкнені моделі також відхиляються до викликів до апстріму. Уже прийняті запити та завдання продовжують виконуватися.

    Конверт помилки, сумісний з OpenAI.

    • error
      Тип: object
      • message
        Тип: string
        обов'язкове
      • type
        Тип: string перелік
        обов'язкове
        значення
        • invalid_request_error
        • server_error
      • code
        Тип: string
      • param
        Тип: string допускає null
    application/json
  • 429
    Тип: object · GenerationError

    Досягнуто ліміту запитів або витрат

    Конверт помилки, сумісний з OpenAI.

    • error
      Тип: object
      • message
        Тип: string
        обов'язкове
      • type
        Тип: string перелік
        обов'язкове
        значення
        • invalid_request_error
        • server_error
      • code
        Тип: string
      • param
        Тип: string допускає null
    application/json
  • 502
    Тип: object · GenerationError

    Помилка постачальника в апстрімі

    Конверт помилки, сумісний з OpenAI.

    • error
      Тип: object
      • message
        Тип: string
        обов'язкове
      • type
        Тип: string перелік
        обов'язкове
        значення
        • invalid_request_error
        • server_error
      • code
        Тип: string
      • param
        Тип: string допускає null
    application/json
  • 503
    Тип: object · GenerationError

    Служба генерації або служба білінгу тимчасово недоступна

    Конверт помилки, сумісний з OpenAI.

    • error
      Тип: object
      • message
        Тип: string
        обов'язкове
      • type
        Тип: string перелік
        обов'язкове
        значення
        • invalid_request_error
        • server_error
      • code
        Тип: string
      • param
        Тип: string допускає null
    application/json
Request Example for post/api/v1/videos/generations
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"
  ]
}
Submit a video generation task