WaveSpeedAI JavaScriptSDKの使い方

WaveSpeedAI JavaScriptSDKの使い方

WaveSpeedAI JavaScript SDKは、Node.jsおよびTypeScriptアプリケーションにAI画像・動画生成を簡単に統合できる方法を提供します。このガイドでは、始めるために必要なすべてをカバーしています。

前提条件

始める前に、以下を確認してください:

インストール

npmを使用してSDKをインストールします:

npm install wavespeed

またはyarnを使用:

yarn add wavespeed

認証の設定

SDKはリクエストを認証するためにAPIキーが必要です。2つのオプションがあります:

オプション1:環境変数(推奨)

WAVESPEED_API_KEY環境変数を設定します:

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

その後、SDKを直接使用します:

import wavespeed from "wavespeed";

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

オプション2:APIキーを直接渡す

Clientクラスをインポートし、APIキーをコンストラクタに渡します:

import { Client } from "wavespeed";

const client = new Client("your-api-key-here");

最初の画像を生成する

Z-Image Turboを使用して画像を生成する完全な例を示します:

import wavespeed from "wavespeed";

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

console.log(output["outputs"][0]); // 生成された画像へのURL

run()メソッドは、リクエストの送信、完了のためのポーリング、結果の返却という全体のワークフローを処理します。

ファイルのアップロード

画像から動画への変換など、入力画像が必要なワークフローの場合は、upload()メソッドを使用してWaveSpeedAIがアクセスできるURLを取得します:

import wavespeed from "wavespeed";

// ローカル画像ファイルをアップロード
const imageUrl = await wavespeed.upload("./my-image.png");

// アップロードされた画像を動画生成に使用
const video = await wavespeed.run(
  "wavespeed-ai/wan-2.1/image-to-video",
  {
    image: imageUrl,
    prompt: "Camera slowly zooms in while clouds move in the background"
  }
);

console.log(video["outputs"][0]); // 生成された動画へのURL

設定オプション

クライアントオプション

クライアントを初期化するときの再試行動作を設定します:

import { Client } from "wavespeed";

const client = new Client(process.env.WAVESPEED_API_KEY, {
  maxRetries: 3,           // 失敗したリクエストの最大再試行回数
  maxConnectionRetries: 5, // 接続エラーの最大再試行回数
  retryInterval: 1.0       // 再試行間の秒数
});

実行オプション

個々のrun()呼び出しを設定します:

import wavespeed from "wavespeed";

const output = await wavespeed.run(
  "wavespeed-ai/z-image/turbo",
  { prompt: "A cute orange cat wearing a tiny hat" },
  {
    timeout: 60,        // 完了を待つ最大秒数
    pollInterval: 0.5,  // ステータスチェック間の秒数
    enableSyncMode: true // 利用可能な場合は同期モードを使用
  }
);

さまざまなモデルの使用

テキストから画像へ

テキスト説明から画像を生成します:

import wavespeed from "wavespeed";

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

画像から動画へ

静止画を動画に変換します:

import wavespeed from "wavespeed";

const imageUrl = await wavespeed.upload("./landscape.jpg");

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

テキストから動画へ

テキストから直接動画を生成します:

import wavespeed from "wavespeed";

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

TypeScriptの使用

SDKはTypeScript定義を含みます。型安全な例を示します:

import wavespeed from "wavespeed";

interface GenerationOutput {
  outputs: string[];
  timings?: Record<string, number>;
}

const output: GenerationOutput = await wavespeed.run(
  "wavespeed-ai/z-image/turbo",
  { prompt: "An astronaut riding a horse on Mars" }
);

const imageUrl: string = output.outputs[0];
console.log(imageUrl);

エラーハンドリング

本番環境向けアプリケーションの場合、再試行を設定してエラーを適切に処理します:

import { Client } from "wavespeed";

const client = new Client(process.env.WAVESPEED_API_KEY, {
  maxRetries: 3,
  maxConnectionRetries: 5,
  retryInterval: 1.0
});

try {
  const output = await client.run(
    "wavespeed-ai/z-image/turbo",
    { prompt: "A beautiful sunset over the ocean" },
    { timeout: 120 }
  );
  console.log("Generated:", output.outputs[0]);
} catch (error) {
  console.error("Generation failed:", error.message);
}

リソース

今すぐWaveSpeedAIで構築を始めて、AI駆動の画像・動画生成をJavaScriptアプリケーションにもたらしましょう。