Практика видео API · обновлено 20 октября 2026 г. · 11 минут
Kling O1 Video Edit API: точный JSON и запуск через Gate
Kling O1 Edit меняет существующее видео по инструкции. Разберём Pro в едином API Gate: какие поля передать, как связать фото с текстом и как проверить автоматически выбранного поставщика.

Выберите конкретный Edit Pro endpoint
В семействе Kling есть создание видео по картинке, работа с референсами и редактирование существующего ролика. Для рассматриваемой правки в Gate используйте kwaivgi/kling-video-o1 и operation: video-to-video. Это Pro: Standard существует отдельно и не подменяет его ради более низкой цены. Клиент обращается к одному /v1/media, а совместимого поставщика выбирает Gate.
Перед запуском сформулируйте результат: заменить героя, окружение или стиль, сохранив нужные движения. Для замены человека приложите фото; одной фразы о фотографии недостаточно, если файл не передан в соответствующее поле. Не добавляйте параметры от генерации нового ролика только потому, что у них знакомое название. Проверяйте выбранную схему, а не общее описание семейства.
- Проверить Pro: Выберите kwaivgi/kling-video-o1 и операцию video-to-video, проверьте её ограничения.
- Связать входы: Передайте видео и фото, согласуйте @Image1 с порядком ссылок.
- Оценить маршрут: Один /v1/media проверяет совместимость, цену и автоматически выбранного поставщика.
- Принять результат: Сохраните MP4 и подтвердите качество и окончательный billing.
Подготовьте входы и проверьте ограничения
Текущая схема Pro Edit описывает входные MP4 или MOV примерно от трёх до десяти секунд, частоту от двадцати четырёх до шестидесяти кадров в секунду и размер до двухсот мегабайт. Указаны ограничения сторон от семисот двадцати до двух тысяч ста шестидесяти пикселей. Перед реальным заказом перечитайте схему: это свойства конкретного endpoint, а не всех версий Kling.
Для первой проверки удобно подготовить пять секунд обычной ходьбы и одно ясное фото нового героя. Ссылки должны вести на доступные файлы без входа в аккаунт. Локальный путь на компьютере сервер поставщика открыть не сможет. Если используется временная подписанная ссылка, оставьте достаточный срок для очереди и обработки. Проверяйте обе ссылки до платного POST.
Подготовьте JSON единого API
Ниже запрос Pro Edit через единый API Gate. Сохраните его как request.json и замените адреса example.org реальными файлами. video_url — исходный план; image_urls — фотографии по порядку. В тексте @Image1 ссылается на первое фото, @Video1 обозначает исходный ролик. Сначала называем замену, затем перечисляем движение и сцену, которые должны сохраниться. Специальная проверка содержимого находится в parameters.
Для сохранения звука передайте keep_audio: true; здесь оставлен немой вариант. Этот переключатель не создаёт новый голос. Поля duration и resolution в примере отсутствуют намеренно: мы используем исходный видеоматериал и не придумываем управление выходным размером, которого нет в выбранной схеме. Требуемую длину подготовьте до отправки.
{
"model": "kwaivgi/kling-video-o1",
"input": {
"video_url": "https://example.org/source-5s.mp4",
"image_urls": [
"https://example.org/new-character.jpg"
],
"prompt": "Replace the main person in @Video1 with the person from @Image1, including appearance and clothes. Preserve the original movement, timing, camera, background and lighting. Do not transfer the background or pose from the photo.",
"keep_audio": false,
"operation": "video-to-video",
"parameters": {
"enable_safety_checker": true
}
}
}
Не путайте @Image и @Element
Фотографии в image_urls нумеруются по порядку массива. Если переставить ссылки, изменится смысл @Image1. Специальная структура elements, когда она есть в схеме Gate, передаётся в parameters и содержит описание персонажа с ракурсами; текст может обозначать его @Element1. Не используйте имя элемента, которого нет в теле. Для первого запуска достаточно одной фотографии.
В схеме при входном видео суммарно допускается до четырёх элементов и референсных изображений. Простой пример использует одну фотографию и не требует сложной структуры. Начните с него, чтобы проверить замену и приёмку. Если добавляете ракурсы, убедитесь, что все фото относятся к одному персонажу и порядок соответствует тексту. Большее число ссылок само по себе не гарантирует улучшение результата.
Перед отправкой прочитайте инструкцию так, будто не видите интерфейс: понятно ли, какая ссылка отвечает за нового героя? Если фотография показывает жёлтое платье, текст должен описывать именно его. Для нескольких входов полезно заранее составить список номеров и назначений. Это простая проверка целостности запроса, которая устраняет ошибки сопоставления без дополнительных платных попыток.
Проверьте схему, оценку и причину выбора
Перед отправкой получите GET /v1/media/models/schema с model=kwaivgi/kling-video-o1 и operation=video-to-video. Схема описывает общие поля и parameters этой операции. Затем отправьте сохранённый request.json в POST /v1/media/estimate, как показано ниже. Такой вызов проверяет маршрут и оценку без платного создания ролика; новое задание на этом шаге не возникает.
В ответе provider называет выбранного поставщика, reason объясняет решение. only_compatible_route означает единственный совместимый маршрут, lowest_comparable_price — меньшую из подтверждённых сопоставимых оценок, price_comparison_incomplete — что минимум доказать нельзя. Неизвестная цена возвращается как null и не считается нулём. Актуальное решение сохраняется при создании; оценка не фиксирует будущую цену или провайдера.
| Шаг | Запрос | Что возвращается |
|---|---|---|
| Схема | GET /v1/media/models/schema?model=kwaivgi%2Fkling-video-o1&operation=video-to-video | Параметры выбранной операции |
| Оценка | POST /v1/media/estimate | Предварительный provider, reason и цена |
| Создание | POST /v1/media/generations | media_generation и ID |
| Опрос | GET /v1/media/generations/:id | Статус, файлы, маршрут и billing |
curl --fail-with-body -X POST \
'https://api.celestriagate.com/v1/media/estimate' \
-H "Authorization: Bearer $CELESTRIA_API_KEY" \
-H 'Content-Type: application/json' \
--data-binary @request.json
Создайте одно задание и продолжайте по его ID
После схемы и оценки команда ниже создаёт потенциально платную задачу из request.json. Ключ CELESTRIA_API_KEY принадлежит Gate. В заголовке Idempotency-Key используйте стабильный уникальный номер попытки. Сохраните JSON вместе с ним, не включая секрет в публичный отчёт. Даже если совместимый поставщик один, клиентский запрос и путь создания остаются такими же.
При сетевом тайм-ауте не меняйте тело и ключ: повтор исходного запроса восстанавливает ту же задачу. Если ID уже известен, переходите к GET. После изменения фото или инструкции создаётся новый творческий заказ с новым ключом. Статусы очереди и awaiting_billing требуют ожидания, а не ещё одного платного запуска.
curl --fail-with-body -X POST \
'https://api.celestriagate.com/v1/media/generations' \
-H "Authorization: Bearer $CELESTRIA_API_KEY" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: YOUR_UNIQUE_ORDER_001' \
--data-binary @request.json
Получите MP4 и подтвердите окончательный расчёт
completed означает, что результат и стоимость готовы. Задание media_generation содержит result и файлы в files; для этого сценария видео доступно через result.video.url либо соответствующий файл. Провайдер и причина выбора находятся в provider и routing. Скачивание с CDN выполняйте без передачи ключа Gate внешнему адресу. Сохраните MP4 для долгого хранения; при failed сначала прочитайте error.
На дату статьи ставка Pro на fal составляет $0,168 за секунду. Наш отдельный реальный тест пятисекундного исходника подтвердил $0,84 и 93,79 ₽ Gate. Персонаж в парке заменился, лицо со спины оценить нельзя. Этот пример не задаёт постоянный курс и не доказывает качество будущих сцен; для своего заказа берите billing.cost_rub и billing.upstream_cost_usd.
Как отделить рабочий API от удачного художественного дубля
После скачивания проверьте длительность, воспроизведение и наличие ожидаемой дорожки. Затем сравните исходник и результат на одинаковых моментах. Выделите сохранённые свойства отдельно: направление движения, фон, камера, свет. Замена одежды может получиться, но руки будут деформироваться; технический статус не заменяет такую проверку.
В отчёте клиенту покажите исходное видео, фото, итоговый ролик и ограничения оценки. Если лицо не видно, прямо отметьте, что сходство не проверено. Следующую попытку планируйте по конкретному дефекту и меняйте одну причину. Это помогает контролировать бюджет и не превращать генерацию в серию несвязанных повторов.
Частые вопросы
Какой ID использовать для Kling O1 Edit Pro?
Используйте model: kwaivgi/kling-video-o1 и input.operation: video-to-video. Схема и оценка находятся в /v1/media, создание — в /v1/media/generations, проверка — в /v1/media/generations/:id. Совместимый поставщик выбирается автоматически.
Зачем image_urls является массивом?
API принимает упорядоченные фотографии: первая обозначается @Image1, вторая @Image2. Даже при одном фото массив сохраняется. Для PixVerse в едином API фотографии также передаются в image_urls; специальные поля модели находятся в parameters.
Можно указать длительность пять секунд?
Для этой операции подготовьте вход нужной длины. В примере нет duration или resolution: просьба о длительности не заменяет обрезку исходника, а выдуманный параметр размера не добавляет возможности маршруту.
Всегда ли общий API выбирает fal как самый дешёвый?
Нет. Он проверяет совместимость операции и параметров. Один подходящий маршрут означает only_compatible_route, неполные цены — price_comparison_incomplete. Минимум доказывается только при сопоставимых подтверждённых оценках.