Skip to Content
APIГенерация видеоСоздание задачи

Создание видео

Отправьте задачу генерации видео. Запрос сразу возвращает 202 Accepted с id задачи и URL для опроса — генерация выполняется асинхронно. Опрашивайте задачу или получите webhook, затем прочитайте результат через Получение статуса видео.

POST https://api.ofox.io/v1/videos

Параметры запроса

ПараметрТипОбязателенОписание
modelstringModel slug, например bytedance/seedance-2.5 или bytedance/seedance-2.0
promptstringТекстовое описание видео
durationintegerДлина видео в секундах
resolutionstring480p / 720p / 1080p / 1K / 2K / 4K
aspect_ratiostring16:9 / 9:16 / 1:1 / 4:3 / 3:4 / 3:2 / 2:3 / 21:9 / 9:21
sizestringТочный размер в пикселях WIDTHxHEIGHT (например, 1280x720), альтернатива resolution + aspect_ratio
frame_imagesarrayУправление кадрами (изображение в видео / первый и последний кадр). Если присутствует ⇒ обрабатывается как изображение в видео. См. ниже
input_referencesarrayЗадает объект / стиль (референс в видео), не точные якоря кадров. См. ниже
real_personbooleanПо умолчанию false. Установите true для предобработки референсов с реальными людьми перед генерацией; требуется хотя бы одно изображение
generate_audiobooleanПо умолчанию true для моделей, поддерживающих аудиовывод
seedintegerSeed для детерминированной генерации (не гарантируется у всех провайдеров)
callback_urlstringURL webhook для конечного состояния, должен использовать HTTPS (см. Webhooks)
providerobjecttype закрепляет обслуживающего провайдера, options пробрасывает специфичные для него параметры. См. Маршрутизация провайдеров

Элемент frame_images[]

Каждый элемент закрепляет один кадр результата. frame_type — это first_frame или last_frame.

{ "type": "image_url", "image_url": { "url": "https://example.com/first.jpg" }, "frame_type": "first_frame" }

Элемент input_references[]

Передавайте референсы изображения / аудио / видео через type — они направляют объект, стиль и консистентность, но не являются точными якорями кадров:

{ "type": "image_url", "image_url": { "url": "https://example.com/subject.jpg" } } { "type": "audio_url", "audio_url": { "url": "https://example.com/voice.mp3" } } { "type": "video_url", "video_url": { "url": "https://example.com/ref.mp4" } }
МедиаtypeМакс. количествоДругие ограничения
Изображениеimage_url≤ 9
Аудиоaudio_url≤ 3≤ 15s на клип
Видеоvideo_url≤ 1

Превышение любого лимита возвращает 400 too_many_references (см. Ошибки).

frame_images и input_references взаимоисключающие — один запрос использует одно или другое, но не оба одновременно. Отправка обоих возвращает 400 references_conflict.

real_person: Референсы с реальными людьми

Одношаговый процесс Ofox, сравнение с регистрацией ассетов Seedance и рекомендации по повторной отправке приведены в разделе Референсы с реальными людьми.

Установите поле верхнего уровня real_person в true, если референс содержит узнаваемого реального человека. Перед отправкой запроса на генерацию Ofox применяет ко всем изображениям в выбранном поле референсов предобработку для защиты приватности. По умолчанию значение равно false, поэтому существующие запросы не меняются.

{ "model": "bytedance/seedance-2.0", "prompt": "Человек идет по кинематографичному ночному рынку", "real_person": true, "input_references": [ { "type": "image_url", "image_url": { "url": "https://example.com/person.jpg" } } ] }

real_person можно использовать с изображениями в frame_images или input_references; эти два поля остаются взаимоисключающими. Требуется хотя бы один референс-изображение, иначе API возвращает 400 invalid_request.

Предобработка может уменьшить ложные срабатывания anti-deepfake-проверок upstream-провайдера, но не обходит его политику контента и не гарантирует принятие. Провайдер все равно может отклонить запрос; отклоненная задача не тарифицируется. Исправьте входные данные или повторите запрос. См. ошибки предобработки real_person.

Режим генерации (неявный)

Поля gen_mode нет. Режим определяется по переданным входным данным:

РежимКогда определяется
text2videoНет ни frame_images, ни input_references
img2videoframe_images с одним first_frame
img2video_endframe_images с first_frame + last_frame
imgref2videoinput_references, только изображения
mixref2videoinput_references со смешанными изображениями / аудио / видео

Ответ

202 Accepted — задача принята со status: "pending" и polling_url:

{ "id": "9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718", "status": "pending", "polling_url": "https://api.ofox.io/v1/videos/9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718" }

Опрашивайте polling_url (или дождитесь webhook), пока задача не достигнет конечного состояния — см. Получение статуса видео.

Примеры запросов

Одна схема /v1/videos покрывает каждый режим генерации; режим выбирается неявно по входным данным. Каждый пример ниже запускается как есть.

Нет frame_images / input_references → текст в видео.

Terminal
# Необязательно: закрепить провайдера. Без этого поля платформа маршрутизирует сама # "provider": { "type": "byteplus" } curl -X POST https://api.ofox.io/v1/videos \ -H "Authorization: Bearer $OFOX_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "bytedance/seedance-2.5", "prompt": "A golden retriever running on the beach at sunset", "duration": 5, "resolution": "1080p", "aspect_ratio": "16:9", "generate_audio": true }'

Совмещаемые опции

Поля ниже ортогональны режиму генерации — добавляйте любое из них в любой body запроса выше.

Получите POST на свой эндпоинт, когда задача достигнет конечного состояния, вместо опроса.

{ "model": "bytedance/seedance-2.5", "prompt": "...", "callback_url": "https://your-app.example/webhooks/ofox-video" }

callback_url должен использовать HTTPS. См. Webhooks, чтобы узнать payload и подпись.

Last updated on