Перейти до основного вмісту
З розширенням застосування ШІ різні програми ШІ поступово набули поширення. ШІ поступово проник у всі аспекти роботи та життя людей. А галузей, яких стосується ШІ, стає дедалі більше: від початкового написання текстів, до медицини й освіти, і до сучасного відео. 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, інші поля схожі на наведені вище, за допомогою цього поля можна реалізувати зв’язування завдань.