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

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


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

  • Модератор

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

image.png

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

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

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

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

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

Пример вызова Luma 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 = '' (необязательно, ссылка на финальное изображение кадра; обязательно, если промт не указан)

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

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

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

Проверка выполнения задачи Luma по её идентификатору (ID) через Yes Ai API

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

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

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, время последнего обновления статуса задания
        }
    }
}

 

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

Продлевать (extend) можно только видеоролики, ранее созданные в нейросети Luma через наш сервис Yes Ai, пользовательские загруженные видео не поддерживаются. После успешного создания видео Luma вы получите идентификатор (ID) задачи, который можно использовать для запроса продления через API.

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

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

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

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

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

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, отправленных через Yes Ai Luma API

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

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

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

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

Требования к изображениям, которые вы отправляете в Luma для анимации через Yes Ai API:

  • Максимально допустимый вес анимированных изображений составляет 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 эмодзи.

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

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

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

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