Практика видео API · обновлено 20 октября 2026 г. · 11 минут

Kling O1 Video Edit API: точный JSON и запуск через Gate

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

Kling O1 Video Edit API: точный JSON и запуск через Gate
Иллюстрация сценария работы с видео API. Новых платных генераций для этого материала не проводилось.

Выберите конкретный Edit Pro endpoint

В семействе Kling есть создание видео по картинке, работа с референсами и редактирование существующего ролика. Для рассматриваемой правки в Gate используйте kwaivgi/kling-video-o1 и operation: video-to-video. Это Pro: Standard существует отдельно и не подменяет его ради более низкой цены. Клиент обращается к одному /v1/media, а совместимого поставщика выбирает Gate.

Перед запуском сформулируйте результат: заменить героя, окружение или стиль, сохранив нужные движения. Для замены человека приложите фото; одной фразы о фотографии недостаточно, если файл не передан в соответствующее поле. Не добавляйте параметры от генерации нового ролика только потому, что у них знакомое название. Проверяйте выбранную схему, а не общее описание семейства.

Как это устроено
  1. Проверить Pro: Выберите kwaivgi/kling-video-o1 и операцию video-to-video, проверьте её ограничения.
  2. Связать входы: Передайте видео и фото, согласуйте @Image1 с порядком ссылок.
  3. Оценить маршрут: Один /v1/media проверяет совместимость, цену и автоматически выбранного поставщика.
  4. Принять результат: Сохраните MP4 и подтвердите качество и окончательный billing.
Схема: Kling O1 Video Edit API: точный JSON и запуск через Gate
Четыре шага работы. Обучающая схема, а не новый результат генерации.

Подготовьте входы и проверьте ограничения

Текущая схема 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/generationsmedia_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. Минимум доказывается только при сопоставимых подтверждённых оценках.

Источники

Канонический адрес материала · Получить API-ключ