pub

Empezando con la API de Luma AI usando Node.js y Axios

Cómo Usar la API de Luma AI con Node.js y Axios

Oye, ¿sabías que Lumalabs está dando de qué hablar con su función Dream Machine? ¡Te deja crear contenido de vídeo increíble usando IA! Y, ¿adivina qué? Puedes aprovechar esta magia a través de su API. En esta guía, te mostraré cómo usar Node.js y Axios para manejar la API de Luma AI de forma fácil.

1. ¿Qué Son Lumalabs y Dream Machine?

Antes de sumergirnos en el código, hablemos un poco sobre Lumalabs. Son los genios detrás de Dream Machine, una herramienta de IA poderosa que genera vídeos a partir de textos y imágenes. Ya seas un profesional creativo o simplemente alguien que le gusta experimentar con IA, Dream Machine abre un mundo de posibilidades.

2. Configurando Tu Proyecto de Node.js

Primero, lo que tenemos que hacer es crear un proyecto en Node.js. Si aún no lo has hecho, crea un nuevo directorio para tu proyecto y corre:

npm init -y

Esto te va a preparar un proyecto básico de Node.js. Luego, necesitarás instalar Axios para hacer peticiones HTTP:

npm install axios form-data

Usaremos Axios para manejar las solicitudes a la API de Luma.

3. Envolviendo la API de Luma con Axios

¡Vale, ahora viene la parte divertida! Vamos a crear una función simple que use Axios. Aquí te dejo un repaso rápido del código:

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

let data = new FormData();
data.append('arg_prompt', 'el viento sopla');
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 Entendiendo el Código

  • FormData: Usamos FormData para manejar el cuerpo de la solicitud, que incluye el prompt y la URL de callback.
  • Petición con Axios: El método axios.request() envía la solicitud POST a la API de Luma. Si todo va bien, muestra la respuesta; si no, captura y muestra el error.

4. Manejo de la Respuesta

Una vez que la solicitud es exitosa, la API de Luma te regresará una respuesta con un ID de tarea. Aquí un ejemplo de lo que podrías recibir:

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

4.1 ¿Qué Hacer con el ID de Tarea?

El ID de tarea es tu pase para recuperar el vídeo generado. Luma procesará tu solicitud y luego enviará el resultado a la URL de callback que proporcionaste.

5. Manejo del Callback

Vamos a hablar sobre el callback. Cuando Luma termine de procesar, enviará el resultado a tu servidor en la URL que especificaste. Aquí tienes un ejemplo de cómo podría lucir esta data:

{
  "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 Configurando Tu Servidor de Callback

Para manejar esto, necesitarás un servidor corriendo en la URL del callback. Un servidor simple con Node.js y Express estaría perfecto para esto. Aquí tienes un ejemplo básico:

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 recibido:', data);
  res.sendStatus(200);
});

app.listen(3001, () => {
  console.log('Servidor corriendo en el puerto 3001');
});

6. Conclusión

¡Y eso es todo! Ahora sabes cómo integrar la API de Luma AI con Node.js usando Axios. Esto es solo la punta del iceberg; puedes construir sobre esto para crear funciones más avanzadas y realmente desbloquear el potencial de Dream Machine de Luma.

¡Feliz codificación!