Обзор API Yes Ai для нейросети KLING - оживление фото и изображений

API Yes Ai включает в себя нейросеть Kling, которая позволяет оживить фото или изображение на основе текстового описания вместе с заданными начальными и конечными кадрами. Кроме того, убедитесь, что изображения, которые вы анимируете, не содержат запрещенного контента.

Обзор API Yes Ai для нейросети KLING - оживление фото и изображений
Обзор API Yes Ai для нейросети KLING - оживление фото и изображений

Прежде чем использовать KLING API, мы предлагаем изучить возможности этой нейросети с помощью нашего Telegram-бота @yes_ai_bot. Все соответствующие инструкции и рекомендации вы можете найти в этой статье:

Для доступа к API Yes Ai вам понадобится уникальный ключ. Инструкцию по получению этого ключа можно найти в следующем документе.

Существуют различные методы анимации изображений:

  • анимацию можно делать исключительно на первом кадре (даже без запроса - промпта);
  • анимировать можно используя первый кадр вместе с текстовым описанием (промпт);
  • анимацию также можно создавать, используя как начальный, так и конечный кадр (без промпта);
  • у вас есть возможность анимировать, включая начальный и конечный кадры с использованием промпта;
  • дополнительно можно продлить анимацию ранее созданного в KLING видео с промтом.

Как оживить фото (сделать генерацию) в API Yes Ai для нейросети KLING

POST https://api.yesai.su/v2/yesvideo/aniimage/kling
headers: { Content-Type: application/json, Authorization: Bearer }

Пример API запроса для подачи задания на оживление картинки в Kling

curl -X POST https://api.yesai.su/v2/yesvideo/aniimage/kling -H "Authorization: Bearer <token>" -H "Content-Type: application/json" -d '{ "image_url": "https://yoururl.com/image1.jpeg", "prompt": "текст описания анимации - промт", "final_frame_url": "https://yoururl.com/image2.jpeg" }'

Параметры:

image_url = '' (обязательно, URL исходного изображения)
prompt = '' (необязательно, описание задачи; необходимо, если final_frame_url не указан)
final_frame_url = '' (необязательно, URL-адрес конечного изображения кадра; необходимо, если запрос - prompt не указан)

Пожалуйста, обрати внимание! Наша система автоматически определит тип задачи на основе переменных, которые вы включаете в свой запрос. Параметр "image_url" необходим для всех типов генерации, за исключением продления ранее созданного видео в Kling, о котором речь пойдет отдельно.

Возможные ошибки, список:

['success' => false, 'message' => 'IMAGE_URL_IS_EMPTY'], 400
['success' => false, 'message' => 'IMAGE_URL_NOT_VALID'], 400
['success' => false, 'message' => 'IMAGE_FILE_SIZE_NOT_VALID'], 400
['success' => false, 'message' => 'IMAGE_MIME_TYPE_NOT_VALID'], 400
['success' => false, 'message' => 'PROMPT_IS_EMPTY'], 400
['success' => false, 'message' => 'PROMPT_NOT_VALID'], 400
['success' => false, 'message' => 'FINAL_FRAME_URL_IS_EMPTY'], 400
['success' => false, 'message' => 'FINAL_FRAME_URL_NOT_VALID'], 400
['success' => false, 'message' => 'FINAL_FRAME_FILE_SIZE_NOT_VALID'], 400
['success' => false, 'message' => 'FINAL_FRAME_MIME_TYPE_NOT_VALID'], 400
['success' => false, 'message' => 'UNAUTHORIZED'], 401
['success' => false, 'message' => 'IMAGE_NOT_FOUND'], 404
['success' => false, 'message' => 'FINAL_FRAME_NOT_FOUND'], 404
['success' => false, 'message' => 'USER_HAS_BEEN_BANNED'], 409
['success' => false, 'message' => 'USER_HAS_BEEN_DELETED'], 409
['success' => false, 'message' => 'NOT_ENOUGH_RPOINTS'], 409
['success' => false, 'message' => 'TASK_LIMIT_EXCEEDED'], 409
['success' => false, 'message' => 'PROMPT_NSFW_WORDS'], 409
['success' => false, 'message' => 'PROMPT_FAILED_TO_TRANSLATE'], 409
['success' => false, 'message' => 'TOO_MANY_REQUESTS'], 429
['success' => false, 'message' => 'INTERNAL_SERVER_ERROR'], 500

Ответ при успешной подаче нового задания через API Yes Ai:

['success' => true, 'message' => 'OK', 'results' => ['animation_data' => [ ... ]]], 200

Инструкция по проверке выполнения задания по его iD через API Yes Ai

GET https://api.yesai.su/v2/yesvideo/animations/{id}
headers: { Content-Type: application/json, Authorization: Bearer }

Пример запроса для получения статуса выполнения задания в Kling:

curl -X GET https://api.yesai.su/v2/yesvideo/animations/{id} -H "Authorization: Bearer <token>" -H "Content-Type: application/json"

Параметры:

{id} = 12345 (обязательно, id задания)

Возможные ошибки, список:

['success' => false, 'message' => 'ID_IS_EMPTY'], 400
['success' => false, 'message' => 'ID_NOT_VALID'], 400
['success' => false, 'message' => 'ID_NOT_FOUND'], 404
['success' => false, 'message' => 'UNAUTHORIZED'], 401
['success' => false, 'message' => 'TOO_MANY_REQUESTS'], 429
['success' => false, 'message' => 'INTERNAL_SERVER_ERROR'], 500

Формат ответа при успешной проверке статуса выполнения задания в нейросети Kling:

['success' => true, 'message' => 'OK', 'results' => ['animation_data' => [ ... ]]], 200

Возможные коды статусов:

  • "status": 0 ("status_description":"in queue") - задача в данный момент ожидает в очереди;
  • "status": 1 ("status_description":"in progress") - задача принята к выполнению (нужно подождать);
  • "status": 2 ("status_description":"completed") - задача успешно завершена (теперь можно приступать к обработке результатов);
  • "status": 3 ("status_description":"rejected with error") - задание отклонено из-за ошибки (причину можно узнать в разделах comment_ru" и "comment_en");
  • "status": 4 ("status_description":"rejected due to timeout") - задача отклонена по причине истечения времени ожидания (вам нужно будет отправить задачу еще раз).

Обзор параметров, найденных в ответе API Yes Ai при выполнении задачи по оживлению изображения с помощью нейронной сети Клинг.

{ "success": true, // данные успешно получены "message": "OK", "results": { "animation_data": { "id": 1733, // уникальный ID задания в системе Yes Ai "user_id": 1234567890, // ID пользователя, который подал задание "tariff_id": 30, // тарифный план пользователя (0 - Demo, 5 - Micro, 10 - Start, 20 - Standard, 30 - VIP) "type": 15, // тип выполненного задания, 15 - оживление картинки в нейросети Kling "photo_url": "", "image_url": "https://yoururl.com/tests/photo1.jpeg", // ссылка с исходным изображением, которое отправил клиент "audio_url": "", "video_url": "", "final_frame_url": "", // ссылка с исходным изображением финального кадра, если оно было отправлено клиентом "result_url": "https://yesai.su/files/yesvideo/animations/1234567890_17200000007595.mp4", // результат выполнения задания в формате MP4, его необходимо скачать на свой сервер "result_type": "video", // тип файла для выполненного задания, для Kling это всегда 'video' "result_data": { "video_width": 1024, // ширина видео в пикселях, которое является результатом выполнения задания "video_height": 1024, // высота видео в пикселях, которое является результатом выполнения задания "video_duration": 6, // длительность видео в секундах "video_durrange": 0, // переменная не используется в этом типе задания "video_fps": 24 // количество кадров в секунду }, "comment_ru": "", // комментарий к заданию на русском языке, он заполняется только в том случае, если задание не удалось выполнить "comment_en": "", // комментарий к заданию на английском языке, он заполняется только в том случае, если задание не удалось выполнить "accounting": { "total_cost": 35, // итоговая стоимость выполнения задания в условных единицах "spent_points": 0, // количество ⭐️ баллов, которые были сняты с баланса за выполнение задания. Для Kling поле всегда будет равно 0, т.к. оплата производится в 🔅 монетах "spent_rpoints": 35, // количество 🔅 монет, которые были сняты с баланса за выполнение задания "spent_repost_points": 0, // количество бонусных баллов за репосты, которое было снято за выполнение задания. Для Kling поле всегда будет равно 0, т.к. оплата производится в 🔅 монетах "spent_balance": 0, // количество денег с основного баланса, которое было снято за выполнение задания. Для Kling поле всегда будет равно 0, т.к. оплата производится в 🔅 монетах "spent_rbalance": 0, // количество денег с бонусного баланса, которое было снято за выполнение задания. Для Kling поле всегда будет равно 0, т.к. оплата производится в 🔅 монетах "remaining_points": 1811, // остаток средств на балансе ⭐️ баллов после выполнения задания "remaining_rpoints": 3540.90288, // остаток средств на балансе 🔅 монет после выполнения задания "remaining_repost_points": 0, // остаток баллов на балансе репостов после выполнения задания "remaining_balance": 0, // остаток средств на основном балансе после выполнения задания "remaining_rbalance": 7078.8033 // остаток средств на бонусном балансе после выполнения задания }, "language": "", // переменная не используется для нейросети Kling "prompt": "текст вашего промта", // оригинальный текст промта, отправленного клиентом - не отображается, если не было отправлено при подаче задания "prompt_en": "your prompt here", // текст промта на английском языке - система Yes Ai производит автоматический перевод промтов клиентов "status": 2, // статус задания, где 2 - успешное завершение "status_description": "completed", // текстовое пояснение у статусу задания, где completed означает успешное завершение "start_at": 1720631145, // unixtime, время начала выполнения задания "finish_at": 1720631302, // unixtime, время завершения выполнения задания "created_at": 1720631089, // unixtime, время подачи задания клиентом "updated_at": 1720631302 // unixtime, время последнего обновления статуса задания } } }

Как продлить видео, созданное нейросетью Клинг, с помощью API Yes Ai

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

Чтобы расширить видео, созданное с помощью нейронной сети Клинг, вы должны предоставить на наш эндпойнт два значения:

  1. Номер предыдущей задачи, в которую входило видео.
  2. Текстовое описание (промпт), описывающее, что должно произойти в следующем сегменте видео.

Каждое продление увеличит продолжительность исходного видео на 5 секунд. Видео, которые уже были расширены, можно расширить, что позволит создавать видеоклипы.

Как продлить видео анимацию в Kling через API Yes Ai

POST https://api.yesai.su/v2/yesvideo/aniimage/kling/extend
headers: { Content-Type: application/json, Authorization: Bearer }

API запрос для подачи задания на продление видео в Kling

curl -X POST https://api.yesai.su/v2/yesvideo/aniimage/kling/extend -H "Authorization: Bearer <token>" -H "Content-Type: application/json" -d '{ "id": "12345", "prompt": "текст описания анимации (промт)" }'

Параметры:
id = 12345 (обязательно, id задания)
prompt = 'текст вашего промта (текстового запроса) с описанием анимации' (обязательно, промпт задания)

Возможные ошибки, список:

['success' => false, 'message' => 'ID_IS_EMPTY'], 400
['success' => false, 'message' => 'ID_NOT_VALID'], 400
['success' => false, 'message' => 'PROMPT_IS_EMPTY'], 400
['success' => false, 'message' => 'PROMPT_NOT_VALID'], 400
['success' => false, 'message' => 'UNAUTHORIZED'], 401
['success' => false, 'message' => 'ID_NOT_FOUND'], 404
['success' => false, 'message' => 'USER_HAS_BEEN_BANNED'], 409
['success' => false, 'message' => 'USER_HAS_BEEN_DELETED'], 409
['success' => false, 'message' => 'NOT_ENOUGH_RPOINTS'], 409
['success' => false, 'message' => 'TASK_LIMIT_EXCEEDED'], 409
['success' => false, 'message' => 'TASK_IS_NOT_COMPLETED'], 409
['success' => false, 'message' => 'TASK_CANNOT_BE_EXTENDED'], 409
['success' => false, 'message' => 'PROMPT_NSFW_WORDS'], 409
['success' => false, 'message' => 'PROMPT_FAILED_TO_TRANSLATE'], 409
['success' => false, 'message' => 'TOO_MANY_REQUESTS'], 429
['success' => false, 'message' => 'INTERNAL_SERVER_ERROR'], 500

Формат ответа при успешной проверке статуса выполнения задания:

['success' => true, 'message' => 'OK', 'results' => ['animation_data' => [ ... ]]], 200

Возможные коды статусов:

  • "status": 0 ("status_description":"in queue") - задача в данный момент ожидает в очереди;
  • "status": 1 ("status_description":"in progress") - задача принята к выполнению (нужно подождать);
  • "status": 2 ("status_description":"completed") - задача успешно завершена (теперь можно приступать к обработке результатов);
  • "status": 3 ("status_description":"rejected with error") - задание отклонено из-за ошибки (причину можно узнать в разделах comment_ru" и "comment_en");
  • "status": 4 ("status_description":"rejected due to timeout") - задача отклонена по причине истечения времени ожидания (вам нужно будет отправить задачу еще раз).

Процедура обработки выполненных заданий анимации изображений (Kling), отправленных через API Yes Ai

После успешного завершения задания анимации изображения вам будет предоставлена отдельная ссылка для загрузки видео в формате MP4. Данное видео будет доступно на нашем сервере продолжительностью 60 минут.

Обязательно сразу после выполнения задачи загрузите готовый результат на свой сервер.

Ограничения на отправку и мониторинг статусов задач

Через API у вас есть возможность создавать задачи в Yes Ai и проверять их статусы на основе заранее определенных рекомендаций.

Критерии к изображениям, предоставляемым при подаче новых заданий:

  • максимальный размер файла, разрешенный для анимационных изображений, составляет 5 мегабайт с максимальным размером 2000 пикселей по ширине или высоте;
  • допустимые форматы изображений: jpeg, jpg и png.

При отправке запросов POST для запуска новых заданий через API вы можете отправлять новую задачу только раз в секунду.

Общее количество заданий, разрешенных в очереди Yes Ai, которая распределяется между всеми типами заданий, отправленных через API Yes Ai, ограничено 8 задачами.

Если вы обнаружите, что задания создаются чаще, рекомендуется управлять собственной очередью заданий.

Для отправки запросов GET для проверки статусов выполнения ранее отправленных задач вам следует ограничить проверки статуса один раз в секунду.

Любые вопросы по использованию Yes Ai API следует направлять в официальную службу технической поддержки через мессенджер Telegram по адресу @yes_ai_support

77
11
1 комментарий

очень интересно, скажите а время обработки примерно какое до получения результата?

Ответить