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.
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:
- Node.js 18+ instalado en tu máquina
- Una clave API de WaveSpeedAI desde wavespeed.ai/settings/api-keys
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
- Repositorio en GitHub: github.com/WaveSpeedAI/wavespeed-javascript
- Paquete npm: npmjs.com/package/wavespeed
- Documentación de API: docs.wavespeed.ai
- Biblioteca de modelos: wavespeed.ai/models
Comienza a construir con WaveSpeedAI hoy y lleva la generación de imágenes y videos potenciada por IA a tus aplicaciones de JavaScript.
