Как использовать Python SDK WaveSpeedAI

Как использовать Python SDK WaveSpeedAI

Python SDK WaveSpeedAI предоставляет простой способ интегрировать генерацию AI изображений и видео в ваши Python приложения. Это руководство охватывает всё, что вам нужно для начала работы.

Требования

Перед началом убедитесь, что у вас есть:

Установка

Установите SDK с помощью pip:

pip install wavespeed

Настройка аутентификации

SDK требует ваш API ключ для аутентификации запросов. У вас есть два варианта:

Вариант 1: Переменная окружения (Рекомендуется)

Установите переменную окружения WAVESPEED_API_KEY:

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

Затем используйте SDK напрямую:

import wavespeed

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

Вариант 2: Передайте API ключ напрямую

Импортируйте класс Client и передайте ваш API ключ в конструктор:

from wavespeed import Client

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

Генерирование вашего первого изображения

Вот полный пример, который генерирует изображение с помощью 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

Функция run() обрабатывает весь рабочий процесс: отправку запроса, опрос статуса завершения и возврат результата.

Загрузка файлов

Для рабочих процессов, которые требуют входные изображения (например, image-to-video), используйте функцию upload() для получения URL, доступного 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

Варианты конфигурации

Параметры клиента

Настройте поведение повторных попыток при инициализации клиента:

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
)

Параметры выполнения

Настройте отдельные вызовы 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
)

Работа с различными моделями

Текст в изображение

Генерируйте изображения из текстовых описаний:

import wavespeed

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

Изображение в видео

Преобразуйте статические изображения в видео:

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"
    }
)

Текст в видео

Генерируйте видео прямо из текста:

import wavespeed

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

Асинхронная поддержка

SDK поддерживает async/await для неблокирующих операций:

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)

Обработка ошибок

Для production приложений настройте повторные попытки и обрабатывайте ошибки корректно:

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}")

Ресурсы

Начните разрабатывать с WaveSpeedAI сегодня и добавьте генерацию AI изображений и видео на базе ИИ в ваши Python приложения.