Перейти к основному содержанию
С расширением применения ИИ различные программы на базе ИИ постепенно получили широкое распространение. ИИ постепенно проникает во все аспекты работы и жизни людей. Отраслей, связанных с ИИ, также становится всё больше: от первоначального написания текстов до медицины и образования, а теперь и видео. Luma — это профессиональная платформа генерации высококачественных видео. Пользователям достаточно загрузить материалы, чтобы автоматически генерировать высококачественные видео в соответствии с различными стилями и эффектами. Этот генератор видео на базе ИИ разработан командой участников из известных технологических компаний с целью позволить каждому легко создавать превосходные видео без сложных инструментов редактирования. Однако официально Luma не предоставляет API, AceDataCloud предоставляет набор API для Luma, имитирующий интеграцию с официальным Suno, что позволяет удобно и быстро генерировать желаемые видео.

Получение и использование

Чтобы использовать Luma Videos Generation API, сначала получите ваш API Token в консоли Ace Data Cloud и сохраните его для дальнейшего использования. Если вы ещё не вошли в систему или не зарегистрировались, вы будете автоматически перенаправлены на страницу входа, где вам будет предложено зарегистрироваться и войти, после завершения вы автоматически вернётесь на текущую страницу. Один API Token позволяет вызывать все сервисы платформы, не нужно подавать отдельную заявку для каждого сервиса. При первом получении предоставляется бесплатный лимит, доступен бесплатный тест; при недостаточном лимите можно пополнить универсальный баланс в консоли.
📘 Полная документация: Luma Videos Generation API →

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

Чтобы сгенерировать нужное видео, можно ввести любой текст. Например, если я хочу создать видео об астронавтах, перемещающихся между космосом и вулканом, можно ввести Astronauts shuttle from space to volcano, как показано на рисунке:

Сгенерированный код выглядит следующим образом:

Основные параметры запроса:
  • prompt: текст запроса для генерации видео.
  • aspect_ratio: соотношение сторон видео, по умолчанию 16:9.
  • end_image_url: необязательно, указывает конечный кадр.
  • enhancement: необязательно, переключатель улучшения чёткости.
  • loop: следует ли генерировать зацикленное видео, по умолчанию false.
  • timeout: необязательно, количество секунд тайм-аута.
  • callback_url: адрес асинхронного обратного вызова.
  • async: необязательно, когда установлено значение true, интерфейс немедленно возвращает task_id, без необходимости указывать callback_url, после чего результат получается путём опроса соответствующего интерфейса запроса задач.
Можно нажать кнопку «Try», чтобы напрямую протестировать API, подождать 1–2 минуты, и результат будет следующим:
Можно увидеть, что в этот момент мы получили связанную с этим видео информацию, включая ID видео, ссылку на видео, обложку видео и другое содержимое. Описание полей следующее:
  • success: успешно ли выполнено создание, если успешно — true, иначе — false
  • task_id: уникальный ID задачи генерации видео
  • video_id: уникальный ID видео, созданного задачей генерации видео
  • prompt: ключевые слова задачи генерации видео
  • video_url: ссылка на итоговое видео задачи генерации видео
  • video_height: высота изображения обложки видео после генерации
  • video_width: ширина изображения обложки видео после генерации
  • state: статус задачи генерации видео, если задача завершена — completed.
  • thumbnail_url: ссылка на изображение обложки видео после генерации
  • thumbnail_width: ширина изображения обложки видео после генерации
  • thumbnail_height: высота изображения обложки видео после генерации

Генерация с пользовательскими начальным и конечным кадрами

Если вы хотите генерировать видео через пользовательские начальный и конечный кадры видео, можно ввести ссылки на изображения начального и конечного кадров: В этот момент в поле start_image_url первого кадра видео можно передать следующее изображение в качестве первого кадра видео: Первый кадр Далее, чтобы пользовательски сгенерировать видео на основе начального и конечного кадров и ключевых слов, можно указать следующее содержимое:
  • action: действие задачи генерации видео, обычно это обычная генерация generate и расширенная генерация extend, по умолчанию — generate.
  • start_image_url: указывает первый кадр генерируемого видео.
  • end_image_url: указывает конечный кадр генерируемого видео.
  • prompt: содержимое ключевых слов для генерации видео.
Пример заполнения:

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

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

В итоге получается следующий результат:
Результат аналогичен приведённому выше: сгенерированное видео одновременно содержит изображения первого и последнего кадров, что завершает создание видео с пользовательскими первым и последним кадрами.

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

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

В этот момент можно увидеть, что ID видео:
Обратите внимание, что video_id и video_url в этом видео — это ID и ссылка на видео после генерации. Если вы не знаете, как генерировать видео, можете обратиться к базовому использованию выше для создания видео.
Для продолжения генерации видео необходимо передать ссылку на видео или ID видео. Ниже демонстрируется расширение с использованием ID видео. Далее необходимо заполнить ключевые слова для пользовательской генерации видео, можно указать следующее содержимое:
  • action: поведение расширения видео, здесь должно быть extend.
  • prompt: ключевые слова видео, которое нужно расширить.
  • video_url: ссылка на видео, генерацию которого нужно расширить.
  • video_id: уникальный ID видео, генерацию которого нужно расширить.
  • end_image_url: ссылка на изображение последнего кадра, которое можно указать при расширенной генерации видео, необязательный параметр.
Пример заполнения приведён ниже:

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

Соответствующий код Python:
Нажав «Запустить», можно увидеть, что будет получен следующий результат:
Можно увидеть, что это видео расширяется на основе видео, которое нужно расширить, содержимое результата совпадает с приведённым выше, что также реализует функцию продолжения генерации песни. Конечно, мы также можем указать ссылку на видео для расширенной генерации, заполните следующую информацию:

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

После нажатия «Запустить» получается следующая информация:
Можно увидеть, что на основе расширения видео, описанного выше, также можно указать изображение последнего кадра для расширения.

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

Поскольку время генерации видео Luma относительно длительное и составляет примерно 1–2 минуты, если API долго не отвечает, HTTP-запрос будет постоянно поддерживать соединение, что приведёт к дополнительному потреблению системных ресурсов, поэтому данный API также предоставляет поддержку асинхронных обратных вызовов. Общий процесс таков: когда клиент инициирует запрос, он дополнительно указывает поле callback_url; после того как клиент инициирует API-запрос, API немедленно возвращает результат, содержащий поле task_id, которое представляет ID текущей задачи. После завершения задачи результат генерации музыки будет отправлен в виде POST JSON на указанный клиентом callback_url, где также будет включено поле task_id, благодаря чему результаты задачи можно связать по ID. Ниже мы на примере рассмотрим, как именно это работает. Прежде всего, Webhook callback — это сервис, способный принимать HTTP-запросы; разработчик должен заменить его на URL собственного HTTP-сервера. Для удобства демонстрации здесь используется публичный пример Webhook-сайта https://webhook.site/; открыв этот сайт, можно получить Webhook URL, как показано на рисунке:

Скопировав этот URL, его можно использовать в качестве Webhook; пример здесь: https://webhook.site/0c87ca0e-cd74-4577-8d68-f2b80fbf8a13。 Далее мы можем установить для поля callback_url указанный выше Webhook URL, одновременно заполнив prompt, как показано на рисунке:

Нажав «Запустить», можно увидеть, что результат будет получен немедленно, как показано ниже:
Немного подождав, мы можем увидеть результат генерации песни на https://webhook.site/0c87ca0e-cd74-4577-8d68-f2b80fbf8a13, как показано на рисунке: Содержимое следующее:
Можно увидеть, что в результате есть поле task_id, а остальные поля аналогичны описанным выше; с помощью этого поля можно реализовать связь задач.