← Blog

Cómo usar el SDK de JavaScript de WaveSpeedAI

Aprende cómo integrar los 700+ modelos de IA de WaveSpeedAI en tus aplicaciones de Node.js usando el SDK oficial de JavaScript.

4 min read

El SDK de JavaScript de WaveSpeedAI proporciona una forma simple de integrar generación de imágenes y videos con IA en tus aplicaciones de Node.js y TypeScript. Esta guía cubre todo lo que necesitas para comenzar.

Requisitos previos

Antes de comenzar, asegúrate de tener:

Instalación

Instala el SDK usando npm:

npm install wavespeed

O con yarn:

yarn add wavespeed

Configurando la autenticación

El SDK necesita tu clave API para autenticar las solicitudes. Tienes dos opciones:

Opción 1: Variable de entorno (Recomendado)

Establece la variable de entorno WAVESPEED_API_KEY:

export WAVESPEED_API_KEY="your-api-key-here"

Luego usa el SDK directamente:

import wavespeed from "wavespeed";

const output = await wavespeed.run("wavespeed-ai/z-image/turbo", { prompt: "Cat" });

Opción 2: Pasar la clave API directamente

Importa la clase Client y pasa tu clave API al constructor:

import { Client } from "wavespeed";

const client = new Client("your-api-key-here");

Generando tu primera imagen

Aquí hay un ejemplo completo que genera una imagen usando Z-Image Turbo:

import wavespeed from "wavespeed";

const output = await wavespeed.run(
  "wavespeed-ai/z-image/turbo",
  { prompt: "A serene mountain landscape at sunset with golden light" }
);

console.log(output["outputs"][0]); // URL to the generated image

El método run() maneja todo el flujo de trabajo: enviar la solicitud, sondear la finalización y devolver el resultado.

Subiendo archivos

Para flujos de trabajo que requieren imágenes de entrada (como imagen a video), usa el método upload() para obtener una URL que WaveSpeedAI pueda acceder:

import wavespeed from "wavespeed";

// Upload a local image file
const imageUrl = await wavespeed.upload("./my-image.png");

// Use the uploaded image for video generation
const video = await wavespeed.run(
  "wavespeed-ai/wan-2.1/image-to-video",
  {
    image: imageUrl,
    prompt: "Camera slowly zooms in while clouds move in the background"
  }
);

console.log(video["outputs"][0]); // URL to the generated video

Opciones de configuración

Opciones del cliente

Configura el comportamiento de reintentos al inicializar el cliente:

import { Client } from "wavespeed";

const client = new Client(process.env.WAVESPEED_API_KEY, {
  maxRetries: 3,           // Max retries for failed requests
  maxConnectionRetries: 5, // Max retries for connection errors
  retryInterval: 1.0       // Seconds between retries
});

Opciones de ejecución

Configura llamadas run() individuales:

import wavespeed from "wavespeed";

const output = await wavespeed.run(
  "wavespeed-ai/z-image/turbo",
  { prompt: "A cute orange cat wearing a tiny hat" },
  {
    timeout: 60,        // Max seconds to wait for completion
    pollInterval: 0.5,  // Seconds between status checks
    enableSyncMode: true // Use synchronous mode if available
  }
);

Trabajando con diferentes modelos

Texto a imagen

Genera imágenes a partir de descripciones de texto:

import wavespeed from "wavespeed";

const output = await wavespeed.run(
  "wavespeed-ai/z-image/turbo",
  {
    prompt: "A futuristic cityscape with flying cars and neon lights",
    size: "1024x1024"
  }
);

Imagen a video

Transforma imágenes estáticas en videos:

import wavespeed from "wavespeed";

const imageUrl = await wavespeed.upload("./landscape.jpg");

const video = await wavespeed.run(
  "wavespeed-ai/wan-2.1/image-to-video",
  {
    image: imageUrl,
    prompt: "Gentle wind blowing through the trees"
  }
);

Texto a video

Genera videos directamente a partir de texto:

import wavespeed from "wavespeed";

const video = await wavespeed.run(
  "wavespeed-ai/wan-2.1/t2v-480p",
  {
    prompt: "A golden retriever running through a field of flowers"
  }
);

Uso de TypeScript

El SDK incluye definiciones de TypeScript. Aquí hay un ejemplo type-safe:

import wavespeed from "wavespeed";

interface GenerationOutput {
  outputs: string[];
  timings?: Record<string, number>;
}

const output: GenerationOutput = await wavespeed.run(
  "wavespeed-ai/z-image/turbo",
  { prompt: "An astronaut riding a horse on Mars" }
);

const imageUrl: string = output.outputs[0];
console.log(imageUrl);

Manejo de errores

Para aplicaciones de producción, configura reintentos y maneja errores correctamente:

import { Client } from "wavespeed";

const client = new Client(process.env.WAVESPEED_API_KEY, {
  maxRetries: 3,
  maxConnectionRetries: 5,
  retryInterval: 1.0
});

try {
  const output = await client.run(
    "wavespeed-ai/z-image/turbo",
    { prompt: "A beautiful sunset over the ocean" },
    { timeout: 120 }
  );
  console.log("Generated:", output.outputs[0]);
} catch (error) {
  console.error("Generation failed:", error.message);
}

Recursos

Comienza a construir con WaveSpeedAI hoy y lleva la generación de imágenes y videos potenciada por IA a tus aplicaciones de JavaScript.