Wan リファレンス動画モデルは、 マルチモーダル入力 を受け付け、人物やオブジェクトを主人公として、単一キャラクターまたは複数キャラクターのインタラクション動画を生成します。
関連ドキュメント: ユーザーガイド
利用可能リージョン
モデル、エンドポイント URL、API キーは同一リージョンに属している必要があります。リージョン間の呼び出しは失敗します。
- モデルの選択:モデルのリージョンを確認します。
- URL の選択:対応するリージョンのエンドポイント URL を使用します。HTTP URL がサポートされています。
- API キーの設定:リージョンを選択して API キーを取得 し、次に 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 に置き換えてください。
米国 (バージニア)
POST https://dashscope-us.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
フランクフルト
POST https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
{WorkspaceId} を実際のワークスペース ID に置き換えてください。
中国 (北京)
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 の呼び出し」をご参照ください。
リクエストパラメーターヘッダーContent-Type リクエストのコンテンツタイプは Authorization Model Studio API キーでリクエストを認証します。例:Bearer sk-xxxx。 X-DashScope-Async 非同期処理を有効にします。HTTP リクエストでは、非同期呼び出しのみがサポートされます。値は 重要このリクエストヘッダーがない場合、「current user api does not support synchronous calls」というエラーが返されます。 リクエストボディmodel 使用するモデル。利用可能なモデルと料金については、「モデルの料金」をご参照ください。 例:wan2.6-r2v-flash。 input プロンプトなどの入力パラメーター。 parameters 解像度、プロンプトリライト、ウォーターマークなどの動画生成パラメーター。 | 複数キャラクターのインタラクション (リファレンス画像と動画)
複数キャラクターのインタラクション (リファレンス動画)
単一キャラクター
無音動画の生成
無音動画を生成するには、 |
レスポンスパラメーターoutput タスクの出力。 request_id トレースとトラブルシューティングのための一意のリクエスト識別子。 code エラーコード。失敗したリクエストに対してのみ返されます。「エラーコード」をご参照ください。 message 詳細なエラーメッセージ。失敗したリクエストに対してのみ返されます。「エラーコード」をご参照ください。 | 成功レスポンス
エラーレスポンスタスクの作成に失敗しました。「エラーコード」をご参照ください。 |
ステップ 2:タスク結果の取得
シンガポール
GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
{WorkspaceId} を実際のワークスペース ID に置き換えてください。
米国 (バージニア)
GET https://dashscope-us.aliyuncs.com/api/v1/tasks/{task_id}
フランクフルト
GET https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
{WorkspaceId} を実際のワークスペース ID に置き換えてください。
中国 (北京)
GET https://{WorkspaceId}.cn-beijing.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 Model Studio API キーでリクエストを認証します。例:Bearer sk-xxxx。 パスパラメーターtask_id タスクの ID。 | タスク結果の取得
|
レスポンスパラメーターoutput タスクの出力。 usage 使用量統計。成功した結果のみをカウントします。 request_id トレースとトラブルシューティングのための一意のリクエスト識別子。 | タスク成功動画 URL は 24 時間のみ有効で、その後自動的に削除されます。生成された動画は速やかに保存してください。 タスク失敗タスクが失敗すると、 タスク期限切れ
|
DashScope SDK
SDK パラメーターは、HTTP API と同じ命名規則に従い、言語固有のラッパーでラップされています。
リファレンス動画タスクは通常 1~5 分かかります。SDK は HTTP の非同期ワークフローをラップし、同期呼び出しと非同期呼び出しの両方をサポートします。
実際の処理時間は、タスクキューとサーバーの負荷によって異なります。
Python
重要以下のコードを実行する前に、DashScope Python SDK のバージョンが 1.25.16 以降であることを確認してください。
SDK のバージョンが古いと、「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'
{WorkspaceId} を実際のワークスペース ID に置き換えてください。
中国 (北京)
dashscope.base_http_api_url = 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1'
{WorkspaceId} を実際のワークスペース ID に置き換えてください。
フランクフルト
dashscope.base_http_api_url = 'https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1'
{WorkspaceId} を実際のワークスペース ID に置き換えてください。
同期
同期呼び出しは、動画の生成が完了して結果が返されるまでブロックします。
リクエストの例
from http import HTTPStatus
from dashscope import VideoSynthesis
import dashscope
import os
# シンガポールリージョンの URL。ご利用のリージョンの URL を使用してください。
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# DASHSCOPE_API_KEY が設定されていない場合は、次の行を 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.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=[
"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"
],
shot_type='multi',
audio=True,
size='1280*720',
duration=10,
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()
非同期
非同期呼び出しは、すぐにタスク ID を返します。タスクが完了するまでポーリングまたは待機する必要があります。
リクエストの例
import os
from http import HTTPStatus
from dashscope import VideoSynthesis
import dashscope
# シンガポールリージョンの URL。ご利用のリージョンの URL を使用してください。
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# DASHSCOPE_API_KEY が設定されていない場合は、次の行を 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_26():
# 非同期呼び出し:task_id を返します
rsp = VideoSynthesis.async_call(
api_key=api_key,
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=[
"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"
],
shot_type='multi',
audio=True,
size='1280*720',
duration=10,
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_26()
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 に置き換えます。
中国 (北京)
Constants.baseHttpApiUrl = "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1";
{WorkspaceId} を実際のワークスペース ID に置き換えます。
フランクフルト
Constants.baseHttpApiUrl = "https://{WorkspaceId}.eu-central-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);
}
}
非同期呼び出し
非同期呼び出しは、すぐにタスク ID を返します。タスクが完了するまで、ポーリングまたは待機する必要があります。
リクエストの例
// Copyright (c) Alibaba, Inc. およびその関連会社。
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.List;
public class Ref2Video26Async {
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 asyncRef2video26() throws ApiException, NoApiKeyException, InputRequiredException, InterruptedException {
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();
// 非同期タスクを送信します
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 {
asyncRef2video26();
} catch (ApiException | NoApiKeyException | InputRequiredException | InterruptedException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}
エラーコード
モデルの呼び出しが失敗し、エラーメッセージが返された場合は、エラーコードをご参照ください。