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.
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.
