pub

Loslegen mit der Luma AI API mit Node.js und Axios

So benutzt du die Luma AI API mit Node.js und Axios

Hey, hast du schon von Lumalabs gehört? Die haben mit ihrer Dream Machine-Funktion richtig Aufsehen erregt! Damit kannst du mega coole Video-Inhalte mit KI erstellen. Und weißt du was? Du kannst diesen Zauber über deren API nutzen! In diesem Leitfaden zeig ich dir, wie du mit Node.js und Axios die Luma AI API für deinen eigenen Gebrauch einbindest.

1. Was ist Lumalabs und Dream Machine?

Bevor wir ins Detail gehen, lass uns kurz über Lumalabs plaudern. Die sind die Köpfe hinter Dream Machine, einem starken KI-Tool, das Videos basierend auf Text-Prompt und Bildern erstellt. Egal, ob du ein kreativer Profi oder einfach nur ein AI-Fan bist, Dream Machine bietet dir viele Möglichkeiten.

2. Dein Node.js Projekt einrichten

Also, lass uns erstmal ein Node.js Projekt aufsetzen. Wenn du das noch nicht gemacht hast, leg einen neuen Ordner für dein Projekt an und schau mal:

npm init -y

Das richtet ein einfaches Node.js Projekt ein. Jetzt musst du Axios installieren, damit du HTTP-Anfragen machen kannst:

npm install axios form-data

Wir nutzen Axios, um die Anfragen an die Luma API zu managen.

3. Luma API mit Axios einwickeln

Okay, jetzt wird's spannend! Lass uns eine einfache Wrapper-Funktion mit Axios erstellen. Hier ist eine schnelle Übersicht über den Code:

const axios = require('axios');
const FormData = require('form-data');

let data = new FormData();
data.append('arg_prompt', 'wind blows');
data.append('callback', 'http://127.0.0.1:3001/api/cb_task');

let config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: 'https://api.lumaapi.com/api/v1/generation/add',
  headers: {
    ...data.getHeaders()
  },
  data : data
};

axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});

3.1 Den Code verstehen

  • FormData: Wir verwenden FormData, um den Request-Body zu bearbeiten, der den Prompt und die Callback-URL enthält.
  • Axios Anfrage: Die Methode axios.request() schickt die POST-Anfrage an die Luma API. Wenn alles glatt läuft, werden die Antworten ausgegeben; wenn nicht, wird der Fehler abgefangen und ausgegeben.

4. Die Antwort verarbeiten

Wenn die Anfrage erfolgreich war, sendet die Luma API eine Antwort mit einer Task-ID. Hier ist ein Beispiel, was du bekommen könntest:

{
    "code": 0,
    "msg": "Ok",
    "data": {
        "task_id": "la1234-5678-xxxxxx"
    }
}

4.1 Was machst du mit der Task-ID?

Die Task-ID ist dein Zugang, um das generierte Video abzurufen. Luma verarbeitet deine Anfrage und schickt das Ergebnis an die Callback-URL, die du angegeben hast.

5. Den Callback verwalten

Jetzt reden wir über den Callback. Wenn Luma mit der Verarbeitung fertig ist, sendet es das Ergebnis an deinen Server unter der URL, die du angegeben hast. Hier ist ein Beispiel, wie die Daten aussehen könnten:

{
  "code": 0,
  "msg": "string",
  "detail": "string",
  "data": {
    "task_id": "string",
    "payload": {},
    "result": {
      "id": "string",
      "prompt": "string",
      "created_at": "2024-06-22T13:57:05.878000Z",
      "video": {
        "url": "string",
        "download_video_url": "string",
        "thumbnail": "string",
        "width": 0,
        "height": 0
      }
    }
  }
}

5.1 Deinen Callback-Server einrichten

Um das zu verarbeiten, solltest du einen Server haben, der unter der Callback-URL läuft. Ein einfacher Node.js Express-Server wäre dafür perfekt. Hier ist ein einfaches Beispiel:

const express = require('express');
const app = express();

app.use(express.json());

app.post('/api/cb_task', (req, res) => {
  const data = req.body;
  console.log('Callback empfangen:', data);
  res.sendStatus(200);
});

app.listen(3001, () => {
  console.log('Server läuft auf Port 3001');
});

6. Fazit

Und da hast du es! Du hast gerade gelernt, wie man die Luma AI API mit Node.js und Axios integriert. Das ist erst der Anfang; du kannst darauf aufbauen und noch coolere Features erstellen und das volle Potenzial von Luma’s Dream Machine ausschöpfen.

Viel Spaß beim Programmieren!