Cómo Usar el SDK de Python de WaveSpeedAI
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:
- Python 3.8+ instalado en tu máquina
- Una clave API de WaveSpeedAI de wavespeed.ai/settings/api-keys
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
- Repositorio de GitHub: github.com/WaveSpeedAI/wavespeed-python
- Paquete PyPI: pypi.org/project/wavespeed
- Documentación de API: docs.wavespeed.ai
- Biblioteca de Modelos: wavespeed.ai/models
Comienza a construir con WaveSpeedAI hoy y lleva generación de imágenes y videos potenciada por IA a tus aplicaciones de Python.




