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

Запрос и использование

Чтобы использовать Luma Videos Generation API, сначала перейдите в консоль Ace Data Cloud и получите ваш API Token для резервного копирования. Если вы еще не вошли в систему или не зарегистрированы, вас автоматически перенаправят на страницу входа, чтобы пригласить вас зарегистрироваться и войти. После завершения вы автоматически вернетесь на текущую страницу. Один 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 видео равен:
Обратите внимание, что здесь 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 回调是一个可以接收 HTTP 请求的服务,开发者应该替换为自己搭建的 HTTP 服务器的 URL。此处为了方便演示,使用一个公开的 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 字段,其他的字段都和上文类似,通过该字段即可实现任务的关联。