Hoppa till huvudinnehåll
Med den ökande användningen av AI har olika AI-program gradvis blivit vanliga. AI har gradvis trängt in i alla aspekter av människors arbetsliv. Och branscherna som involverar AI blir allt fler, från den ursprungliga skrivningen, till medicinsk utbildning, och nu till video. Luma är en professionell plattform för videoproduktion av hög kvalitet, där användare bara behöver ladda upp material för att automatiskt generera högkvalitativa videor baserat på olika stilar och effekter. Denna AI-videogenerator har utvecklats av teammedlemmar från kända teknikföretag, med målet att göra det möjligt för alla att enkelt skapa fantastiska videor utan komplicerade redigeringsverktyg. Men Luma erbjuder officiellt ingen API, AceDataCloud tillhandahåller en uppsättning Luma API:er som simulerar integrationen med Suno officiellt, vilket gör det enkelt och snabbt att generera önskade videor.

Ansökan och användning

För att använda Luma Videos API kan du först gå till Luma Videos Generation API sidan och klicka på “Acquire” knappen för att få de nödvändiga autentiseringsuppgifterna: Om du inte har loggat in eller registrerat dig kommer du automatiskt att omdirigeras till inloggningssidan för att registrera dig och logga in. Efter inloggning och registrering kommer du automatiskt att återvända till den aktuella sidan. Vid första ansökan kommer det att finnas en gratis kvot som kan användas för att gratis använda API:et.

Grundläggande användning

För att generera en video kan du ange en text, till exempel om jag vill generera en video om astronauter som färdas mellan rymden och vulkaner, kan jag ange Astronauts shuttle from space to volcano, som visas i bilden:

Den genererade koden ser ut som följer:

Huvudparametrar för begäran:
  • prompt: Frågan för att generera videon.
  • aspect_ratio: Videons bildförhållande, standard 16:9.
  • end_image_url: Valfritt, specificera slutbilden.
  • enhancement: Valfritt, skärpeförbättrings switch.
  • loop: Om en loopad video ska genereras, standard false.
  • timeout: Valfritt, tidsgräns i sekunder.
  • callback_url: Asynkron återkopplingsadress.
Du kan klicka på “Try” knappen för att direkt testa API:et, vänta 1-2 minuter, resultatet ser ut som följer:
{
  "success": true,
  "task_id": "e4018a99-1522-4f24-9330-62c2a9b50b59",
  "video_id": "155838f8-7f1e-44d8-b387-192f3b4b509d",
  "prompt": "Astronauts shuttle from space to volcano",
  "video_url": "https://storage.cdn-luma.com/dream_machine/af94e7ca-da35-4b5f-a636-2d7254184d0d/watermarked_video0585de3737db946e5a0ac895384ecd180.mp4",
  "video_height": 752,
  "video_width": 1360,
  "state": "completed",
  "thumbnail_url": "https://platform.cdn.acedata.cloud/luma/e4018a99-1522-4f24-9330-62c2a9b50b59.jpg",
  "thumbnail_width": 1360,
  "thumbnail_height": 752
}
Vi kan se att vi nu har fått information om denna video, inklusive video-ID, videolänk, videoförhandsvisning och så vidare. Fälten förklaras nedan:
  • success: Om genereringen var framgångsrik, om framgång, då true, annars false
  • task_id: Det unika ID:t för denna videogenereringsuppgift
  • video_id: Det unika ID:t för videon som genererades av denna uppgift
  • prompt: Nyckelordet för denna videogenereringsuppgift
  • video_url: Länken till den resulterande videon från denna videogenereringsuppgift
  • video_height: Höjden på den genererade videoförhandsvisningsbilden
  • video_width: Bredden på den genererade videoförhandsvisningsbilden
  • state: Statusen för denna videogenereringsuppgift, om uppgiften är klar, då completed.
  • thumbnail_url: Länken till den genererade videoförhandsvisningsbilden
  • thumbnail_width: Bredden på den genererade videoförhandsvisningsbilden
  • thumbnail_height: Höjden på den genererade videoförhandsvisningsbilden

Anpassad generering av första och sista bild

Om du vill generera en video genom att anpassa första och sista bild, kan du ange länkarna till bilderna: I detta fall kan fältet för första bilden start_image_url ta emot följande bild som första bild i videon: Första bild Därefter ska vi anpassa videon baserat på första och sista bild, nyckelord, och vi kan specificera följande innehåll:
  • action: Beteendet för videogenereringsuppgiften, vanligtvis vanlig generering generate och utvidgad generering extend, standard är generate.
  • start_image_url: Specificera första bilden för den genererade videon.
  • end_image_url: Specificera sista bilden för den genererade videon.
  • prompt: Nyckelordet för att generera videon.
Exempel på ifyllning ser ut som följer:

När du har fyllt i det kommer koden att genereras automatiskt som följer:

Motsvarande kod:
import requests

url = "https://api.acedata.cloud/luma/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "start_image_url": "https://cdn.acedata.cloud/r9vsv9.png",
    "action": "generate",
    "prompt": "Astronauts shuttle from space to volcano"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Resultatet ser ut som följer:
{
  "success": true,
  "task_id": "12a18694-fd4b-47e7-9c50-34f30862cff6",
  "video_id": "0105c090-03a5-425a-8026-523341cd575b",
  "prompt": "Astronauts shuttle from space to volcano",
  "video_url": "https://platform.cdn.acedata.cloud/luma/12a18694-fd4b-47e7-9c50-34f30862cff6.mp4",
  "video_height": 656,
  "video_width": 1552,
  "state": "completed",
  "thumbnail_url": "https://platform.cdn.acedata.cloud/luma/12a18694-fd4b-47e7-9c50-34f30862cff6.jpg",
  "thumbnail_width": 1552,
  "thumbnail_height": 656
}
Det slutliga resultatet liknar det ovan, den genererade videons första bild innehåller den bild vi angav, och självklart kan vi också ange länkar till både första och sista bild för att generera videon, vi behöver bara lägga till en sista bildlänk ovanpå det som redan angivits, informationen om sista bilden ser ut som följer: Sista bild Exempel på ifyllning ser ut som följer:

Slutligen får vi följande resultat:
{
  "success": true,
  "task_id": "d1cb723a-e554-4775-94a4-bb6ae8c7ea67",
  "video_id": "6bebd0d2-f793-472e-9326-38528a9273bb",
  "prompt": "Astronauter skjuts från rymden till vulkan",
  "video_url": "https://platform.cdn.acedata.cloud/luma/d1cb723a-e554-4775-94a4-bb6ae8c7ea67.mp4",
  "video_height": 656,
  "video_width": 1552,
  "state": "completed",
  "thumbnail_url": "https://platform.cdn.acedata.cloud/luma/d1cb723a-e554-4775-94a4-bb6ae8c7ea67.jpg",
  "thumbnail_width": 1552,
  "thumbnail_height": 656
}
Resultatet är liknande det ovan, den genererade videon innehåller både första och sista bild, vilket fullbordar anpassningen av första och sista bild för att generera videon.

Videoförlängningsfunktion

Om du vill fortsätta generera videon kan du ställa in parametern action till extend och ange ID eller videolänk för den video som ska fortsätta genereras. Videons ID och videolänk kan hämtas enligt grundläggande användning, som visas i bilden nedan:

Då kan du se att videons ID är:
"video_id": "0105c090-03a5-425a-8026-523341cd575b",
"video_url": "https://platform.cdn.acedata.cloud/luma/12a18694-fd4b-47e7-9c50-34f30862cff6.mp4"
Observera att videon här video_id och video_url är ID och länk för den genererade videon. Om du inte vet hur man genererar en video kan du hänvisa till den grundläggande användningen ovan för att generera videon.
För att fortsätta generera videon måste du ladda upp videolänken eller videons ID. Nedan visas hur man använder videons ID för att göra en förlängning. Vi måste fylla i nyckelord för att anpassa den genererade videon, så vi kan specificera följande innehåll:
  • action: Detta är beteendet för att förlänga videon, vilket här ska vara extend.
  • prompt: Nyckelordet för att förlänga videon.
  • video_url: Länken till videon som ska förlängas.
  • video_id: Det unika ID:t för videon som ska förlängas.
  • end_image_url: Länken till bilden för sista bild, valfri parameter.
Exempel på ifyllning:

När ifyllningen är klar genereras koden automatiskt som följer:

Motsvarande Python-kod:
import requests

url = "https://api.acedata.cloud/luma/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "action": "extend",
    "video_id": "0105c090-03a5-425a-8026-523341cd575b",
    "prompt": "Astronauter skjuts från rymden till vulkan"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
När du klickar på körning kan du se att du får ett resultat som följer:
{
  "success": true,
  "task_id": "c6e529d1-a06d-4c12-91b2-c855135131c3",
  "video_id": "36908c49-c2bb-4a11-bd5a-b8512b004818",
  "prompt": "Astronauter skjuts från rymden till vulkan",
  "video_url": "https://platform.cdn.acedata.cloud/luma/c6e529d1-a06d-4c12-91b2-c855135131c3.mp4",
  "video_height": 656,
  "video_width": 1552,
  "state": "completed",
  "thumbnail_url": "https://platform.cdn.acedata.cloud/luma/c6e529d1-a06d-4c12-91b2-c855135131c3.jpg",
  "thumbnail_width": 1552,
  "thumbnail_height": 656
}
Det kan ses att videon har förlängts baserat på den video som behöver förlängas, resultatinnehållet är detsamma som ovan, vilket också realiserar funktionen för att fortsätta generera låtar. Självklart kan vi också ange videolänken för att göra en förlängning, fyll i följande information:

Efter att ha kört får vi följande resultat:
{
  "success": true,
  "task_id": "1dcb5902-a7be-4b77-ba5d-dd8ec82b26ca",
  "video_id": "f0187dc2-339f-4a08-a435-c3a3341f620a",
  "prompt": "Astronauter skjuts från rymden till vulkan",
  "video_url": "https://platform.cdn.acedata.cloud/luma/1dcb5902-a7be-4b77-ba5d-dd8ec82b26ca.mp4",
  "video_height": 656,
  "video_width": 1552,
  "state": "completed",
  "thumbnail_url": "https://platform.cdn.acedata.cloud/luma/1dcb5902-a7be-4b77-ba5d-dd8ec82b26ca.jpg",
  "thumbnail_width": 1552,
  "thumbnail_height": 656
}
Enligt resultatet kan vi se att videoförlängningsfunktionen också kan realiseras baserat på videolänken. Slutligen kan vi också specificera en sista bild för att göra en förlängning av videon. Här är informationen om sista bilden: Sista bild Därefter lägger vi till information om sista bilden på ovanstående grund, specifikt som följer:

När du klickar på körning får du följande information:
{
  "success": true,
  "task_id": "b816b2b4-c345-4673-9e19-83e91f91b643",
  "video_id": "c5400053-63e6-4206-8082-31cf9dd1e7ed",
  "prompt": "Astronauter skjuts från rymden till vulkan",
  "video_url": "https://platform.cdn.acedata.cloud/luma/b816b2b4-c345-4673-9e19-83e91f91b643.mp4",
  "video_height": 656,
  "video_width": 1552,
  "state": "completed",
  "thumbnail_url": "https://platform.cdn.acedata.cloud/luma/b816b2b4-c345-4673-9e19-83e91f91b643.jpg",
  "thumbnail_width": 1552,
  "thumbnail_height": 656
}
Det kan ses att på grundval av den tidigare förlängda videon kan vi också specificera sista bilden för att göra en förlängning.

Asynkron återkoppling

Eftersom Luma-genereringen av videon tar relativt lång tid, cirka 1-2 minuter, om API:et inte svarar under en längre tid, kommer HTTP-förfrågan att hålla anslutningen öppen, vilket leder till extra systemresursförbrukning. Därför erbjuder detta API också stöd för asynkron återkoppling. Det övergripande flödet är: När klienten initierar en begäran, specificerar den ett extra callback_url fält. Efter att klienten har initierat API-begäran kommer API:t omedelbart att returnera ett resultat som innehåller ett task_id fält, vilket representerar det aktuella uppdragets ID. När uppdraget är slutfört kommer resultatet av musiken att skickas till klientens angivna callback_url i POST JSON-format, vilket också inkluderar task_id fältet, så att uppdragets resultat kan kopplas ihop via ID. Nedan går vi igenom ett exempel för att förstå hur man gör detta. Först är Webhook-återkopplingen en tjänst som kan ta emot HTTP-begärningar, utvecklaren bör ersätta med URL:en till sin egen uppsatta HTTP-server. Här för att underlätta demonstration använder vi en offentlig Webhook-exempelsida https://webhook.site/, öppna denna webbplats för att få en Webhook-URL, som visas i bilden:

Kopiera denna URL, så kan den användas som Webhook, exemplet här är https://webhook.site/0c87ca0e-cd74-4577-8d68-f2b80fbf8a13. Därefter kan vi ställa in fältet callback_url till ovanstående Webhook-URL, samtidigt som vi fyller i prompt, som visas i bilden:

Klicka på kör, och vi kan se att vi omedelbart får ett resultat, som följer:
{
  "task_id": "732f8282-7cf8-401c-95f2-42c33aa079a6"
}
Vänta en stund, så kan vi observera resultatet av den genererade låten på https://webhook.site/0c87ca0e-cd74-4577-8d68-f2b80fbf8a13, som visas i bilden: Innehållet är som följer:
{
    "success": true,
    "task_id": "732f8282-7cf8-401c-95f2-42c33aa079a6",
    "video_id": "4d8013c3-5de0-41aa-966e-0b1a51d1c633",
    "prompt": "Astronauter åker från rymden till vulkan",
    "video_url": "https://platform.cdn.acedata.cloud/luma/732f8282-7cf8-401c-95f2-42c33aa079a6.mp4",
    "video_height": 752,
    "video_width": 1360,
    "state": "completed",
    "thumbnail_url": "https://platform.cdn.acedata.cloud/luma/732f8282-7cf8-401c-95f2-42c33aa079a6.jpg",
    "thumbnail_width": 1360,
    "thumbnail_height": 752
}
Vi kan se att resultatet innehåller ett task_id fält, och de andra fälten liknar de ovan, genom detta fält kan uppdraget kopplas ihop.