mcpField
A
aliyun-wan-videoedit

aliyun-wan-videoedit

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

aliyun-wan-videoedit について

Alibaba Cloud の `wan2.7-videoedit` モデルで動画を編集するスキルです。スタイル変換と指示文による編集に対応し、非同期タスクで処理結果を取得します。

主な機能

  1. 01動画のビジュアルスタイルを変換
  2. 02テキスト指示で内容を編集
  3. 03最大 3 枚の参照画像を追加
  4. 04出力解像度とアスペクト比を設定
  5. 05非同期タスクを送信して状態を確認

活用シーン

  1. 01映像をアニメ風や粘土風に変換
  2. 02テキスト指示でクリップを編集
  3. 03参照画像で編集の方向性を指定

インストール

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

$npx skills add https://github.com/cinience/alicloud-skills --skill aliyun-wan-videoedit

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

同梱ファイル

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

references/
api_reference.md
sources.md
scripts/
edit_video.py

詳細

Wan 2.7 動画編集

検証

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

合格基準:コマンドが 0 で終了し、output/aliyun-wan-videoedit/validate.txt が生成されます。

出力とエビデンス

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

前提条件

  • SDK をインストールします(venv の使用を推奨):
python3 -m venv .venv
. .venv/bin/activate
python -m pip install dashscope
  • 環境に DASHSCOPE_API_KEY を設定するか、~/.alibabacloud/credentials に dashscope_api_key を追加します。

重要なモデル名

  • wan2.7-videoedit — スタイル変換と指示ベースの動画編集に対応しています

機能

機能説明必要なメディア
スタイル変換動画を別のビジュアルスタイル(粘土、アニメなど)に変換しますvideo のみ
指示による編集テキストの指示と任意の参照画像を使って動画コンテンツを編集しますvideo + 任意の reference_image(最大 3 枚)

API エンドポイント(非同期のみ)

POST https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis

必須ヘッダー:

  • Authorization: Bearer $DASHSCOPE_API_KEY
  • Content-Type: application/json
  • X-DashScope-Async: enable

シンガポールのエンドポイント:dashscope.aliyuncs.com を dashscope-intl.aliyuncs.com に置き換えます。

正規化されたインターフェース

リクエスト
  • prompt(文字列、任意)— 希望する編集内容を記述します。最大 5000 文字です
  • negative_prompt(文字列、任意)— 最大 500 文字です
  • media(配列、必須)— type と url フィールドを持つメディアオブジェクト:
    • type:video(必須、ちょうど 1 つ) | reference_image(任意、最大 3 つ)
    • url:公開 URL(HTTP/HTTPS)または OSS 一時 URL
  • resolution(文字列、任意)— 720P または 1080P(デフォルト:1080P)
  • ratio(文字列、任意)— 出力アスペクト比:16:9、9:16、1:1、4:3、3:4。省略した場合は、入力動画の比率に従います。
  • duration(整数、任意)— 入力動画をこの秒数に切り詰めます。範囲は [2, 10] です。デフォルトは 0(入力動画の長さを使用)です
  • audio_setting(文字列、任意)— auto(デフォルト。AI が決定)または origin(元の音声を保持)
  • prompt_extend(ブール値、任意)— AI によるプロンプトの書き換え(デフォルト:true)
  • watermark(ブール値、任意)— 「AI generated」ウォーターマークを追加します(デフォルト:false)
  • seed(整数、任意)— 範囲は [0, 2147483647] です
メディア入力制限

動画(type=video):

  • 形式:mp4、mov
  • 長さ:2~10 秒
  • 解像度:片側あたり [240, 4096] ピクセル
  • アスペクト比:1:8~8:1
  • 最大サイズ:100MB

参照画像(type=reference_image):

  • 形式:JPEG、JPG、PNG(透明度なし)、BMP、WEBP
  • 解像度:片側あたり [240, 8000] ピクセル
  • アスペクト比:1:8~8:1
  • 最大サイズ:20MB
  • 参照画像は最大 3 枚
出力解像度表
解像度比率出力(W*H)
720P16:91280*720
720P9:16720*1280
720P1:1960*960
720P4:31104*832
720P3:4832*1104
1080P16:91920*1080
1080P9:161080*1920
1080P1:11440*1440
1080P4:31648*1248
1080P3:41248*1648
レスポンス(タスク作成)
  • output.task_id(文字列)— ポーリングに使用します。有効期間は 24 時間です
  • output.task_status(文字列)— PENDING | RUNNING | SUCCEEDED | FAILED | CANCELED
  • request_id(文字列)
レスポンス(タスク結果)
  • output.video_url(文字列)— 編集済み動画の URL
  • usage.video_count(整数)
  • usage.video_duration(整数)— 秒単位の長さ

クイックスタート(Python + HTTP)

import os
import json
import time
import requests

API_KEY = os.getenv("DASHSCOPE_API_KEY")
BASE_URL = "https://dashscope.aliyuncs.com/api/v1"

def create_videoedit_task(req: dict) -> str:
    """Create a video editing task and return task_id."""
    payload = {
        "model": "wan2.7-videoedit",
        "input": {
            "prompt": req.get("prompt", ""),
            "media": req["media"],
        },
        "parameters": {
            "resolution": req.get("resolution", "1080P"),
            "prompt_extend": req.get("prompt_extend", True),
            "watermark": req.get("watermark", False),
        },
    }
    if req.get("negative_prompt"):
        payload["input"]["negative_prompt"] = req["negative_prompt"]
    if req.get("ratio"):
        payload["parameters"]["ratio"] = req["ratio"]
    if req.get("duration"):
        payload["parameters"]["duration"] = req["duration"]
    if req.get("audio_setting"):
        payload["parameters"]["audio_setting"] = req["audio_setting"]
    if req.get("seed") is not None:
        payload["parameters"]["seed"] = req["seed"]

    resp = requests.post(
        f"{BASE_URL}/services/aigc/video-generation/video-synthesis",
        headers={
            "Authorization": f"Bearer {API_KEY}",
            "Content-Type": "application/json",
            "X-DashScope-Async": "enable",
        },
        json=payload,
    )
    resp.raise_for_status()
    data = resp.json()
    return data["output"]["task_id"]


def poll_task(task_id: str, interval: int = 15) -> dict:
    """Poll until task completes. Returns final response."""
    while True:
        resp = requests.get(
            f"{BASE_URL}/tasks/{task_id}",
            headers={"Authorization": f"Bearer {API_KEY}"},
        )
        resp.raise_for_status()
        data = resp.json()
        status = data["output"]["task_status"]
        if status in ("SUCCEEDED", "FAILED", "CANCELED"):
            return data
        time.sleep(interval)

使用例

# Style transfer — convert to clay style
media = [{"type": "video", "url": "https://example.com/input.mp4"}]
task_id = create_videoedit_task({
    "prompt": "将整个画面转换为黏土风格",
    "media": media,
    "resolution": "720P",
})

# Instruction editing with reference image
media = [
    {"type": "video", "url": "https://example.com/input.mp4"},
    {"type": "reference_image", "url": "https://example.com/hat.jpg"},
]
task_id = create_videoedit_task({
    "prompt": "为人物换上酷闪的衣服,再戴参考图里的帽子",
    "media": media,
    "audio_setting": "origin",
})

エラー処理

エラー考えられる原因対処方法
401/403DASHSCOPE_API_KEY が設定されていない、または無効です環境変数または認証情報ファイルを確認します
400 InvalidParameter解像度が不正、動画が指定されていない、参照画像が多すぎますパラメーターを検証します
"does not support synchronous calls"X-DashScope-Async: enable ヘッダーがありません必須ヘッダーを追加します
429レート制限またはクォータに達していますバックオフを入れて再試行します

出力先

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

アンチパターン

  • wan2.7-videoedit 以外のモデル名は使用しないでください。
  • この API を同期的に呼び出さないでください。非同期ヘッダーが必須です。
  • 動画は 1 本まで、参照画像は 3 枚までにしてください。
  • 動画 URL は 24 時間後に期限切れになります。すぐにダウンロードして保存してください。
  • 動画生成にはこの API を使用しないでください。代わりに aliyun-wan-i2v を使用してください。

ワークフロー

  1. ユーザーの意図がスタイル変換か、指示に基づく編集かを確認します。
  2. 動画(必須)と任意の参照画像を含むメディア配列を準備します。
  3. 非同期タスクを作成し、結果をポーリングします。
  4. URL の有効期限が切れる前に、編集済みの動画をダウンロードして保存します。

参考資料

  • HTTP API の詳細については、references/api_reference.md を参照してください。
  • ソースへのリンクについては、references/sources.md を参照してください。

コメント