メインコンテンツへ移動
AIチュートリアル

非同期動画生成クライアントで複数のAIプロバイダーから動画を生成

Video Gen Clientのインストール方法と使い方を解説します。Seedance、Kling、MiniMax/Hailuo、Wanプロバイダーで動画を生成できる、統合CLIとFastAPI Webインターフェースを備えた非同期Pythonツールキットです。

非同期動画生成クライアントで複数のAIプロバイダーから動画を生成

Video Gen Clientの機能

Video Gen Clientは、複数の動画生成プロバイダーに対応する非同期Pythonクライアントを1つ提供します。対象は、ByteDanceのSeedance、KuaishouのKling、MiniMax/Hailuo、AlibabaのWanです。プロバイダーごとに個別の連携を実装する代わりに、統一されたコマンドラインインターフェースまたはWebアプリケーションを通じて、利用可能なモデルの確認、生成タスクの送信、ステータス確認、結果のダウンロードを行えます。

このプロジェクトは、プロバイダーAPIを利用するための連携コードとして設計されています。APIやモデルIDはプロバイダーごとに独立して変更される可能性があるため、プロバイダーアダプターは時間の経過とともに更新が必要になる場合があります。

対応プロバイダーとモデル

クライアントには現在、次のプロバイダーファミリーとAPIモデルIDが一覧表示されます。

  • Seedance: バージョン2.5ではdoubao-seedance-2.5、バージョン2.0ではdoubao-seedance-2-0-260128を使用します。2.0 Miniおよび2.0 Fastティアでは、それぞれdoubao-seedance-2-0-mini-260615とdoubao-seedance-2-0-fast-260128を使用します。
  • Kling: Kling 3.0および3.0 Omniでは、それぞれkling-v3とkling-v3-omniを使用します。その他の一覧モデルには、kling-v2-6、kling-v2-5-turbo、kling-v2-1-masterがあります。
  • MiniMax/Hailuo: H3ではMiniMax-H3、バージョン2.3ではMiniMax-Hailuo-2.3とMiniMax-Hailuo-2.3-Fastを使用します。
  • Wan: Wan 3.0ではwan3.0を使用します。Wan 2.7、2.6、2.5には、テキストから動画、画像から動画、参照画像から動画、プレビュー用の専用モデルIDが用意されています。

クライアントのインストールと設定

  1. リポジトリをクローンします:
    git clone https://github.com/letorig/video-generator-client
    cd video-generator-client
  2. 仮想環境を作成します:
    python -m venv .venv
  3. 環境を有効化します。Windowsでは次を実行します:
    .venv\Scripts\activate
    macOSまたはLinuxでは次を実行します:
    source .venv/bin/activate
  4. Webサポート付きでパッケージをインストールします:
    pip install -e ".[web]"
  5. プロバイダーの認証情報を追加します: .env.exampleを.envにコピーし、利用するプロバイダーの認証情報を追加します。READMEでは特定の認証情報セットを指定していないため、ワークフローに必要なサービスだけを設定してください。

CLIを使用する場合、生成された出力はoutputフォルダーに保存されます。

コマンドラインインターフェースを使用する

インストール後、video-genコマンドで、プロバイダーの確認、モデルの選択、生成タスクの開始、結果の確認という主要なワークフローを実行できます。

プロバイダーとモデルを確認する

まず、利用可能なコマンドとプロバイダーを表示します:

video-gen --help
video-gen providers

プロバイダーのモデルを確認するには、modelsコマンドにプロバイダー名を渡します:

video-gen models wan

動画を生成する

プロンプト、プロバイダー、モデル、長さを指定して、テキストから動画へのリクエストを送信します:

video-gen generate wan --prompt "A snowy forest at dawn" --model 2.1 --duration 5

このコマンドは選択したプロバイダーを通じてタスクを送信し、生成された出力をoutputフォルダーに保存します。プロバイダーによって利用可能なモデルは変わる可能性があるため、独自のコマンドを作成する際は、プロジェクトが公開しているプロバイダーとモデルの値を使用してください。

タスクのステータスを確認する

非同期の生成ワークフローでは、プロバイダーとタスクIDを指定してタスクを問い合わせます:

video-gen status wan TASK_ID

TASK_IDは、生成ワークフローから返された識別子に置き換えてください。

Webインターフェースを実行する

このプロジェクトには、Pythonパッケージに直接組み込まれたWebインターフェースがあります。npm、Node.js、個別のフロントエンドビルド手順は不要です。FastAPIがHTMLインターフェースを提供し、プロバイダーの確認、動画生成、タスクのポーリング、MP4ダウンロード用のJSONエンドポイントを公開します。

デフォルトのホストとポートでサーバーを起動します:

video-gen serve

ホストとポートを明示的に指定することもできます:

video-gen serve --host 127.0.0.1 --port 8000

リロードを有効にしてサーバーを起動するには、次を使用します:

video-gen serve --host 0.0.0.0 --port 9000 --reload

Web UIの機能

このインターフェースは、プロバイダーとモデルの選択、テキストから動画および画像から動画への入力、ネガティブプロンプト、長さ、アスペクト比、解像度の各設定に対応しています。また、タスクステータスのライブポーリング、動画プレビュー、MP4ダウンロード、現在のサーバーセッション中のインメモリタスク履歴も利用できます。

実用的なワークフローのヒント

  • 生成前に確認する: プロバイダーやモデルを選ぶ前に、video-gen providersとvideo-gen models PROVIDERを実行します。
  • 認証情報の範囲を絞る: 現在のワークフローに必要なプロバイダーの認証情報だけを.envファイルに追加します。
  • 非同期タスクを追跡する: statusコマンドとWebインターフェースのライブポーリングで生成状況を監視できます。
  • ワークフローに合ったインターフェースを選ぶ: CLIはスクリプトやターミナルベースのジョブに便利で、Web UIはインタラクティブな操作とプレビューを提供します。
  • 連携の保守を前提にする: プロバイダーAPIとモデルIDはこのSDKとは独立しており、変更される可能性があります。プロバイダーがサービスを更新した場合は、アダプターとモデルカタログを確認してください。

プロジェクト構成

リポジトリでは、クライアント、コマンドラインインターフェース、Webサーバー、モデルカタログ、プロバイダーアダプター、静的Webアセット、サンプル、テスト、ユーティリティコードが分離されています:

src/video_gen/
├── client.py
├── cli.py
├── web.py
├── catalog.py
├── static/index.html
├── providers/
└── utils/

設定は .env.example で管理され、パッケージングとインストールの設定は pyproject.toml で定義されています。リポジトリには、examples/、tests/、およびオプションの mcp_server/ ディレクトリも含まれています。

まとめ

Video Gen Client は、Python 開発者が複数の動画生成プロバイダーを統一的に扱うための手段を提供します。仮想環境にインストールし、必要な認証情報を設定して、対応モデルを確認したうえで、CLI または付属の FastAPI Web UI からタスクを送信できます。本番環境で使用する場合は、モデル ID や API の動作がクライアントとは独立して変更される可能性があるため、プロバイダーの変更を監視してください。