← Blog

Cómo Usar el SDK de Python de WaveSpeedAI

Aprende cómo integrar más de 700+ modelos de IA de WaveSpeedAI en tus aplicaciones de Python usando el SDK oficial de Python.

4 min read

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

Requisitos Previos

Antes de empezar, asegúrate de tener:

Instalación

Instala el SDK usando pip:

pip install wavespeed

Configuración de Autenticación

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

Opción 1: Variable de Entorno (Recomendado)

Establece la variable de entorno WAVESPEED_API_KEY:

export WAVESPEED_API_KEY="tu-clave-api-aqui"

Luego usa el SDK directamente:

import wavespeed

output = wavespeed.run(
    "wavespeed-ai/z-image/turbo",
    {"prompt": "Gato"}
)

Opción 2: Pasar la Clave API Directamente

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

from wavespeed import Client

client = Client(api_key="tu-clave-api-aqui")

Generando tu Primera Imagen

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

import wavespeed

output = wavespeed.run(
    "wavespeed-ai/z-image/turbo",
    {"prompt": "Un paisaje montañoso sereno al atardecer con luz dorada"}
)

print(output["outputs"][0])  # URL de la imagen generada

La función run() maneja el flujo de trabajo completo: enviar la solicitud, sondear la finalización y devolver el resultado.

Cargando Archivos

Para flujos de trabajo que requieren imágenes de entrada (como imagen a video), usa la función upload() para obtener una URL a la que WaveSpeedAI pueda acceder:

import wavespeed

# Carga un archivo de imagen local
image_url = wavespeed.upload("./mi-imagen.png")

# Usa la imagen cargada para generación de video
video = wavespeed.run(
    "wavespeed-ai/wan-2.1/image-to-video",
    {
        "image": image_url,
        "prompt": "La cámara se acerca lentamente mientras las nubes se mueven en el fondo"
    }
)

print(video["outputs"][0])  # URL del video generado

Opciones de Configuración

Opciones del Cliente

Configura el comportamiento de reintentos al inicializar el cliente:

from wavespeed import Client

client = Client(
    api_key="tu-clave-api",
    max_retries=3,            # Máximo de reintentos para solicitudes fallidas
    max_connection_retries=5, # Máximo de reintentos para errores de conexión
    retry_interval=1.0        # Segundos entre reintentos
)

Opciones de Ejecución

Configura llamadas individuales de run():

import wavespeed

output = wavespeed.run(
    "wavespeed-ai/z-image/turbo",
    {"prompt": "Un gato naranja lindo usando un pequeño sombrero"},
    timeout=60.0,           # Máximo de segundos a esperar por la finalización
    poll_interval=0.5,      # Segundos entre comprobaciones de estado
    enable_sync_mode=True   # Usa modo sincrónico si está disponible
)

Trabajando con Diferentes Modelos

Texto a Imagen

Genera imágenes a partir de descripciones de texto:

import wavespeed

output = wavespeed.run(
    "wavespeed-ai/z-image/turbo",
    {
        "prompt": "Un paisaje urbano futurista con autos voladores y luces de neón",
        "size": "1024x1024"
    }
)

Imagen a Video

Transforma imágenes estáticas en videos:

import wavespeed

image_url = wavespeed.upload("./paisaje.jpg")

video = wavespeed.run(
    "wavespeed-ai/wan-2.1/image-to-video",
    {
        "image": image_url,
        "prompt": "Un viento suave soplando a través de los árboles"
    }
)

Texto a Video

Genera videos directamente a partir de texto:

import wavespeed

video = wavespeed.run(
    "wavespeed-ai/wan-2.1/t2v-480p",
    {"prompt": "Un golden retriever corriendo a través de un campo de flores"}
)

Soporte Asincrónico

El SDK admite async/await para operaciones no bloqueantes:

import asyncio
import wavespeed

async def generate_image():
    output = await wavespeed.async_run(
        "wavespeed-ai/z-image/turbo",
        {"prompt": "Un astronauta montando un caballo en Marte"}
    )
    return output["outputs"][0]

# Ejecuta la función asincrónica
image_url = asyncio.run(generate_image())
print(image_url)

Manejo de Errores

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

from wavespeed import Client

client = Client(
    max_retries=3,
    max_connection_retries=5,
    retry_interval=1.0
)

try:
    output = client.run(
        "wavespeed-ai/z-image/turbo",
        {"prompt": "Un hermoso atardecer sobre el océano"},
        timeout=120.0
    )
    print("Generado:", output["outputs"][0])
except Exception as e:
    print(f"La generación falló: {e}")

Recursos

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