Перейти к содержанию

Подробный гайд по API для нейросети Luma которая оживляет фото


Рекомендуемые сообщения

Нейронная сеть Luma может оживить любое изображение или фото, используя начальный и/или конечный кадр. Наш сервис предоставляет доступ к этим мощным функциям через API.

С помощью API нейронной сети Luma от Yes Ai вы можете преобразовывать и улучшать свои видео, анимируя предоставленные вами изображения. Узнайте больше о возможностях Luma в этой статье.

600x

Прежде чем углубляться в API, мы рекомендуем протестировать функциональность Luma с помощью нашего Telegram-бота @yes_ai_bot.

Чтобы отправлять задания и отслеживать их ход, вам понадобится ключ API и инструкции по его получению.

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

  • Изображение + запрос (промт)
  • Изображение + финальный кадр (второе изображение, отличное от первого)
  • Изображение + запрос (промт) + финальный кадр
  • Расширение рекламного ролика, ранее созданного в Luma

Отправка задания анимации изображения Luma с помощью API

Пример вызова API для отправки задачи генерации в Luma

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

Пример вызова API для запуска задачи генерации с помощью Luma

curl -X POST https://api.yesai.su/v2/yesvideo/aniimage/luma
-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 = '' (обязательно, ссылка на исходное изображение)
Prompt = '' (необязательно, промт задачи; обязательно, если Final_frame_url не указан)
Final_frame_url = '' (необязательно, ссылка на финальное изображение кадра; обязательно, если промт не указан)

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

Возможные ошибки включают в себя:

['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

Формат ответа при успешной подаче нового задания:
['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 }

Пример запроса для получения статуса завершения задания в Luma

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

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

['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 в формате JSON при проверке статуса выполнения задания

Пояснение параметров вывода Yes Ai API при выполнении задачи по анимации изображения с помощью нейронной сети Luma

{
    "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 - оживление картинки в нейросети Luma
            "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", // тип файла для выполненного задания, для Luma это всегда '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, // количество ️ баллов, которые были сняты с баланса за выполнение задания. Для Luma поле всегда будет равно 0, т.к. оплата производится в 🔅 монетах
                "spent_rpoints": 35, // количество 🔅 монет, которые были сняты с баланса за выполнение задания
                "spent_repost_points": 0, // количество бонусных баллов за репосты, которое было снято за выполнение задания. Для Luma поле всегда будет равно 0, т.к. оплата производится в 🔅 монетах
                "spent_balance": 0, // количество денег с основного баланса, которое было снято за выполнение задания. Для Luma поле всегда будет равно 0, т.к. оплата производится в 🔅 монетах
                "spent_rbalance": 0, // количество денег с бонусного баланса, которое было снято за выполнение задания. Для Luma поле всегда будет равно 0, т.к. оплата производится в 🔅 монетах
                "remaining_points": 1811, // остаток средств на балансе ️ баллов после выполнения задания
                "remaining_rpoints": 3540.90288, // остаток средств на балансе 🔅 монет после выполнения задания
                "remaining_repost_points": 0, // остаток баллов на балансе репостов после выполнения задания
                "remaining_balance": 0, // остаток средств на основном балансе после выполнения задания
                "remaining_rbalance": 7078.8033 // остаток средств на бонусном балансе после выполнения задания
            },
            "language": "", // переменная не используется для нейросети Luma
            "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, время последнего обновления статуса задания
        }
    }
}

 

Как увеличить (продлить) видео, созданное в Luma, с помощью API Yes Ai

Увеличивать - продлевать можно только видеоролики, ранее созданные с помощью нашего сервиса, пользовательские видео не поддерживаются. После успешного создания видео вы получите идентификатор (iD) задания, который можно использовать для запроса продления.

Чтобы продлить видео, созданное в Luma, необходимо отправить в наш эндпойнт два значения:

  • номер одного из предыдущих заданий, содержавшего видео

  • текстовое описание (промт) того, что будет в следующей части видео

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

Как удлинить - продлить анимацию видео с помощью Yes Ai API в нейронной сети Luma

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

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

curl -X POST https://api.yesai.su/v2/yesvideo/aniimage/luma/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

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

  • "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") — задача отклонена, поскольку истекло время ожидания. Вам необходимо повторно отправить задание.

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

Как только вы закончите анимировать изображение, вам будет предоставлена специальная ссылка для загрузки видео в формате MP4. Этот файл будет доступен на нашем сервере в течение одного часа.

Вы должны оперативно загрузить видео на свой сервер, как только задание будет выполнено.

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

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

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

  • Максимально допустимый вес анимированных изображений составляет 5 мегабайт, а размеры не должны превышать 2000 пикселей по ширине или высоте.

  • Допустимые форматы изображений: jpeg, jpg, png

Отправка POST-запросов на создание новых заданий через API:

  • Новые задачи не должны отправляться чаще одного раза в секунду

Максимальное количество заданий в очереди Yes Ai (очередь общая для всех типов заданий, отправляемых через Yes Ai API):

  • В очереди может быть не более 8 задач

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

Отправка GET-запросов для получения статусов выполнения задач, отправленных ранее:

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

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

  • Like 4
  • Лайк 3
  • Благодарность 2

image.png.9d5b4205072e7e483a6f7d59aebe58e3.pngimage.pngimage.png.401b8a419d2091e7d0b7f9d60646a724.png

Ссылка на комментарий
Поделиться на другие сайты

Конспект статьи: Текст описывает возможности нейронной сети Luma для оживления изображений и предоставления доступа к ней через API.

В тексте подробно рассказывается о том, как использовать API для анимации изображений: различные типы анимации, необходимые параметры запроса, примеры кода для отправки задач и получения статусов выполнения.

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

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...