wavespeed
v0.2.3
Published
WaveSpeed Client SDK for Wavespeed API
Readme
Introduction
WaveSpeedAI JavaScript/TypeScript SDK — Official JS/TS SDK for WaveSpeedAI inference platform. This library offers a clean, unified, and high-performance API for your applications.
Installation
npm install wavespeedAPI Client
Run WaveSpeed AI models with a simple API:
import wavespeed from 'wavespeed';
const output = await wavespeed.run(
"wavespeed-ai/z-image/turbo",
{ prompt: "Cat" }
);
console.log(output["outputs"][0]); // Output URLAuthentication
Set your API key via environment variable (You can get your API key from https://wavespeed.ai/accesskey):
export WAVESPEED_API_KEY="your-api-key"Or pass it directly:
import { Client } from 'wavespeed';
const client = new Client("your-api-key");
const output = await client.run("wavespeed-ai/z-image/turbo", { prompt: "Cat" });Options
const output = await wavespeed.run(
"wavespeed-ai/z-image/turbo",
{ prompt: "Cat" },
{
timeout: 36000.0, // Max wait time in seconds (default: 36000.0)
pollInterval: 1.0, // Status check interval (default: 1.0)
enableSyncMode: false, // Single request mode, no polling (default: false)
}
);Sync Mode
Use enableSyncMode: true for a single request that waits for the result (no polling).
Note: Not all models support sync mode. Check the model documentation for availability.
const output = await wavespeed.run(
"wavespeed-ai/z-image/turbo",
{ prompt: "Cat" },
{ enableSyncMode: true }
);Retry Configuration
Configure retries at the client level:
import { Client } from 'wavespeed';
const client = new Client("your-api-key", {
maxRetries: 0, // Task-level retries (default: 0)
maxConnectionRetries: 5, // HTTP connection retries (default: 5)
retryInterval: 1.0, // Base delay between retries in seconds (default: 1.0)
});Upload Files
Upload images, videos, or audio files:
import wavespeed from 'wavespeed';
const url = await wavespeed.upload("/path/to/image.png");
console.log(url);Getting Task ID and Debug Information
If you need access to the task ID for logging, tracking, or debugging, use runNoThrow() instead of run(). This method returns detailed information and does not throw exceptions:
const result = await client.runNoThrow(model, input);
if (result.outputs) {
console.log("Success:", result.outputs);
console.log("Task ID:", result.detail.taskId); // For tracking/debugging
} else {
console.log("Failed:", result.detail.error);
console.log("Task ID:", result.detail.taskId); // Still available on failure
}Running Tests
# Run all tests
npm test
# Run a single test file
npm test -- tests/test_api.ts
# Run a specific test
npm test -- tests/test_api.ts -t "run success"Environment Variables
API Client
| Variable | Description |
|----------|-------------|
| WAVESPEED_API_KEY | WaveSpeed API key |
License
MIT
