Przejdź do głównej treści
Wraz z rozszerzaniem się zastosowań AI, różnego rodzaju programy AI stopniowo stają się powszechne. AI stopniowo przenika do wszystkich aspektów pracy i życia ludzi. A branże związane z AI są coraz liczniejsze — od początkowego pisania, przez medycynę i edukację, aż po obecne wideo. Luma to profesjonalna platforma do generowania wysokiej jakości wideo. Użytkownicy muszą jedynie przesłać materiały, aby automatycznie generować wysokiej jakości filmy zgodnie z różnymi stylami i efektami. Ten generator wideo AI został opracowany przez członków zespołu z renomowanych firm technologicznych, a jego celem jest umożliwienie każdemu łatwego tworzenia doskonałych filmów bez potrzeby korzystania ze złożonych narzędzi do edycji. Jednak Luma oficjalnie nie udostępnia API, a AceDataCloud zapewnia zestaw API dla Luma, który symuluje integrację z oficjalnym Suno, umożliwiając wygodne i szybkie generowanie pożądanych filmów.

Aplikowanie i użytkowanie

Aby korzystać z Luma Videos Generation API, najpierw przejdź do konsoli Ace Data Cloud, aby uzyskać swój API Token i zachować go do późniejszego użycia. Jeśli nie jesteś jeszcze zalogowany ani zarejestrowany, nastąpi automatyczne przekierowanie na stronę logowania, która zaprosi Cię do rejestracji i zalogowania się, a po zakończeniu automatycznie powrócisz na bieżącą stronę. Jeden API Token umożliwia wywoływanie wszystkich usług platformy, bez potrzeby osobnego aplikowania dla każdej usługi. Przy pierwszym wniosku otrzymasz bezpłatny limit, który pozwala na darmowe testowanie; gdy limit będzie niewystarczający, możesz doładować wspólne saldo w konsoli.
📘 Pełna dokumentacja: Luma Videos Generation API →

Podstawowe użycie

Jeśli chcesz wygenerować jakiś film, możesz dowolnie wpisać fragment tekstu, na przykład jeśli chcę wygenerować film o astronautach przemieszczających się między kosmosem a wulkanem, mogę wpisać Astronauts shuttle from space to volcano, jak pokazano na ilustracji:

Wygenerowany kod wygląda następująco:

Główne parametry żądania:
  • prompt: podpowiedź do generowania wideo.
  • aspect_ratio: proporcje obrazu wideo, domyślnie 16:9.
  • end_image_url: opcjonalnie, określa klatkę końcową.
  • enhancement: opcjonalnie, przełącznik poprawy ostrości.
  • loop: czy generować zapętlone wideo, domyślnie false.
  • timeout: opcjonalnie, liczba sekund limitu czasu.
  • callback_url: adres zwrotny dla wywołania asynchronicznego.
  • async: opcjonalnie, gdy ustawione na true, interfejs natychmiast zwraca task_id, bez potrzeby podawania callback_url, a następnie wynik jest uzyskiwany przez odpytywanie odpowiedniego interfejsu zapytań o zadania.
Możesz kliknąć przycisk „Try”, aby bezpośrednio przetestować API, odczekać 1–2 minuty, a wynik będzie następujący:
Można zauważyć, że w tym momencie otrzymaliśmy informacje związane z tym filmem, w tym ID wideo, link do wideo, okładkę wideo i inne treści. Opis pól jest następujący:
  • success: czy generowanie zakończyło się sukcesem; jeśli tak, wartość wynosi true, w przeciwnym razie false
  • task_id: unikalne ID zadania generowania wideo tutaj
  • video_id: unikalne ID wideo utworzonego przez zadanie generowania wideo tutaj
  • prompt: słowa kluczowe zadania generowania wideo tutaj
  • video_url: link do wynikowego wideo zadania generowania wideo tutaj
  • video_height: wysokość obrazu okładki wygenerowanego wideo
  • video_width: szerokość obrazu okładki wygenerowanego wideo
  • state: status zadania generowania wideo tutaj; jeśli zadanie zostało ukończone, wynosi completed.
  • thumbnail_url: link do obrazu okładki wygenerowanego wideo
  • thumbnail_width: szerokość obrazu okładki wygenerowanego wideo
  • thumbnail_height: wysokość obrazu okładki wygenerowanego wideo

Generowanie z niestandardowymi klatkami początkową i końcową

Jeśli chcesz wygenerować wideo za pomocą niestandardowych klatek początkowej i końcowej wideo, możesz wprowadzić linki do obrazów klatek początkowej i końcowej: W tym momencie do pola start_image_url pierwszej klatki wideo można przekazać następujący obraz jako pierwszą klatkę wideo: Klatka początkowa Następnie, jeśli chcemy niestandardowo wygenerować wideo na podstawie klatek początkowej i końcowej oraz słów kluczowych, możemy określić następującą zawartość:
  • action: działanie zadania generowania wideo, zazwyczaj zwykłe generowanie generate oraz generowanie rozszerzające extend, domyślnie generate.
  • start_image_url: określa pierwszą klatkę generowanego wideo.
  • end_image_url: określa końcową klatkę generowanego wideo.
  • prompt: zawartość słów kluczowych do generowania wideo.
Przykład wypełnienia jest następujący:

Po wypełnieniu kod zostanie automatycznie wygenerowany w następujący sposób:

Odpowiedni kod:
Otrzymany wynik jest następujący:
Ostatecznie otrzymany wynik jest podobny do opisanego powyżej — pierwsza klatka wygenerowanego wideo zawiera przekazany przez nas obraz. Oczywiście można również jednocześnie przekazać linki do obrazów klatek początkowej i końcowej, aby wygenerować wideo; wystarczy dodać obraz klatki końcowej na podstawie powyższego przykładu. Informacje o obrazie klatki końcowej są następujące: Klatka końcowa Przykład wypełnienia jest następujący:

Ostatecznie uzyskano następujący wynik:
Wynik jest podobny do powyższego, wygenerowany film jednocześnie zawiera obrazy pierwszej i ostatniej klatki, co kończy generowanie filmu z niestandardowymi pierwszą i ostatnią klatką.

Funkcja rozszerzania filmu

Jeśli chcesz kontynuować generowanie wygenerowanego filmu, możesz ustawić parametr action na extend oraz wprowadzić ID filmu, który ma być dalej generowany, lub link do filmu. ID filmu i link do filmu uzyskuje się zgodnie z podstawowym użyciem, jak pokazano na poniższym obrazku:

W tym momencie można zobaczyć, że ID filmu wynosi:
Uwaga, video_id i video_url w tym filmie to ID i link do filmu po wygenerowaniu. Jeśli nie wiesz, jak wygenerować film, możesz odwołać się do podstawowego użycia powyżej, aby wygenerować film.
Aby kontynuować generowanie filmu, należy przesłać link do filmu lub ID filmu. Poniżej zademonstrowano rozszerzenie przy użyciu ID filmu. Następnie musimy wprowadzić słowa kluczowe, aby niestandardowo wygenerować film, i można określić następującą zawartość:
  • action: zachowanie rozszerzania filmu, tutaj powinno być extend.
  • prompt: słowa kluczowe filmu, który ma zostać rozszerzony.
  • video_url: link do filmu, który ma zostać rozszerzony.
  • video_id: unikalne ID filmu, który ma zostać rozszerzony.
  • end_image_url: link do obrazu ostatniej klatki, który można określić przy rozszerzaniu generowania filmu, parametr opcjonalny.
Przykład wypełnienia jest następujący:

Po wypełnieniu kod jest automatycznie generowany w następujący sposób:

Odpowiedni kod Python:
Kliknij uruchom, a można zauważyć, że zostanie uzyskany wynik, jak poniżej:
Można zauważyć, że ten film jest rozszerzany na podstawie filmu, który ma zostać rozszerzony, zawartość wyniku jest zgodna z powyższą, co realizuje również funkcję dalszego generowania piosenki. Oczywiście możemy również określić link do filmu w celu rozszerzonego generowania, wprowadzając następujące informacje:

Po uruchomieniu uzyskano następujący wynik:
Na podstawie wyniku można zauważyć, że funkcję rozszerzania filmu można również zrealizować za pomocą linku do filmu. Na koniec możemy także określić obraz ostatniej klatki w rozszerzanym filmie w celu rozszerzenia. Poniżej znajdują się informacje o obrazie ostatniej klatki: Ostatnia klatka Następnie dodaj informacje o obrazie ostatniej klatki na powyższej podstawie, szczegóły przedstawiono poniżej:

Po kliknięciu uruchom uzyskano następujące informacje:
Można zauważyć, że na podstawie rozszerzania filmu powyżej można również określić obraz ostatniej klatki do rozszerzenia.

Asynchroniczne wywołanie zwrotne

Ponieważ czas generowania filmu przez Luma jest stosunkowo długi i wynosi około 1–2 minut, jeśli API nie odpowiada przez długi czas, żądanie HTTP będzie stale utrzymywać połączenie, co prowadzi do dodatkowego zużycia zasobów systemowych, dlatego to API również zapewnia obsługę asynchronicznych wywołań zwrotnych. Cały proces wygląda następująco: gdy klient inicjuje żądanie, dodatkowo określa pole callback_url. Po wysłaniu przez klienta żądania API, API natychmiast zwróci wynik zawierający informacje o polu task_id, które reprezentuje ID bieżącego zadania. Po zakończeniu zadania wynik generowania muzyki zostanie wysłany w formie POST JSON na adres callback_url wskazany przez klienta, w którym również znajduje się pole task_id, dzięki czemu wynik zadania można powiązać za pomocą ID. Poniżej, na przykładzie, zobaczymy, jak dokładnie to działa. Najpierw, wywołanie zwrotne Webhook jest usługą, która może odbierać żądania HTTP, a programista powinien zastąpić je adresem URL własnego serwera HTTP. Dla wygody demonstracji użyjemy publicznej przykładowej strony Webhook https://webhook.site/; po otwarciu tej strony można uzyskać adres URL Webhook, jak pokazano na ilustracji:

Skopiuj ten adres URL, aby użyć go jako Webhook; przykładowy adres tutaj to https://webhook.site/0c87ca0e-cd74-4577-8d68-f2b80fbf8a13。 Następnie możemy ustawić pole callback_url na powyższy adres URL Webhook, jednocześnie wypełniając prompt, jak pokazano na ilustracji:

Kliknij uruchom, a zauważysz, że wynik zostanie uzyskany natychmiast, jak poniżej:
Po krótkiej chwili możemy na stronie https://webhook.site/0c87ca0e-cd74-4577-8d68-f2b80fbf8a13 zaobserwować wynik generowania utworu, jak pokazano na ilustracji: Treść jest następująca:
Można zauważyć, że w wyniku znajduje się pole task_id, a pozostałe pola są podobne do tych powyżej; za pomocą tego pola można zrealizować powiązanie zadań.