すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Model Studio:Wan - リファレンス動画 API リファレンス

最終更新日:Jul 03, 2026

Wan-R2V はマルチモーダル入力(画像、動画、音声)を受け取り、複数のキャラクターを含む動画を生成します。この際、シーン間でキャラクターの外見と声を保持します。

リファレンス: ユーザーガイド

可用性

API 呼び出しが成功するためには、モデル、エンドポイント URL、および API キーがすべて同一リージョンに属している必要があります。リージョンをまたいだ呼び出しは失敗します。

説明

本トピックのサンプルコードはシンガポールリージョン向けです。

重要

Alibaba Cloud Model Studio では、中国 (北京) リージョンおよびシンガポールリージョン向けにワークスペース専用ドメインがリリースされました。新しい専用ドメインは、推論リクエストに対して優れたパフォーマンスと高い安定性を提供します。新しいドメインへの移行を推奨します。

  • 中国 (北京): https://dashscope.aliyuncs.com から https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com

  • シンガポール: https://dashscope-intl.aliyuncs.com から https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com

{WorkspaceId} はご利用のワークスペース ID です。これは Alibaba Cloud Model Studio コンソールのワークスペース詳細ページで確認できます。既存のドメインは引き続き完全に機能します。

HTTP

重要

この API は新プロトコルを使用し、wan2.7 モデルをサポートしています。

動画生成には通常 1 ~ 5 分かかります。そのため、API は非同期呼び出しを使用します。ワークフローは次の 2 ステップで構成されます。タスクの作成、その後結果のポーリングです。

ステップ 1: タスクを作成し、タスク ID を取得する

シンガポール

POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis

北京

POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis

{WorkspaceId} は、実際のワークスペース IDに置き換えてください。

説明
  • タスク作成後、返された task_id を使用して結果をクエリします。task_id の有効期間は 24 時間です。重複するタスクを作成しないでください。代わりに、ポーリングを使用して結果を取得してください。

  • 初心者向けのガイドについては、「Postman または cURL による API 呼び出し」をご参照ください。

リクエストパラメーター

複数被写体リファレンス (画像 + 動画 + 音声)

複数のリファレンスアセット (画像および動画) を渡し、音声を指定して動画を生成できます。

curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis' \
        -H 'X-DashScope-Async: enable' \
        -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
        -H 'Content-Type: application/json' \
        -d '{
        "model": "wan2.7-r2v-2026-06-12",
        "input": {
            "prompt": "Video 1 holds Image 3, plays a soothing country folk song on the chair from Image 4, and says, '\''The sunshine is so nice today.'\'' Image 1, holding Image 2, walks past Video 1, places Image 2 on the table next to it, and says, '\''That sounds lovely. Can you sing it again?'\''",
            "media": [
                {
                    "type": "reference_image",
                    "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/sjuytr/wan-r2v-object-girl.jpg",
                    "reference_voice": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/gbqewz/wan-r2v-girl-voice.mp3"
                },
                {
                    "type": "reference_video",
                    "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/qigswt/wan-r2v-role2.mp4",
                    "reference_voice": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/isllrq/wan-r2v-boy-voice.mp3"
                },
                {
                    "type": "reference_image",
                    "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/rtjeqf/wan-r2v-object3.png"
                },
                {
                    "type": "reference_image",
                    "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/qpzxps/wan-r2v-object4.png"
                },
                {
                    "type": "reference_image",
                    "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/wfjikw/wan-r2v-backgroud5.png"
                }
            ]
        },
        "parameters": {
            "resolution": "720P",
            "ratio": "16:9",
            "duration": 10,
            "prompt_extend": false,
            "watermark": true
        }
    }'

単一画像リファレンス (マルチパネル画像)

9 パネルのリファレンス画像を提供して、ストーリー、カメラ構図、キャラクターデザインを制御し、動画を生成できます。

curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis' \
        -H 'X-DashScope-Async: enable' \
        -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
        -H 'Content-Type: application/json' \
        -d '{
        "model": "wan2.7-r2v-2026-06-12",
        "input": {
            "prompt": "Based on the reference image, in the style of a 3D cartoon adventure movie. The characters are in a cute Q-style but with detailed textures, smooth movements, and vibrant colors. Keep the characters and the forest scene consistent. Do not add text. Atmosphere: Adventurous, light-hearted, mysterious, whimsical. Characters: A young boy explorer with a round hat, backpack, and short cloak. His sidekick: a small flying robot with a round body and glowing blue eyes. Scene: A magical forest with giant tree roots, mushrooms, vines, a treasure cave entrance, and sunbeams. Storyboard: 1. Wide shot: Tall trees and intersecting sunbeams in the magical forest, creating a mysterious and bright environment. 2. Medium shot: The little boy pushes aside vines to explore forward. 3. Medium shot: The little robot flies beside him, scanning ahead with its blue light. 4. Close-up: An old treasure map unfolds in his hands. 5. Close-up: His face lights up with excitement. 6. Action shot: The two jump over tree roots and a small stream, venturing deeper into the forest. 7. Medium shot: A moss-covered treasure chest is revealed behind the vines. 8. Close-up: A golden glow emanates from the edge of the chest. 9. Final shot: The boy and the robot stand before the chest, looking at each other in surprise, filled with a sense of adventure.",
            "media": [
                {
                    "type": "reference_image",
                    "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260403/wgjaxy/banana_storyboard_00000020.png"
                }
            ]
        },
        "parameters": {
            "resolution": "720P",
            "duration": 10,
            "prompt_extend": false,
            "watermark": true
        }
    }'
ヘッダー

Content-Type string (必須)

リクエストのコンテンツタイプです。application/json である必要があります。

Authorization string (必須)

Model Studio API キーを使用してリクエストを認証します。例: Bearer sk-xxxx。

X-DashScope-Async string (必須)

非同期処理を有効にします。HTTP リクエストは非同期呼び出しのみをサポートします。enable である必要があります。

重要

このリクエストヘッダーが欠落している場合、「current user api does not support synchronous calls」というエラーが返されます。

リクエスト本文

model string (必須)

モデル名です。モデルとその価格の一覧については、「モデル価格」をご参照ください。

例: wan2.7-r2v、wan2.7-r2v-2026-06-12。

input object (必須)

プロンプトなどの基本的な入力情報です。

プロパティ

prompt string (必須)

生成される動画の目的の要素や視覚的特徴を記述するテキストプロンプトです。

中国語および英語をサポートします。中国語の文字、英字、句読点の各文字は 1 文字としてカウントされます。制限を超えたテキストは自動的に切り捨てられます。

  • wan2.7-r2v、wan2.7-r2v-2026-06-12: 最大 5,000 文字。

リファレンス識別子: プロンプト内では、画像には「Image 1、Image 2」、動画には「Video 1、Video 2」などの識別子を使用します。単語と数字の間にスペースを空け、先頭文字を大文字にしてください。識別子の順序は、media 配列内のアセットの順序と一致させる必要があります。画像と動画は別々にカウントされるため、「Image 1」と「Video 1」を同時に使用できます。リファレンス画像または動画が 1 つのみの場合、識別子を「the reference image」または「the reference video」に簡略化できます。

シーン記述: たとえば、リファレンス Image 1 が猫で、Image 2 が部屋であるとします。猫が部屋で遊んでいるシーンを記述するには、次の 2 つの方法があります。1 つ目は識別子を直接使用する方法で、「Image 1 is playing in Image 2」と記述します。もう 1 つは、被写体とシーンで補足する方法で、「The cat from Image 1 is playing in the room from Image 2」と記述します。

リファレンス画像がマルチパネルのストーリーボードの場合、プロンプト内でマルチショット形式でシーンを記述します。すべてのパネルを記述する必要はありません。重要なショットを提供すれば、モデルが自動的にパネルのロジックを認識し、残りのシーンを完成させます。最適な結果を得るには、一度に 1 つのマルチパネル画像のみを使用してください。

プロンプトの使用に関するヒントについては、「テキストから動画/画像から動画へのプロンプトガイド」をご参照ください。

negative_prompt string (オプション)

生成される動画から除外する内容を記述する否定的なプロンプトです。出力を制約するために使用します。

中国語および英語をサポートします。最大長: 500 文字。制限を超えたテキストは自動的に切り捨てられます。

例: low resolution、error、worst quality、low quality、disfigured、extra fingers、bad proportions。

media array (必須)

視覚および音声リファレンスとして使用されるメディアアセット (画像、動画、音声) の配列です。画像には複数のビューを含めることができ、キャラクターや小道具、シーンのリファレンスに一般的に使用されます。

  • 配列内の各要素は、type および url フィールドを含むメディアオブジェクトです。

  • 配列内の要素の順序は、prompt 内のリファレンス識別子に対応します。画像と動画は別々にカウントされるため、「Image 1」と「Video 1」を同時に使用できます。

    • 配列内の最初の reference_videoVideo 1、2 番目は Video 2、以降も同様に対応します。

    • 配列内の最初の reference_imageImage 1、2 番目は Image 2、以降も同様に対応します。

プロパティ

type string (必須)

メディアアセットのタイプです。有効な値:

  • reference_image: 主要キャラクター (人物、動物、または物体) またはシーンの視覚リファレンスを提供するリファレンス画像。

  • reference_video: 主要キャラクター (人物、動物、または物体) の視覚および音声リファレンスを提供するリファレンス動画。空のシーンの動画は使用しないでください。

  • first_frame: 動画の最初のフレーム。生成される動画はこのフレームから開始され、通常は主要キャラクター (人物、動物、または物体) を含みます。最初のフレームを被写体リファレンスと組み合わせて共同で制御できます。一般的なユースケース:

    • 主題はすでに最初のフレームに表示されています:一貫性を高めるために主題参照を使用するか、ボイス参照を追加してください。

    • 被写体が最初のフレームに表示されていない場合: 被写体リファレンスを使用して、動画中に登場する新しい被写体の特徴を定義します。

アセットの制限:

  • 最初のフレーム画像は最大 1 枚。

  • リファレンス画像またはリファレンス動画は少なくとも 1 つ必要です。リファレンス画像 + リファレンス動画 ≤ 5

  • 主要キャラクターに使用する場合、リファレンスアセットには単一のキャラクターのみを含める必要があります。

url string (必須)

メディアアセットの URL です。各値は1 つの画像または 1 つの動画を指すことができます。

リファレンス画像を渡す (type=reference_image)

リファレンス画像の URL または Base64 エンコードされたデータです。画像には被写体 (人物、動物、または物体) または背景を含めることができます。被写体を含める場合、単一のキャラクターのみを含める必要があります。

画像の制限:

  • フォーマット: JPEG、JPG、PNG (alpha チャンネルはサポートされません)、BMP、または WEBP。

  • 解像度: 幅および高さは 240 ~ 8,000 ピクセルの範囲内である必要があります。

  • 縦横比: 1:8 ~ 8:1。

  • ファイルサイズ: 最大 20 MB。

サポートされる入力形式:

  1. 公開 URL:

    • HTTP または HTTPS プロトコルをサポートします。

    • 例: https://xxx/xxx.png。

  2. Base64 エンコードされた画像文字列:

    • データ形式: data:{MIME_type};base64,{base64_data}

    • 例: data:image/png;base64,GDU7MtCZzEbTbmRZ...... (エンコードされた文字列が長すぎるため、一部のみを示しています。)

    • 詳細については、「画像の渡し方」をご参照ください。

リファレンス動画を渡す (type=reference_video)

リファレンス動画の URL です。動画には被写体 (人物、動物、または物体) を含める必要があります。背景や空のシーンの動画は使用しないでください。動画に被写体を含める場合、単一のキャラクターのみを含める必要があります。動画に音声が含まれている場合、その音声もリファレンスとして使用できます。

動画の制限:

  • フォーマット: MP4 または MOV。

  • 持続時間: 1 ~ 30 秒。

  • 解像度: 幅および高さは 240 ~ 4,096 ピクセルの範囲内である必要があります。

  • 縦横比: 1:8 ~ 8:1。

  • ファイルサイズ: 最大 100 MB。

サポートされる入力形式:

  1. 公開 URL:

    • HTTP および HTTPS プロトコルをサポートします。

    • 例: https://xxx/xxx.mp4。

reference_voice string (オプション)

リファレンスアセット (画像または動画) 内の主要キャラクターの声を指定する音声 URL です。reference_image または reference_video とともにこのパラメーターを使用します。音声は声のリファレンスとしてのみ機能し、発話内容を決定しません。最適な結果を得るには、リファレンス音声の言語をプロンプトの言語に合わせてください。

音声のロジック:

  • デフォルトの動作: reference_video に音声が含まれているが、reference_voice が指定されていない場合、元の動画の音声が使用されます。

  • 優先順位: reference_video (音声付き) と reference_voice の両方が提供されている場合、reference_voice が優先され、元の動画の音声をオーバーライドします。

音声の制限:

  • フォーマット: WAV または MP3。

  • 持続時間: 1 ~ 10 秒。

  • ファイルサイズ: 最大 15 MB。

サポートされる入力形式:

  1. 公開 URL:

    • HTTP および HTTPS プロトコルをサポートします。

    • 例: https://xxx/xxx.mp3。

parameters object (オプション)

動画の解像度などの動画処理パラメーターです。

プロパティ

resolution string (オプション)

重要

resolution はコストに直接影響します。呼び出し前に Model Studio コンソールで価格を確認してください。

生成される動画の解像度階層です。総ピクセル数を制御します。

  • wan2.7-r2v、wan2.7-r2v-2026-06-12: 有効な値は 720P および 1080P です。デフォルト値は 1080P です。

ratio string (オプション)

生成される動画の縦横比です。

動作:

  • 最初のフレーム画像が提供されていない場合: 動画は指定された ratio を使用します。

  • 最初のフレーム画像が提供されている場合: ratio パラメーターは無視されます。動画は最初のフレーム画像の縦横比に合わせられます。

有効な値:

  • 16:9 (デフォルト)

  • 9:16

  • 1:1

  • 4:3

  • 3:4

duration integer (オプション)

重要

持続時間はコストに直接影響します。API を呼び出す前にモデル価格を確認してください。

生成される動画の持続時間 (秒単位) です。

  • wan2.7-r2v、wan2.7-r2v-2026-06-12: デフォルト値は 5 です。

    • リファレンスマテリアルに動画が含まれている場合: 値は 2 ~ 10 の整数である必要があります。

    • リファレンスマテリアルに動画が含まれていない場合: 値は 2 ~ 15 の整数である必要があります。

prompt_extend boolean (オプション)

プロンプトリライトを有効にします。有効にすると、モデルが生成前に入力プロンプトを再書き込みします。これにより、短いプロンプトの品質が大幅に向上しますが、処理時間が長くなります。

  • true (デフォルト)

  • false

watermark boolean (オプション)

ウォーターマークを追加します。ウォーターマークのテキストは「AI Generated」となり、動画の右下隅に配置されます。

  • false (デフォルト)

  • true

seed integer (オプション)

乱数シードは、[0, 2147483647] の範囲内の整数である必要があります。

指定しない場合、ランダムなシードが生成されます。固定シードを使用すると、再現性が向上します。

モデル生成は確率的であるため、同じシードを使用しても同一の結果が保証されるわけではありません。

レスポンスパラメーター

成功時のレスポンス

task_id を保存して、タスクのステータスと結果をクエリします。

{
    "output": {
        "task_status": "PENDING",
        "task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx"
    },
    "request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
}

エラー時のレスポンス

タスクの作成に失敗しました。「エラーコード」をご参照ください。

{
    "code": "InvalidApiKey",
    "message": "No API-key provided.",
    "request_id": "7438d53d-6eb8-4596-8835-xxxxxx"
}

output object

タスクの出力情報です。

プロパティ

task_id string

タスク ID です。クエリの有効期間は 24 時間です。

task_status string

タスクのステータスです。

列挙値

  • PENDING

  • RUNNING

  • SUCCEEDED

  • FAILED

  • CANCELED

  • UNKNOWN: タスクが存在しない、またはステータスが不明です。

request_id string

トレースおよびトラブルシューティング用の一意のリクエスト識別子です。

code string

エラーコードです。失敗したリクエストでのみ返されます。「エラーコード」をご参照ください。

message string

詳細なエラーメッセージです。失敗したリクエストでのみ返されます。「エラーコード」をご参照ください。

ステップ 2: タスク ID で結果をクエリする

シンガポール

GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}

北京

GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id}

{WorkspaceId} は、実際のワークスペース IDに置き換えてください。

説明
  • ポーリングの推奨: 動画生成には数分かかります。15 秒などの適切な間隔でポーリングメカニズムを使用してください。

  • タスク状態の遷移: PENDING → RUNNING → SUCCEEDED または FAILED。

  • 結果リンク: タスクが成功すると、24 時間有効な動画 URL が返されます。OSS などの永続ストレージに動画をダウンロードして保存してください。

  • task_id の有効期間: 24 時間。この期間を過ぎると、クエリはタスクステータスとして UNKNOWN を返します。

リクエストパラメーター

タスク結果のクエリ

{task_id} は、前の API 呼び出しで返された task_id の値に置き換えてください。task_id のクエリ有効期間は 24 時間です。

curl -X GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id} \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
ヘッダー

Authorization string (必須)

Model Studio API キーを使用してリクエストを認証します。例: Bearer sk-xxxx。

パスパラメーター

task_id string (必須)

タスクの ID です。

レスポンスパラメーター

タスク成功

動画 URL の有効期間は 24 時間のみで、その後自動的にパージされます。生成された動画は速やかに保存してください。

{
    "request_id": "52cade0d-905e-9b7d-a01e-xxxxxx",
    "output": {
        "task_id": "18814247-f944-4102-aa4a-xxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2026-04-02 22:53:19.537",
        "scheduled_time": "2026-04-02 22:53:30.427",
        "end_time": "2026-04-02 23:00:39.287",
        "orig_prompt": "Video 2 holds Image 3 and plays a soothing American country ballad in a coffee shop, while Video 1 smiles, watches Video 2, and slowly walks towards him",
        "video_url": "https://dashscope-a717.oss-accelerate.aliyuncs.com/xxx.mp4?xxxx"
    },
    "usage": {
        "duration": 15,
        "input_video_duration": 5,
        "output_video_duration": 10,
        "video_count": 1,
        "SR": 720,
        "ratio": "16:9"
    }
}

タスク失敗

タスクが失敗した場合、task_status は FAILED となり、エラーコードおよびメッセージが返されます。「エラーコード」をご参照ください。

{
    "request_id": "e5d70b02-ebd3-98ce-9fe8-759d7d7b107d",
    "output": {
        "task_id": "86ecf553-d340-4e21-af6e-a0c6a421c010",
        "task_status": "FAILED",
        "code": "InvalidParameter",
        "message": "The size is not match xxxxxx"
    }
}

タスククエリの有効期限切れ

task_id の有効期間は 24 時間です。この期間を過ぎると、クエリは次のエラーを返します。

{
    "request_id": "a4de7c32-7057-9f82-8581-xxxxxx",
    "output": {
        "task_id": "502a00b1-19d9-4839-a82f-xxxxxx",
        "task_status": "UNKNOWN"
    }
}

output object

タスクの出力情報です。

プロパティ

task_id string (必須)

タスクの ID です。

task_status string

タスクのステータスです。

列挙値

  • PENDING

  • RUNNING

  • SUCCEEDED

  • FAILED

  • CANCELED

  • UNKNOWN: タスクが存在しない、またはステータスが不明です。

submit_time string

タスクが送信された時刻です。時刻は UTC + 08:00 で、形式は YYYY-MM-DD HH:mm:ss.SSS です。

scheduled_time string

タスクが実行された時刻です。時刻は UTC + 08:00 で、形式は YYYY-MM-DD HH:mm:ss.SSS です。

end_time string

タスクが完了した時刻です。時刻は UTC + 08:00 で、形式は YYYY-MM-DD HH:mm:ss.SSS です。

video_url string

生成された動画の URL です。task_status が SUCCEEDED の場合にのみ返されます。

有効期間は 24 時間です。動画は H.264 エンコーディングの MP4 形式です。

orig_prompt string

元の入力プロンプトです。リクエストパラメーター prompt に対応します。

code string

エラーコードです。失敗したリクエストでのみ返されます。「エラーコード」をご参照ください。

message string

詳細なエラーメッセージです。失敗したリクエストでのみ返されます。「エラーコード」をご参照ください。

usage object

出力統計情報です。成功したタスクでのみ設定されます。

プロパティ

input_video_duration integer

入力動画の持続時間 (秒単位) です。

output_video_duration integer

出力動画の持続時間 (秒単位) です。

duration integer

動画の合計持続時間です。コストはこの値に基づいて計算されます。

計算式: duration = input_video_duration + output_video_duration

SR integer

生成された動画の解像度階層です。例: 720。

ratio string

生成された動画の縦横比です。例: 16:9。

video_count integer

生成された動画の数です。値は常に 1 です。

request_id string

トレースおよびトラブルシューティング用の一意のリクエスト識別子です。

DashScope SDK

SDK のパラメーター名は、HTTP API とほぼ一致しています。パラメーター構造は言語の特性に基づいてカプセル化されています。

リファレンス動画タスクの処理時間は通常 1 ~ 5 分です。SDK は HTTP 非同期フローをラップし、同期呼び出しと非同期呼び出しの両方をサポートしています。

実際の処理時間は、キューの長さおよびサービスステータスによって異なります。

Python SDK

重要

DashScope Python SDK 1.25.16 以降が必要です。

古いバージョンでは、「url error, please check url!」などのエラーが発生する可能性があります。更新手順については、「SDK のインストール」をご参照ください。

base_http_api_url はモデルのリージョンに基づいて設定します。

シンガポール

dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

北京

dashscope.base_http_api_url = 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1'

{WorkspaceId} は、実際のワークスペース IDに置き換えてください。

同期呼び出し

同期呼び出しは、動画生成が完了するまでブロッキングされ、結果を直接返します。

リクエスト例
from http import HTTPStatus
from dashscope import VideoSynthesis
import dashscope
import os

# 以下の URL はシンガポールリージョン用です。呼び出し時に {WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

# 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx"
# API キーはリージョンによって異なります。API キーの取得方法については、https://www.alibabacloud.com/help/en/model-studio/get-api-key をご参照ください。
api_key = os.getenv("DASHSCOPE_API_KEY")

def sample_sync_call_r2v():
    # 同期呼び出し。結果を直接返します。
    print('please wait...')
    rsp = VideoSynthesis.call(
        api_key=api_key,
        model='wan2.7-r2v-2026-06-12',
        prompt='Video 1 holds Image 3, plays a soothing country folk song on the chair from Image 4, and says, "The sunshine is so nice today." Image 1, holding Image 2, walks past Video 1, places Image 2 on the table next to it, and says, "That sounds lovely. Can you sing it again?"',
        media=[
            {
                "type": "reference_image",
                "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/sjuytr/wan-r2v-object-girl.jpg",
                "reference_voice": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/gbqewz/wan-r2v-girl-voice.mp3"
            },
            {
                "type": "reference_video",
                "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/qigswt/wan-r2v-role2.mp4",
                "reference_voice": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/isllrq/wan-r2v-boy-voice.mp3"
            },
            {
                "type": "reference_image",
                "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/rtjeqf/wan-r2v-object3.png"
            },
            {
                "type": "reference_image",
                "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/qpzxps/wan-r2v-object4.png"
            },
            {
                "type": "reference_image",
                "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/wfjikw/wan-r2v-backgroud5.png"
            }
        ],
        resolution='720P',
        ratio='16:9',
        duration=10,
        prompt_extend=False,
        watermark=True)
    print(rsp)
    if rsp.status_code == HTTPStatus.OK:
        print(rsp.output.video_url)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))

if __name__ == '__main__':
    sample_sync_call_r2v()
レスポンス例
video_url の有効期間は 24 時間です。動画は速やかにダウンロードしてください。
{
    "status_code": 200,
    "request_id": "b040d446-f9b6-977f-b9ad-xxxxxx",
    "code": null,
    "message": "",
    "output": {
        "task_id": "5dab3291-393e-424d-929b-xxxxxx",
        "task_status": "SUCCEEDED",
        "video_url": "https://dashscope-a717.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxx",
        "submit_time": "2026-04-17 17:12:49.076",
        "scheduled_time": "2026-04-17 17:13:00.384",
        "end_time": "2026-04-17 17:29:43.386",
        "orig_prompt": "Video 1 holds Image 3, plays a soothing country folk song on the chair from Image 4, and says, \"The sunshine is so nice today.\" Image 1, holding Image 2, walks past Video 1, places Image 2 on the table next to it, and says, \"That sounds lovely. Can you sing it again?\""
    },
    "usage": {
        "video_count": 1,
        "video_duration": 0,
        "video_ratio": "",
        "duration": 15,
        "input_video_duration": 5,
        "output_video_duration": 10,
        "SR": 720,
        "ratio": "16:9"
    }
}

非同期呼び出し

非同期呼び出しはすぐにタスク ID を返します。完了を個別にポーリングまたは待機します。

リクエスト例
import os
from http import HTTPStatus
from dashscope import VideoSynthesis
import dashscope

# 以下の URL はシンガポールリージョン用です。呼び出し時に {WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

# 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx"
# API キーはリージョンによって異なります。API キーの取得方法については、https://www.alibabacloud.com/help/en/model-studio/get-api-key をご参照ください。
api_key = os.getenv("DASHSCOPE_API_KEY")

def sample_async_call_r2v():
    # 非同期呼び出し。task_id を返します。
    rsp = VideoSynthesis.async_call(
        api_key=api_key,
        model='wan2.7-r2v-2026-06-12',
        prompt='Video 1 holds Image 3, plays a soothing country folk song on the chair from Image 4, and says, "The sunshine is so nice today." Image 1, holding Image 2, walks past Video 1, places Image 2 on the table next to it, and says, "That sounds lovely. Can you sing it again?"',
        media=[
            {
                "type": "reference_image",
                "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/sjuytr/wan-r2v-object-girl.jpg",
                "reference_voice": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/gbqewz/wan-r2v-girl-voice.mp3"
            },
            {
                "type": "reference_video",
                "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/qigswt/wan-r2v-role2.mp4",
                "reference_voice": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/isllrq/wan-r2v-boy-voice.mp3"
            },
            {
                "type": "reference_image",
                "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/rtjeqf/wan-r2v-object3.png"
            },
            {
                "type": "reference_image",
                "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/qpzxps/wan-r2v-object4.png"
            },
            {
                "type": "reference_image",
                "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/wfjikw/wan-r2v-backgroud5.png"
            }
        ],
        resolution='720P',
        ratio='16:9',
        duration=10,
        prompt_extend=False,
        watermark=True)
    print(rsp)
    if rsp.status_code == HTTPStatus.OK:
        print("task_id: %s" % rsp.output.task_id)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))

    # 非同期タスク情報を取得します。
    status = VideoSynthesis.fetch(task=rsp, api_key=api_key)
    if status.status_code == HTTPStatus.OK:
        print(status.output.task_status)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (status.status_code, status.code, status.message))

    # 非同期タスクの完了を待ちます。
    rsp = VideoSynthesis.wait(task=rsp, api_key=api_key)
    print(rsp)
    if rsp.status_code == HTTPStatus.OK:
        print(rsp.output.video_url)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))

if __name__ == '__main__':
    sample_async_call_r2v()
レスポンス例
  1. タスク作成時のレスポンス例:

    {
        "status_code": 200,
        "request_id": "6dc3bf6c-be18-9268-9c27-xxxxxx",
        "code": "",
        "message": "",
        "output": {
            "task_id": "686391d9-7ecf-4290-a8e9-xxxxxx",
            "task_status": "PENDING",
            "video_url": ""
        },
        "usage": null
    }
  2. タスク結果クエリ時のレスポンス例:

    video_url の有効期間は 24 時間です。動画は速やかにダウンロードしてください。
    {
        "status_code": 200,
        "request_id": "b040d446-f9b6-977f-b9ad-xxxxxx",
        "code": null,
        "message": "",
        "output": {
            "task_id": "5dab3291-393e-424d-929b-xxxxxx",
            "task_status": "SUCCEEDED",
            "video_url": "https://dashscope-a717.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxx",
            "submit_time": "2026-04-17 17:12:49.076",
            "scheduled_time": "2026-04-17 17:13:00.384",
            "end_time": "2026-04-17 17:29:43.386",
            "orig_prompt": "Video 1 holds Image 3, plays a soothing country folk song on the chair from Image 4, and says, \"The sunshine is so nice today.\" Image 1, holding Image 2, walks past Video 1, places Image 2 on the table next to it, and says, \"That sounds lovely. Can you sing it again?\""
        },
        "usage": {
            "video_count": 1,
            "video_duration": 0,
            "video_ratio": "",
            "duration": 15,
            "input_video_duration": 5,
            "output_video_duration": 10,
            "SR": 720,
            "ratio": "16:9"
        }
    }

Java SDK

重要

以下のコードを実行する前に、DashScope Java SDK のバージョンが 2.22.14 以上であることを確認してください。

古いバージョンでは、「url error, please check url!」などのエラーが発生する可能性があります。更新手順については、「SDK のインストール」をご参照ください。

baseHttpApiUrl はモデルのリージョンに基づいて設定します。

シンガポール

Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";

北京

Constants.baseHttpApiUrl = "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1";

{WorkspaceId} は、実際のワークスペース IDに置き換えてください。

同期呼び出し

同期呼び出しは、動画生成が完了するまでブロッキングされ、結果を直接返します。

リクエスト例
// Copyright (c) Alibaba, Inc. and its affiliates.

import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesis;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisParam;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;
import com.alibaba.dashscope.utils.Constants;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Ref2Video {

    static {
        // 以下の URL はシンガポールリージョン用です。呼び出し時に {WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }

    // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: apiKey="sk-xxx"
    // API キーはリージョンによって異なります。API キーの取得方法については、https://www.alibabacloud.com/help/en/model-studio/get-api-key をご参照ください。
    public static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    public static void ref2video() throws ApiException, NoApiKeyException, InputRequiredException {
        VideoSynthesis vs = new VideoSynthesis();
        List<VideoSynthesisParam.Media> media = new ArrayList<VideoSynthesisParam.Media>(){{
            add(VideoSynthesisParam.Media.builder()
                    .url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/sjuytr/wan-r2v-object-girl.jpg")
                    .type("reference_image")
                    .referenceVoice("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/gbqewz/wan-r2v-girl-voice.mp3")
                    .build());
            add(VideoSynthesisParam.Media.builder()
                    .url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/qigswt/wan-r2v-role2.mp4")
                    .type("reference_video")
                    .referenceVoice("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/isllrq/wan-r2v-boy-voice.mp3")
                    .build());
            add(VideoSynthesisParam.Media.builder()
                    .url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/rtjeqf/wan-r2v-object3.png")
                    .type("reference_image")
                    .build());
            add(VideoSynthesisParam.Media.builder()
                    .url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/qpzxps/wan-r2v-object4.png")
                    .type("reference_image")
                    .build());
            add(VideoSynthesisParam.Media.builder()
                    .url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/wfjikw/wan-r2v-backgroud5.png")
                    .type("reference_image")
                    .build());
        }};
        Map<String, Object> parameters = new HashMap<>();
        parameters.put("resolution", "720P");
        parameters.put("ratio", "16:9");
        parameters.put("prompt_extend", false);
        parameters.put("watermark", true);

        VideoSynthesisParam param =
                VideoSynthesisParam.builder()
                        .apiKey(apiKey)
                        .model("wan2.7-r2v-2026-06-12")
                        .prompt("Video 1 holds Image 3, plays a soothing country folk song on the chair from Image 4, and says, \"The sunshine is so nice today.\" Image 1, holding Image 2, walks past Video 1, places Image 2 on the table next to it, and says, \"That sounds lovely. Can you sing it again?\"")
                        .media(media)
                        .duration(10)
                        .parameters(parameters)
                        .build();
        System.out.println("please wait...");
        VideoSynthesisResult result = vs.call(param);
        System.out.println(JsonUtils.toJson(result));
    }

    public static void main(String[] args) {
        try {
            ref2video();
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}
レスポンス例
video_url の有効期間は 24 時間です。動画は速やかにダウンロードしてください。
{
    "request_id": "f6365287-336f-9f2b-ab59-xxxxxx",
    "output": {
        "task_id": "cb7f1da5-a987-41de-b0a4-xxxxxx",
        "task_status": "SUCCEEDED",
        "video_url": "https://dashscope-a717.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxxx",
        "orig_prompt": "Video 1 holds Image 3, plays a soothing country folk song on the chair from Image 4, and says, \"The sunshine is so nice today.\" Image 1, holding Image 2, walks past Video 1, places Image 2 on the table next to it, and says, \"That sounds lovely. Can you sing it again?\"",
        "submit_time": "2026-04-17 17:15:11.536",
        "scheduled_time": "2026-04-17 17:15:20.316",
        "end_time": "2026-04-17 17:29:44.277"
    },
    "usage": {
        "video_count": 1,
        "duration": 15,
        "input_video_duration": 5,
        "output_video_duration": 10,
        "SR": 720
    },
    "status_code": 200,
    "code": "",
    "message": ""
}

非同期呼び出し

非同期呼び出しはすぐにタスク ID を返します。完了を個別にポーリングまたは待機します。

リクエスト例
// Copyright (c) Alibaba, Inc. and its affiliates.

import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesis;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisListResult;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisParam;
import com.alibaba.dashscope.aigc.videosynthesis.VideoSynthesisResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.task.AsyncTaskListParam;
import com.alibaba.dashscope.utils.JsonUtils;
import com.alibaba.dashscope.utils.Constants;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Ref2VideoAsync {

    static {
        // 以下の URL はシンガポールリージョン用です。呼び出し時に {WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }

    // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: apiKey="sk-xxx"
    // API キーはリージョンによって異なります。API キーの取得方法については、https://www.alibabacloud.com/help/en/model-studio/get-api-key をご参照ください。
    public static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    public static void asyncRef2video() throws ApiException, NoApiKeyException, InputRequiredException, InterruptedException {
        VideoSynthesis vs = new VideoSynthesis();
        List<VideoSynthesisParam.Media> media = new ArrayList<VideoSynthesisParam.Media>(){{
            add(VideoSynthesisParam.Media.builder()
                    .url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/sjuytr/wan-r2v-object-girl.jpg")
                    .type("reference_image")
                    .referenceVoice("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/gbqewz/wan-r2v-girl-voice.mp3")
                    .build());
            add(VideoSynthesisParam.Media.builder()
                    .url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/qigswt/wan-r2v-role2.mp4")
                    .type("reference_video")
                    .referenceVoice("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260408/isllrq/wan-r2v-boy-voice.mp3")
                    .build());
            add(VideoSynthesisParam.Media.builder()
                    .url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/rtjeqf/wan-r2v-object3.png")
                    .type("reference_image")
                    .build());
            add(VideoSynthesisParam.Media.builder()
                    .url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/qpzxps/wan-r2v-object4.png")
                    .type("reference_image")
                    .build());
            add(VideoSynthesisParam.Media.builder()
                    .url("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/wfjikw/wan-r2v-backgroud5.png")
                    .type("reference_image")
                    .build());
        }};
        Map<String, Object> parameters = new HashMap<>();
        parameters.put("resolution", "720P");
        parameters.put("ratio", "16:9");
        parameters.put("prompt_extend", false);
        parameters.put("watermark", true);

        VideoSynthesisParam param =
                VideoSynthesisParam.builder()
                        .apiKey(apiKey)
                        .model("wan2.7-r2v-2026-06-12")
                        .prompt("Video 1 holds Image 3, plays a soothing country folk song on the chair from Image 4, and says, \"The sunshine is so nice today.\" Image 1, holding Image 2, walks past Video 1, places Image 2 on the table next to it, and says, \"That sounds lovely. Can you sing it again?\"")
                        .media(media)
                        .duration(10)
                        .parameters(parameters)
                        .build();
        // 非同期タスクを送信します。
        VideoSynthesisResult result = vs.asyncCall(param);
        System.out.println("task_id: " + result.getOutput().getTaskId());
        System.out.println(JsonUtils.toJson(result));

        // タスクの完了を待ちます。
        result = vs.wait(result, null);
        System.out.println(JsonUtils.toJson(result));
    }

    public static void main(String[] args) {
        try {
            asyncRef2video();
        } catch (ApiException | NoApiKeyException | InputRequiredException | InterruptedException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}
レスポンス例
  1. タスク作成時のレスポンス例:

    {
        "request_id": "5dbf9dc5-4f4c-9605-85ea-xxxxxxxx",
        "output": {
            "task_id": "7277e20e-aa01-4709-xxxxxxxx",
            "task_status": "PENDING"
        }
    }
  2. タスク結果クエリ時のレスポンス例:

    video_url の有効期間は 24 時間です。動画は速やかにダウンロードしてください。
    {
        "request_id": "f6365287-336f-9f2b-ab59-xxxxxx",
        "output": {
            "task_id": "cb7f1da5-a987-41de-b0a4-xxxxxx",
            "task_status": "SUCCEEDED",
            "video_url": "https://dashscope-a717.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxxx",
            "orig_prompt": "Video 1 holds Image 3, plays a soothing country folk song on the chair from Image 4, and says, \"The sunshine is so nice today.\" Image 1, holding Image 2, walks past Video 1, places Image 2 on the table next to it, and says, \"That sounds lovely. Can you sing it again?\"",
            "submit_time": "2026-04-17 17:15:11.536",
            "scheduled_time": "2026-04-17 17:15:20.316",
            "end_time": "2026-04-17 17:29:44.277"
        },
        "usage": {
            "video_count": 1,
            "duration": 15,
            "input_video_duration": 5,
            "output_video_duration": 10,
            "SR": 720
        },
        "status_code": 200,
        "code": "",
        "message": ""
    }

エラーコード

モデル呼び出しが失敗してエラーメッセージが返された場合は、「エラーコード」を参照して解決してください。

よくある質問

主題に音声を追加するにはどうすればよいですか(音声リファレンス)?

wan2.7 のみが音声リファレンスをサポートしています。media オブジェクト内で、reference_voice パラメーターに音声 URL を渡すことで、リファレンス画像または動画の被写体にリファレンス音声を指定できます。

{
    "media": [
        {
            "type": "reference_image",
            "url": "<URL of the reference image>",
            "reference_voice": "<URL of the audio>"
        },
        {
            "type": "reference_video",
            "url": "<URL of the reference video>",
            "reference_voice": "<URL of the audio>"
        }
    ]
}