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

Процесс подачи заявки

Чтобы использовать API, сначала необходимо перейти на страницу API генерации видео Kling и подать заявку на соответствующую услугу. После перехода на страницу нажмите кнопку «Acquire», как показано на изображении: Если вы еще не вошли в систему или не зарегистрировались, вас автоматически перенаправит на страницу входа, где вам будет предложено зарегистрироваться и войти. После регистрации и входа вы автоматически вернетесь на текущую страницу. При первой подаче заявки предоставляется бесплатный лимит, который позволяет бесплатно использовать этот API.

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

Сначала ознакомьтесь с основным способом использования, который заключается в вводе подсказки prompt, действия action, URL-адреса изображения для первого кадра start_image_url и модели model, чтобы получить обработанный результат. Сначала необходимо просто передать поле action, значение которого будет text2video. Оно включает три основных действия: создание видео из текста (text2video), создание видео из изображения (image2video), расширение видео (extend). Затем нам также нужно ввести модель model, в настоящее время доступны следующие модели: kling-v1, kling-v1-6, kling-v2-master, kling-v2-1-master, kling-v2-5-turbo, kling-video-o1, конкретное содержание представлено ниже:

Здесь мы видим, что мы настроили заголовки запроса, включая:
  • accept: формат ответа, который вы хотите получить, здесь указано application/json, то есть формат JSON.
  • authorization: ключ API, который можно выбрать из выпадающего списка после подачи заявки.
Кроме того, мы настроили тело запроса, включая:
  • model: модель для генерации видео, в основном kling-v1, kling-v1-6, kling-v2-master, kling-v2-1-master, kling-v2-5-turbo, kling-video-o1.
  • mode: режим генерации видео, в основном стандартный режим std и режим высокой скорости pro.
  • action: действие для этой задачи генерации видео, включая три действия: создание видео из текста (text2video), создание видео из изображения (image2video), расширение видео (extend).
  • start_image_url: ссылка на изображение для первого кадра, необходимая при выборе действия создания видео из изображения image2video.
  • end_image_url: необязательный параметр для указания последнего кадра при создании видео из изображения.
  • aspect_ratio: соотношение сторон видео, необязательный параметр, поддерживает 16:9, 9:16, 1:1, по умолчанию 16:9.
  • cfg_scale: сила корреляции, диапазон [0,1], чем больше, тем ближе к подсказке.
  • camera_control: необязательный параметр, контролирующий параметры движения камеры, поддерживает предустановки type/simple, а также конфигурации horizontal, vertical, pan, tilt, roll, zoom и т.д.
  • negative_prompt: необязательный параметр, слова, которые не должны появляться, максимум 200 символов.
  • element_list: список ссылок на основные элементы, применим только к модели kling-video-o1, конкретное использование этого параметра см. в документации.
  • video_list: список ссылок на видео, получаемый через URL, применим только к модели kling-video-o1, конкретное использование этого параметра см. в документации.
  • prompt: подсказка.
  • callback_url: URL для обратного вызова результата.
После выбора вы также можете увидеть сгенерированный код справа, как показано на изображении:

Нажмите кнопку «Try», чтобы протестировать, как показано на изображении, и вы получите следующий результат:
{
  "success": true,
  "video_id": "af9a1af0-9aa0-4638-81c1-d41d6143c508",
  "video_url": "https://cdn.klingai.com/bs2/upload-kling-api/7485378259/text2video/Cjil4mfBfs0AAAAAAKbMQQ-0_raw_video_1.mp4",
  "duration": "5.1",
  "state": "succeed",
  "task_id": "e3a575aa-a4bd-49c8-9b12-cde38d5462e0"
}
Возвращаемый результат содержит несколько полей, описание которых приведено ниже:
  • success: статус задачи генерации видео.
  • task_id: ID задачи генерации видео.
  • video_id: ID видео, созданного в рамках задачи генерации.
  • video_url: ссылка на созданное видео.
  • duration: продолжительность созданного видео.
  • state: статус задачи генерации видео.
Мы получили удовлетворительную информацию о видео, и нам нужно просто получить сгенерированное видео Kling по ссылке, указанной в data. Если вы хотите сгенерировать соответствующий код интеграции, вы можете просто скопировать его, например, код CURL будет следующим:
curl -X POST 'https://api.acedata.cloud/kling/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "text2video",
  "model": "kling-v1",
  "prompt": "Белая керамическая кружка с кофе на блестящем мраморном столешнице при утреннем свете из окна. Камера медленно вращается на 360 градусов вокруг кружки, на мгновение останавливаясь на ручке."
}'

Функция расширения видео

Если вы хотите продолжить создание уже сгенерированного видео Kling, вы можете установить параметр action в значение extend и ввести ID видео, для которого нужно продолжить создание. ID видео можно получить на основе основного использования, как показано на изображении:

В этом случае вы можете увидеть, что ID видео равен:
"video_id": "030bb06d-98d4-4044-9042-0aa0822e8c8c"
Обратите внимание, что здесь video_id видео — это ID сгенерированного видео. Если вы не знаете, как создать видео, вы можете обратиться к основному использованию, описанному выше.
Далее вам необходимо заполнить следующую подсказку, чтобы настроить создание видео, и можно указать следующее содержание:
  • model:модель для генерации видео, в основном это модели kling-v1, kling-v1-5 и kling-v1-6.
  • mode:режим генерации видео, в основном это стандартный режим std и режим высокой скорости pro.
  • duration:длительность видео для данной задачи генерации, в основном включает 5 секунд и 10 секунд.
  • start_image_url:при выборе действия по генерации видео из изображения image2video необходимо загрузить ссылку на изображение первого кадра.
  • prompt:подсказка.
Пример заполнения:

После заполнения автоматически сгенерировался следующий код:

Соответствующий код на Python:
import requests

url = "https://api.acedata.cloud/kling/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "action": "extend",
    "model": "kling-v1",
    "video_id": "030bb06d-98d4-4044-9042-0aa0822e8c8c",
    "prompt": "Белая керамическая кружка с кофе на глянцевом мраморном столе при утреннем свете из окна. Камера медленно вращается на 360 градусов вокруг кружки, на мгновение останавливаясь на ручке.",
    "duration": 10
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
При нажатии на запуск можно увидеть результат, как показано ниже:
{
  "success": true,
  "video_id": "bbc3b105-ac72-4de2-8390-0cb37dc7d41e",
  "video_url": "https://cdn.klingai.com/bs2/upload-kling-api/7822108635/extendVideo/Cjil4mfBfs0AAAAAAKhr6A-0_raw_video_1.mp4",
  "duration": "9.6",
  "state": "succeed",
  "task_id": "3ece87e6-3ee3-4f5e-bd70-5ae5eca89a23"
}
Можно увидеть, что содержимое результата совпадает с вышеупомянутым, что и реализует функцию расширения видео.

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

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

При нажатии на запуск можно сразу увидеть результат, как показано ниже:
{
  "task_id": "20068983-0cc9-4c6a-aeb6-9c6a3c668be0"
}
Через некоторое время мы можем наблюдать результат сгенерированного видео на https://webhook.site/624b2c78-6dbd-4618-9d2b-b32eade6d8c3, как показано на изображении: Содержимое следующее:
{
    "success": true,
    "video_id": "030bb06d-98d4-4044-9042-0aa0822e8c8c",
    "video_url": "https://cdn.klingai.com/bs2/upload-kling-api/7822108635/text2video/CjJzzGfBfqcAAAAAAKdVMQ-0_raw_video_1.mp4",
    "duration": "5.1",
    "state": "succeed",
    "task_id": "20068983-0cc9-4c6a-aeb6-9c6a3c668be0"
}
Можно увидеть, что в результате есть поле task_id, остальные поля аналогичны вышеупомянутым, с помощью этого поля можно связать задачи.

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

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

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

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Заключение

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