Перейти к основному содержанию
В этой статье будет представлена инструкция по интеграции Kling Motion Generation API, который позволяет генерировать официальные видео Kling посредством ввода пользовательских параметров.

Процесс получения доступа

Чтобы использовать Kling Motion Generation API, сначала перейдите в консоль Ace Data Cloud, чтобы получить ваш API Token, и сохраните его для дальнейшего использования. Если вы ещё не вошли в систему или не зарегистрировались, вы будете автоматически перенаправлены на страницу входа, где вам будет предложено зарегистрироваться и войти, после завершения вы автоматически вернётесь на текущую страницу. Один API Token позволяет вызывать все сервисы платформы, нет необходимости подавать отдельную заявку для каждого сервиса. При первом получении предоставляется бесплатный лимит, который можно использовать для бесплатного ознакомления; при недостатке лимита вы можете пополнить общий баланс в консоли.
📘 Полная документация: Kling Motion Generation API →

Базовое использование

Сначала ознакомимся с базовым способом использования: достаточно ввести текст запроса prompt, референсное изображение image_url и ссылку на референсное видео video_url, чтобы получить обработанный результат, затем нам также необходимо ввести модель mode, в настоящее время доступны главным образом модели std, pro, конкретное содержание приведено ниже:

Можно увидеть, что здесь мы установили Request Headers, включая:
  • accept: формат результата ответа, который требуется получить; здесь указано application/json, то есть формат JSON.
  • authorization: ключ для вызова API, после получения можно напрямую выбрать из выпадающего списка.
Также установлен Request Body, включая:
  • image_url: URL изображения для референса внешности персонажа. Поддерживаются JPG/JPEG/PNG, файл ≤50MB, ширина и высота обе ≥300px, соотношение сторон 1:2.5~2.5:1; персонаж должен чётко отображать верхнюю часть тела или всё тело и голову.
  • video_url: URL референсного видео движения. Поддерживаются MP4/MOV, файл ≤100MB, ширина и высота каждая 340–3850px, не менее 3 секунд; при character_orientation=image максимальная продолжительность 10 секунд, при character_orientation=video — максимальная продолжительность 30 секунд. Рекомендуется использовать непрерывное однокадровое видео, в котором персонаж всегда находится в кадре.
  • mode: режим генерации видео, главным образом существуют стандартный режим std и сверхбыстрый режим pro.
  • keep_original_sound: можно выбрать, сохранять ли оригинальный звук видео, значения перечисления: yes, no.
  • character_orientation: ориентация персонажа в сгенерированном видео, можно выбрать соответствие изображению или соответствие видео, значения перечисления: image, video.
  • prompt: текст запроса.
  • callback_url: URL, на который необходимо отправить результат обратного вызова.
  • async: необязательно, при установке true интерфейс немедленно возвращает task_id, без необходимости предоставлять callback_url, после чего результат получается посредством опроса соответствующего интерфейса запроса задач.
После выбора можно заметить, что справа также сгенерирован соответствующий код, как показано на рисунке:

Нажмите кнопку «Try», чтобы выполнить тестирование, как показано на рисунке выше, здесь мы получили следующий результат:
Результат возврата содержит несколько полей, описание следующее:
  • success, состояние задачи генерации видео в данный момент.
  • task_id, ID задачи генерации видео в данный момент.
  • video_id, ID видео задачи генерации видео в данный момент.
  • video_url, ссылка на видео задачи генерации видео в данный момент.
  • duration, длительность видео задачи генерации видео в данный момент.
  • state, статус задачи генерации видео в данный момент.
Можно увидеть, что мы получили удовлетворительную информацию о видео, нам достаточно получить сгенерированное видео Kling по адресу ссылки на видео в data результата. Кроме того, если вы хотите сгенерировать соответствующий код интеграции, можно напрямую скопировать сгенерированный код, например, код CURL выглядит следующим образом:

Асинхронный обратный вызов

Поскольку время генерации Kling Motion Generation API относительно длительное, примерно 1–2 минуты, если API долго не отвечает, HTTP-запрос будет постоянно поддерживать соединение, что приводит к дополнительному потреблению системных ресурсов, поэтому данный API также предоставляет поддержку асинхронного обратного вызова. Общий процесс следующий: когда клиент инициирует запрос, дополнительно указывается поле callback_url, после того как клиент инициирует API-запрос, API немедленно вернёт результат, содержащий информацию поля task_id, которое представляет ID текущей задачи. После завершения задачи результат генерации видео будет отправлен в виде POST JSON на указанный клиентом callback_url, в нём также содержится поле task_id, таким образом результаты задач могут быть связаны через ID. Ниже мы на примере ознакомимся с тем, как конкретно выполнять операции. Сначала, обратный вызов Webhook — это сервис, который может принимать HTTP-запросы, разработчик должен заменить его на URL самостоятельно развёрнутого HTTP-сервера. Здесь для удобства демонстрации используется публичный пример сайта Webhook https://webhook.site/, откройте этот сайт, чтобы получить Webhook URL, как показано на рисунке: Скопируйте этот URL, и его можно использовать в качестве Webhook, пример здесь: https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3. Далее мы можем установить поле callback_url в указанный выше Webhook URL, одновременно заполнив соответствующие параметры, конкретное содержание показано на рисунке:

Нажмите запуск, и можно заметить, что немедленно будет получен результат, как показано ниже:
Немного подождав, мы можем наблюдать результат сгенерированного видео на https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3, как показано на рисунке: Содержание следующее:
Можно увидеть, что в результате есть поле task_id, остальные поля аналогичны вышеописанным, с помощью этого поля можно реализовать связывание задач.

Обработка ошибок

При вызове API, если возникает ошибка, API вернёт соответствующий код ошибки и информацию. Например:
  • 400 token_mismatched:Некорректный запрос, возможно, из-за отсутствующих или недействительных параметров.
  • 400 api_not_implemented:Некорректный запрос, возможно, из-за отсутствующих или недействительных параметров.
  • 401 invalid_token:Не авторизовано, недействительный или отсутствующий токен авторизации.
  • 429 too_many_requests:Слишком много запросов, вы превысили ограничение скорости.
  • 500 api_error:Внутренняя ошибка сервера, на сервере что-то пошло не так.

Пример ответа с ошибкой

Заключение

С помощью этого документа вы уже узнали, как использовать Kling Motion Generation API для реализации функции управления движениями из официального Kling. Надеемся, этот документ поможет вам лучше интегрировать и использовать данный API. Если у вас возникнут какие-либо вопросы, пожалуйста, в любое время свяжитесь с нашей командой технической поддержки.