Перейти до основного вмісту
У цій статті буде представлено інструкцію з інтеграції 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. Якщо у вас виникнуть будь-які запитання, будь ласка, звертайтеся до нашої команди технічної підтримки в будь-який час.