mcpField
A
alicloud-ai-video-wan-video

alicloud-ai-video-wan-video

github.com/cinienceクリエイティブ・メディア396307 回インストール11 週間前に更新
リポジトリ

alicloud-ai-video-wan-video について

動画 Agent パイプライン向けの動画生成スキルです。DashScope Python SDK で Alibaba Cloud Model Studio の Wan モデルを呼び出し、入出力を統一して非同期タスクのポーリングにも対応します。

主な機能

  1. 01video.generate インターフェースの統一
  2. 02テキスト・画像からの動画生成
  3. 03非同期タスクのポーリング
  4. 04タスク ID と動画 URL の保存
  5. 05出力ディレクトリの設定

活用シーン

  1. 01テキストプロンプトから動画を生成
  2. 02参照画像を動画にする
  3. 03時間のかかる生成タスクを追跡

MCP 対応

このスキルには MCP 連携の記載がありません。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/cinience/alicloud-skills --skill alicloud-ai-video-wan-video

インストール後、Claude Code で/alicloud-ai-video-wan-videoを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
references/
api_reference.md
sources.md
scripts/
generate_dancing_video.py
generate_video.py

詳細

Category: provider

Model Studio Wan Video

検証

mkdir -p output/alicloud-ai-video-wan-video
python -m py_compile skills/ai/video/alicloud-ai-video-wan-video/scripts/generate_video.py && echo "py_compile_ok" > output/alicloud-ai-video-wan-video/validate.txt

合格基準:コマンドが 0 で終了し、output/alicloud-ai-video-wan-video/validate.txt が生成されること。

出力と証拠

  • タスク ID、ポーリングの応答、最終的な動画 URL を output/alicloud-ai-video-wan-video/ に保存します。
  • トラブルシューティング用に、エンドツーエンドの実行ログを 1 つ保持します。

video.generate の入出力を標準化し、正確なモデル名を指定して DashScope SDK(Python)を使用することで、動画エージェントのパイプラインに一貫した動画生成動作を提供します。

重要なモデル名

次のモデル文字列のいずれかをそのまま使用します。

  • wan2.6-t2v
  • wan2.6-t2v-us
  • wan2.2-t2v-plus
  • wan2.2-t2v-flash
  • wan2.6-i2v-flash
  • wan2.6-i2v
  • wan2.6-i2v-us
  • wanx2.1-t2v-turbo

前提条件

  • SDK をインストールします(PEP 668 の制限を避けるため、venv の使用を推奨します)。
python3 -m venv .venv
. .venv/bin/activate
python -m pip install dashscope
  • 環境に DASHSCOPE_API_KEY を設定するか、~/.alibabacloud/credentials に dashscope_api_key を追加します(環境変数が優先されます)。

標準化されたインターフェイス(video.generate)

リクエスト
  • prompt(文字列、必須)
  • negative_prompt(文字列、任意)
  • duration(数値、必須)秒
  • fps(数値、必須)
  • size(文字列、必須)、例:1280*720
  • seed(int、任意)
  • reference_image(文字列 | bytes、t2v では任意、i2v ファミリーのモデルでは必須)
  • motion_strength(数値、任意)
レスポンス
  • video_url(文字列)
  • duration(数値)
  • fps(数値)
  • seed(int)

クイックスタート(Python + DashScope SDK)

通常、動画生成は非同期です。タスク ID を受け取り、完了するまでポーリングしてください。 注:Wan i2v モデルには入力画像が必要です。wan2.6-t2v などの t2v 専用モデルでは、reference_image を省略できます。

import os
from dashscope import VideoSynthesis

# Prefer env var for auth: export DASHSCOPE_API_KEY=...
# Or use ~/.alibabacloud/credentials with dashscope_api_key under [default].

def generate_video(req: dict) -> dict:
    payload = {
        "model": req.get("model", "wan2.6-i2v-flash"),
        "prompt": req["prompt"],
        "negative_prompt": req.get("negative_prompt"),
        "duration": req.get("duration", 4),
        "fps": req.get("fps", 24),
        "size": req.get("size", "1280*720"),
        "seed": req.get("seed"),
        "motion_strength": req.get("motion_strength"),
        "api_key": os.getenv("DASHSCOPE_API_KEY"),
    }

    if req.get("reference_image"):
        # DashScope expects img_url for i2v models; local files are auto-uploaded.
        payload["img_url"] = req["reference_image"]

    response = VideoSynthesis.call(**payload)

    # Some SDK versions require polling for the final result.
    # If a task_id is returned, poll until status is SUCCEEDED.
    result = response.output.get("results", [None])[0]

    return {
        "video_url": None if not result else result.get("url"),
        "duration": response.output.get("duration"),
        "fps": response.output.get("fps"),
        "seed": response.output.get("seed"),
    }

非同期処理(ポーリング)

import os
from dashscope import VideoSynthesis

task = VideoSynthesis.async_call(
    model=req.get("model", "wan2.6-i2v-flash"),
    prompt=req["prompt"],
    img_url=req["reference_image"],
    duration=req.get("duration", 4),
    fps=req.get("fps", 24),
    size=req.get("size", "1280*720"),
    api_key=os.getenv("DASHSCOPE_API_KEY"),
)

final = VideoSynthesis.wait(task)
video_url = final.output.get("video_url")

運用ガイダンス

  • 動画生成には数分かかることがあります。進行状況を表示し、キャンセルや再試行を可能にしてください。
  • (prompt, negative_prompt, duration, fps, size, seed, reference_image hash, motion_strength) をキーにキャッシュします。
  • 動画アセットはオブジェクトストレージに保存し、メタデータには URL のみを永続化します。
  • reference_image には URL またはローカルパスを指定できます。SDK がローカルファイルを自動アップロードします。
  • Field required: input.img_url が表示された場合、参照画像がないか、マッピングされていません。
  • 公式ドキュメントによると、wan2.6-t2v と wan2.6-t2v-us はマルチショットのナラティブに対応し、オプションで音声入力を利用できます。

サイズに関する注意

  • WxH 形式を使用します(例:1280*720)。
  • 一般的なサイズを優先してください。未対応のサイズでは 400 が返されることがあります。

出力先

  • デフォルトの出力先:output/alicloud-ai-video-wan-video/videos/
  • OUTPUT_DIR でベースディレクトリを上書きできます。

アンチパターン

  • モデル名やエイリアスを独自に作らず、公式の Wan i2v モデル ID のみを使用してください。
  • 進行状況を更新せずに UI をブロックしないでください。
  • 4xx エラーに対して無条件に再試行せず、検証エラーを明示的に処理してください。

ワークフロー

  1. ユーザーの意図、リージョン、識別子、および操作が読み取り専用か変更を伴うかを確認します。
  2. 接続と権限を確認するため、まず最小限の読み取り専用クエリを 1 つ実行します。
  3. 明示的なパラメーターと範囲を限定して、対象の操作を実行します。
  4. 結果を検証し、出力ファイルと証拠ファイルを保存します。

参考資料

  • DashScope SDK のマッピングと非同期処理に関する注意事項は、references/api_reference.md を参照してください。

  • ソース一覧:references/sources.md

コメント