Comment utiliser le SDK Python WaveSpeedAI

Comment utiliser le SDK Python WaveSpeedAI

Le SDK Python WaveSpeedAI

Le SDK Python WaveSpeedAI offre un moyen simple d’intégrer la génération d’images et de vidéos par IA dans vos applications Python. Ce guide couvre tout ce que vous devez savoir pour commencer.

Prérequis

Avant de commencer, assurez-vous que vous avez :

Installation

Installez le SDK en utilisant pip :

pip install wavespeed

Configuration de l’authentification

Le SDK a besoin de votre clé API pour authentifier les requêtes. Vous avez deux options :

Option 1 : Variable d’environnement (recommandé)

Définissez la variable d’environnement WAVESPEED_API_KEY :

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

Ensuite, utilisez le SDK directement :

import wavespeed

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

Option 2 : Passer la clé API directement

Importez la classe Client et passez votre clé API au constructeur :

from wavespeed import Client

client = Client(api_key="your-api-key-here")

Générer votre première image

Voici un exemple complet qui génère une image en utilisant Z-Image Turbo :

import wavespeed

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

print(output["outputs"][0])  # URL to the generated image

La fonction run() gère l’ensemble du flux de travail : soumettre la requête, sonder l’achèvement et retourner le résultat.

Télécharger des fichiers

Pour les flux de travail qui nécessitent des images d’entrée (comme image-to-video), utilisez la fonction upload() pour obtenir une URL accessible à WaveSpeedAI :

import wavespeed

# Upload a local image file
image_url = wavespeed.upload("./my-image.png")

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

print(video["outputs"][0])  # URL to the generated video

Options de configuration

Options du client

Configurez le comportement des tentatives lors de l’initialisation du client :

from wavespeed import Client

client = Client(
    api_key="your-api-key",
    max_retries=3,            # Max retries for failed requests
    max_connection_retries=5, # Max retries for connection errors
    retry_interval=1.0        # Seconds between retries
)

Options de run

Configurez les appels individuels run() :

import wavespeed

output = wavespeed.run(
    "wavespeed-ai/z-image/turbo",
    {"prompt": "A cute orange cat wearing a tiny hat"},
    timeout=60.0,           # Max seconds to wait for completion
    poll_interval=0.5,      # Seconds between status checks
    enable_sync_mode=True   # Use synchronous mode if available
)

Travailler avec différents modèles

Texte vers image

Générez des images à partir de descriptions textuelles :

import wavespeed

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

Image vers vidéo

Transformez des images statiques en vidéos :

import wavespeed

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

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

Texte vers vidéo

Générez des vidéos directement à partir de texte :

import wavespeed

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

Support asynchrone

Le SDK supporte async/await pour les opérations non-bloquantes :

import asyncio
import wavespeed

async def generate_image():
    output = await wavespeed.async_run(
        "wavespeed-ai/z-image/turbo",
        {"prompt": "An astronaut riding a horse on Mars"}
    )
    return output["outputs"][0]

# Run the async function
image_url = asyncio.run(generate_image())
print(image_url)

Gestion des erreurs

Pour les applications de production, configurez les tentatives et gérez les erreurs gracieusement :

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": "A beautiful sunset over the ocean"},
        timeout=120.0
    )
    print("Generated:", output["outputs"][0])
except Exception as e:
    print(f"Generation failed: {e}")

Ressources

Commencez à construire avec WaveSpeedAI dès aujourd’hui et apportez la génération d’images et de vidéos alimentées par l’IA à vos applications Python.