Skip to main content

Wan - reference-to-video (2.6)

Wan リファレンス動画モデルは、 マルチモーダル入力 を受け付け、人物やオブジェクトを主人公として、単一キャラクターまたは複数キャラクターのインタラクション動画を生成します。

関連ドキュメント: ユーザーガイド

利用可能リージョン

モデル、エンドポイント 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} は、Alibaba Cloud Model Studio コンソールの [ワークスペース詳細] ページで確認できるワークスペース ID です。既存のドメインも引き続き完全に機能します。

HTTP

これは、wan2.6 モデルのみをサポートするレガシー API です。
動画生成タスクは通常 1~5 分かかります。API は、「タスクの作成 -> 結果のポーリング」の 2 つのステップからなる非同期呼び出しを使用します。詳細は以下の通りです:

ステップ 1:タスクの作成

  • シンガポール
  • 米国 (バージニア)
  • フランクフルト
  • 中国 (北京)
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis{WorkspaceId} を実際のワークスペース ID に置き換えてください。
  • タスクが作成されたら、返された task_id を使用して結果をクエリしてください。task_id は 24 時間有効です。重複したタスクを作成しないでください。代わりに、ポーリングを使用して結果を取得してください。
  • 初心者向けのガイダンスについては、「Postman または cURL を使用した API の呼び出し」をご参照ください。

リクエストパラメーター

ヘッダー
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.6-r2v-flash。input object (必須)プロンプトなどの入力パラメーター。

プロパティ

prompt string (必須)生成される動画の望ましい要素と視覚的特徴を記述するテキストプロンプト。中国語と英語をサポートします。各文字は 1 文字としてカウントされます。制限を超えたコンテンツは自動的に切り捨てられます。
  • wan2.6-r2v-flash:最大長:1,500 文字。
  • wan2.6-r2v:最大長:1,500 文字。
キャラクターリファレンス:「character1、character2」などの識別子を使用して、リファレンスキャラクターを参照します。各リファレンス (動画または画像) には、1 つのキャラクターのみを含める必要があります。モデルは、これらの識別子を介してのみリファレンス内のキャラクターを識別します。例:character1 はソファで楽しそうに映画を見ています。プロンプトの作成に関するヒントについては、「テキストから動画/画像から動画へのプロンプトガイド」をご参照ください。negative_prompt string (任意)動画に含めたくない要素を記述するネガティブプロンプト。中国語と英語をサポートします。最大長:500 文字。制限を超えたコンテンツは自動的に切り捨てられます。例:低解像度、エラー、最低品質、低品質、不完全、余分な指、不適切な比率など。reference_urls array[string] (必須)
reference_urls は課金に直接影響します。料金の詳細については、「課金とレート制限」をご参照ください。
リファレンスファイルの URL の配列。動画と画像の両方の入力をサポートします。キャラクターの外見と音声 (利用可能な場合) を抽出して、リファレンスの特徴に一致する動画を生成するために使用されます。
  • 各 URL は画像 1 枚または動画 1 本を指すことができます:
    • 画像:0~5 枚。
    • 動画:0~3 本。
    • 合計:画像 + 動画 ≤ 5。
  • 複数のリファレンスファイルを渡す場合、配列の順序がキャラクターの順序を定義します。最初の URL は character1 に、2 番目の URL は character2 に、というようにマッピングされます。
  • 各リファレンスファイルには、主題となるキャラクターが 1 つだけ含まれている必要があります。たとえば、character1 は女の子、character2 は目覚まし時計です。
サポートされているフォーマット:
  1. パブリック URL:
動画の要件:
  • フォーマット:MP4、MOV。
  • 持続時間:1 秒~30 秒。
  • ファイルサイズ:最大 100 MB。
画像の要件:
  • フォーマット:JPEG、JPG、PNG (透明度なし)、BMP、WEBP。
  • 解像度:幅と高さの両方が 240~8,000 ピクセルの間である必要があります。
  • ファイルサイズ:最大 20 MB。
例:["https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/xxx.mp4", "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/xxx.jpg"]。
reference_video_urls array[string]
reference_video_urls ではなく reference_urls を使用してください。
リファレンス動画の URL の配列。キャラクターの外見と音声 (利用可能な場合) を抽出して、リファレンスの特徴に一致する動画を生成するために使用されます。
  • 最大 3 本の動画。
  • 複数の動画を渡す場合、配列の順序がキャラクターの順序を定義します。最初の URL は character1 に、2 番目の URL は character2 に、というようにマッピングされます。
  • 各リファレンス動画には、1 つのキャラクターのみを含める必要があります (たとえば、character1 は女の子、character2 は目覚まし時計)。
  • URL は HTTP または HTTPS をサポートします。
各動画の要件:
  • フォーマット:MP4、MOV。
  • 持続時間:2~30 秒。
  • ファイルサイズ:最大 100 MB。
例:["https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/xxx.mp4"]。
parameters object (任意)解像度、プロンプトリライト、ウォーターマークなどの動画生成パラメーター。

プロパティ

size string (任意)
  • size は課金に直接影響します。コスト = 単位価格 (解像度に基づく) x 持続時間 (秒)。同じモデルの場合、1080P > 720P となります。呼び出し前に「モデルの料金」を確認してください。
  • size は、1:1 や 720P のような比率や省略形ではなく、1280*720 のような正確な値である必要があります。
生成されるビデオの解像度は width*height フォーマットで、デフォルト値と利用可能なオプションは model パラメーターによって決まります。
  • wan2.6-r2v-flash:デフォルトは 1920*1080 (1080P) です。すべての 720P および 1080P 解像度をサポートします。
  • wan2.6-r2v:デフォルトは 1920*1080 (1080P) です。すべての 720P および 1080P 解像度をサポートします。
720P の解像度とそのアスペクト比:
  • 1280*720:16:9。
  • 720*1280:9:16。
  • 960*960:1:1。
  • 1088*832:4:3。
  • 832*1088:3:4。
1080P の解像度とそのアスペクト比:
  • 1920*1080:16:9。
  • 1080*1920:9:16。
  • 1440*1440:1:1。
  • 1632*1248:4:3。
  • 1248*1632:3:4。
duration integer (任意)
duration は課金に直接影響します。コスト = 単位価格 (解像度に基づく) x 持続時間 (秒)。呼び出し前に「モデルの料金」を確認してください。
生成される動画の持続時間 (秒)。
  • wan2.6-r2v-flash:2~10 の間でなければなりません。デフォルトは 5 です。
  • wan2.6-r2v:2~10 の間でなければなりません。デフォルトは 5 です。
例:5。shot_type string (任意)生成される動画のショット構成。動画が単一の連続したショットで構成されるか、複数のショットで構成されるかを決定します。パラメーターの優先度は shot_type > prompt です。例えば、shot_type が "single" に設定されている場合、プロンプトに「multi-shot video を生成する」と記述されていても、モデルはシングルショットビデオを出力します。有効な値:
  • single:シングルショット動画。これがデフォルトです。
  • multi:マルチショット動画。
例:single。
このパラメーターを使用して、プロダクトのショーケース用のシングルショットや、ストーリークリップ用のマルチショットなど、動画の物語構造をコントロールします。
audio boolean (任意)
audio は課金に直接影響します。音声ありと音声なしの動画では料金が異なります。呼び出し前に「モデルの料金」を確認してください。
サポートされているモデル:wan2.6-r2v-flash。動画に音声を生成するかどうか。有効な値:
  • true (デフォルト)
  • false
例:true。watermark boolean (任意)ウォーターマークを追加するかどうか。ウォーターマークは右下隅に「AI-generated」というテキストで表示されます。
  • false (デフォルト)
  • true
例:false。seed integer (任意)乱数シードは、[0, 2147483647] の範囲の整数である必要があります。指定しない場合、ランダムなシードが生成されます。シードを固定すると再現性が向上します。モデルの生成は確率的であるため、同じシードでも同一の結果が保証されるわけではありません。
  • 複数キャラクターのインタラクション (リファレンス画像と動画)
  • 複数キャラクターのインタラクション (リファレンス動画)
  • 単一キャラクター
  • 無音動画の生成
reference_urls を介して画像と動画の URL を渡します。マルチショット動画の場合は、shot_type を multi に設定します。
# 以下の URL はシンガポールリージョン用です。呼び出し時に、{WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
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.6-r2v-flash",
    "input": {
        "prompt": "Character2 sits in a chair by the window, holding character3, playing a soothing American country folk song next to character4. Character1 says to Character2: “that sounds great”",
        "reference_urls": [
            "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/en-US/20260205/aacgyk/wan-r2v-role1.mp4",
            "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/en-US/20260205/mmizqq/wan-r2v-role2.mp4",
            "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/qpzxps/wan-r2v-object4.png",
            "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/wfjikw/wan-r2v-backgroud5.png"
        ]
    },
    "parameters": {
        "size": "1280*720",
        "duration": 10,
        "audio": true,
        "shot_type": "multi",
        "watermark": true
    }
}'

レスポンスパラメーター

output objectタスクの出力。

プロパティ

task_id stringタスク ID。24 時間クエリに対して有効です。task_status stringタスクのステータス。

列挙値

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN:タスクが存在しないか、ステータスが不明です。
request_id stringトレースとトラブルシューティングのための一意のリクエスト識別子。code stringエラーコード。失敗したリクエストに対してのみ返されます。「エラーコード」をご参照ください。message string詳細なエラーメッセージ。失敗したリクエストに対してのみ返されます。「エラーコード」をご参照ください。
  • 成功レスポンス
  • エラーレスポンス
task_id を保存して、タスクのステータスと結果をクエリします。
{
    "output": {
        "task_status": "PENDING",
        "task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx"
    },
    "request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
}

ステップ 2:タスク結果の取得

  • シンガポール
  • 米国 (バージニア)
  • フランクフルト
  • 中国 (北京)
GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}{WorkspaceId} を実際のワークスペース ID に置き換えてください。
  • ポーリングの推奨事項:動画の生成には数分かかります。15 秒など、適切な間隔でポーリングメカニズムを使用してください。
  • タスク状態の遷移:PENDING → RUNNING → SUCCEEDED または FAILED。
  • 結果リンク:タスクが成功すると、24 時間有効な動画 URL が返されます。Object Storage Service (OSS) などの永続ストレージに動画をダウンロードして保存してください。
  • task_idの有効期間:24 時間。この期間を過ぎると、クエリはタスクステータスを UNKNOWN として返します。

リクエストパラメーター

ヘッダー
Authorization string (必須)Model Studio API キーでリクエストを認証します。例:Bearer sk-xxxx。
パスパラメーター
task_id string (必須)タスクの ID。
  • タスク結果の取得
{task_id} を、前の API 呼び出しで返された task_id の値に置き換えます。task_id は 24 時間、クエリに対して有効です。{WorkspaceId} を、実際の ワークスペース ID に置き換えます。
curl -X GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id} \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"

レスポンスパラメーター

outputobjectタスクの出力。

プロパティ

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 float合計動画持続時間。課金はこの値に基づきます。式:duration = input_video_duration + output_video_duration。SR integer生成された動画の解像度ティア。例:720。size string生成された動画の解像度。width*height 形式。例:1280*720。video_count integer生成された動画の数。常に 1 です。
request_id stringトレースとトラブルシューティングのための一意のリクエスト識別子。
  • タスク成功
  • タスク失敗
  • タスク期限切れ
動画 URL は 24 時間のみ有効で、その後自動的に削除されます。生成された動画は速やかに保存してください。
{
    "request_id": "caa62a12-8841-41a6-8af2-xxxxxx",
    "output": {
        "task_id": "eff1443c-ccab-4676-aad3-xxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2025-12-16 00:25:59.869",
        "scheduled_time": "2025-12-16 00:25:59.900",
        "end_time": "2025-12-16 00:30:35.396",
        "orig_prompt": "character1 happily watches a movie on the sofa",
        "video_url": "https://dashscope-result-sh.oss-accelerate.aliyuncs.com/xxx.mp4?Expires=xxx"
    },
     "usage": {
        "duration": 10.0,
        "size": "1280*720",
        "input_video_duration": 5,
        "output_video_duration": 5,
        "video_count": 1,
        "SR": 720
    }
}

DashScope SDK

SDK パラメーターは、HTTP API と同じ命名規則に従い、言語固有のラッパーでラップされています。 リファレンス動画タスクは通常 1~5 分かかります。SDK は HTTP の非同期ワークフローをラップし、同期呼び出しと非同期呼び出しの両方をサポートします。
実際の処理時間は、タスクキューとサーバーの負荷によって異なります。

Python

以下のコードを実行する前に、DashScope Python SDK のバージョンが 2.0.1 以降であることを確認してください。SDK のバージョンが古いと、「url error, please check url!」などのエラーが発生する可能性があります。更新するには、「SDK のインストール」をご参照ください。
モデルのリージョンに応じて region を設定します(Client 構築時に渡します。リージョンによって region の値は異なります):
  • シンガポール
  • 中国 (北京)
  • フランクフルト
region="ap-southeast-1"{WorkspaceId} を実際のワークスペース ID に置き換えてください。
  • 同期
  • 非同期
同期呼び出しは、動画の生成が完了して結果が返されるまでブロックします。
リクエストの例
import dashscope
import os
from dashscope.v2 import DashScopeError

# 以下はシンガポールリージョンの設定です。リージョンによって region の値は異なります。呼び出し時は、{WorkspaceId} をお使いのワークスペース ID に置き換えてください。
client = dashscope.Client(
    # DASHSCOPE_API_KEY が設定されていない場合は、api_key = "sk-xxx" に置き換えてください
    # API キーはリージョンによって異なります。API キーの取得:https://www.alibabacloud.com/help/model-studio/get-api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    workspace="{WorkspaceId}",
    region="ap-southeast-1",
)

def sample_sync_call_r2v():
    # 同期呼び出し:結果が準備できるまでブロックします。generate はワンステップ呼び出し(タスクを送信して完了を待機)で、完了済みの Job を返します
    print('please wait...')
    try:
        job = client.videos.generate(
            model='wan2.6-r2v-flash',
            prompt='Character2 sits in a chair by the window, holding character3, playing a soothing American country folk song next to character4. Character1 says to Character2: “that sounds great”',
            # reference_urls は input セクションのフィールドで、名前付きシグネチャに含まれないため、extra_input 経由で渡します
            # shot_type / audio は parameters セクションのフィールドで、parameters 経由で渡します
            extra_input={'reference_urls': [
                "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/en-US/20260205/aacgyk/wan-r2v-role1.mp4",
                "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/en-US/20260205/mmizqq/wan-r2v-role2.mp4",
                "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/qpzxps/wan-r2v-object4.png",
                "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/wfjikw/wan-r2v-backgroud5.png"
            ]},
            size='1280*720',
            duration=10,
            watermark=True,
            parameters={'shot_type': 'multi', 'audio': True})
        print(job)
        print(job.video_url)
    except DashScopeError as e:
        print(f"HTTP status code: {e.status_code}")
        print(f"Error code: {e.code}")
        print(f"Error message: {e.message}")
        print("See the documentation: https://www.alibabacloud.com/help/ja/model-studio/developer-reference/error-code")

if __name__ == '__main__':
    sample_sync_call_r2v()

Java

以下のコードを実行する前に、DashScope Java SDK のバージョンが 2.22.14 以降であることを確認してください。SDK のバージョンが古いと、「url error, please check url!」などのエラーが発生する可能性があります。更新するには、「SDK のインストール」をご参照ください。
モデルのリージョンに基づいて baseHttpApiUrl を設定します。
  • シンガポール
  • 中国 (北京)
  • フランクフルト
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.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.List;

public class Ref2Video26 {

    static {
        // シンガポールリージョンの URL。 お使いのリージョンの URL を使用してください。
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }

    // DASHSCOPE_API_KEY が設定されていない場合は、次の行を 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 ref2video26() throws ApiException, NoApiKeyException, InputRequiredException {
        VideoSynthesis vs = new VideoSynthesis();
        List<String> referenceUrls = new ArrayList<>();
        referenceUrls.add("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/en-US/20260205/aacgyk/wan-r2v-role1.mp4");
        referenceUrls.add("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/en-US/20260205/mmizqq/wan-r2v-role2.mp4");
        referenceUrls.add("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/qpzxps/wan-r2v-object4.png");
        referenceUrls.add("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260129/wfjikw/wan-r2v-backgroud5.png");

        VideoSynthesisParam param =
                VideoSynthesisParam.builder()
                        .apiKey(apiKey)
                        .model("wan2.6-r2v-flash")
                        .prompt("Character2 sits in a chair by the window, holding character3, playing a soothing American country folk song next to character4. Character1 says to Character2: “that sounds great”")
                        .referenceUrls(referenceUrls)
                        .shotType(VideoSynthesis.ShotType.MULTI)
                        .audio(Boolean.TRUE)
                        .size("1280*720")
                        .duration(10)
                        .watermark(Boolean.TRUE)
                        .build();
        System.out.println("お待ちください...");
        VideoSynthesisResult result = vs.call(param);
        System.out.println(JsonUtils.toJson(result));
    }

    public static void main(String[] args) {
        try {
            ref2video26();
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}

エラーコード

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