alicloud-ai-video-wan-video について
動画 Agent パイプライン向けの動画生成スキルです。DashScope Python SDK で Alibaba Cloud Model Studio の Wan モデルを呼び出し、入出力を統一して非同期タスクのポーリングにも対応します。
主な機能
- 01video.generate インターフェースの統一
- 02テキスト・画像からの動画生成
- 03非同期タスクのポーリング
- 04タスク ID と動画 URL の保存
- 05出力ディレクトリの設定
活用シーン
- 01テキストプロンプトから動画を生成
- 02参照画像を動画にする
- 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.yamlreferences/api_reference.mdsources.mdscripts/generate_dancing_video.pygenerate_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-t2vwan2.6-t2v-uswan2.2-t2v-pluswan2.2-t2v-flashwan2.6-i2v-flashwan2.6-i2vwan2.6-i2v-uswanx2.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*720seed(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 つ実行します。
- 明示的なパラメーターと範囲を限定して、対象の操作を実行します。
- 結果を検証し、出力ファイルと証拠ファイルを保存します。
参考資料
-
DashScope SDK のマッピングと非同期処理に関する注意事項は、
references/api_reference.mdを参照してください。 -
ソース一覧:
references/sources.md
コメント
Markdown 対応