Wan 画像動画変換モデルは、最初のフレーム画像とテキストプロンプトからスムーズな動画を生成します。
リファレンス:ユーザーガイド
新しくリリースされた Wanxiang - Image-to-video 2.7 は、最初のフレームからの動画生成、最初と最後のフレームからの動画生成、動画継続生成をサポートしています。こちらを優先的に使用することを推奨します。
このトピックの Wan 画像動画変換 モデル (wan2.6 以前) は、最初のフレームからの動画生成のみをサポートしています。
可用性
モデル、エンドポイント URL、API キーは同じリージョンにある必要があります。クロスリージョンでの呼び出しは失敗します。
モデルの選択:対象リージョンでモデルが利用可能であることを確認します。
URL の選択:対応するリージョンのエンドポイント URL を選択します。HTTP と HTTPS の両方がサポートされています。
SDK のインストール:SDK を使用して API を呼び出す場合は、DashScope SDK をインストールします。
このトピックのサンプルコードは、シンガポールリージョンに適用されます。
HTTP
画像動画変換タスクには 1〜5 分かかります。非同期呼び出しを使用してください:タスクを作成し、結果をポーリングします。
ステップ 1:タスクの作成
シンガポール
POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
バージニア
POST https://dashscope-us.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis
北京
POST https://dashscope.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
API を呼び出す際は、WorkspaceId を実際のワークスペース ID に置き換えてください。
タスクが作成された後、返された
task_idを使用して結果をクエリします。task_idは 24 時間有効です。重複したタスクを作成しないでください。代わりに、ポーリングを使用して結果を取得してください。初心者向けのガイダンスについては、「Postman」をご参照ください。
リクエストパラメーター | マルチショットナラティブこの機能は wan2.6 モデルでのみサポートされています。
自動ダビングこの機能は wan2.6 および wan2.5 モデルでのみサポートされています。
音声ファイルの提供この機能は wan2.6 および wan2.5 モデルでのみサポートされています。 動画に BGM やナレーションを指定するには、カスタム音声ファイルの URL を 無音動画の生成無音動画の生成は、以下のモデルでのみサポートされています:
ネガティブプロンプトの使用negative_prompt パラメーターを使用して、生成される動画に「花」が表示されないようにします。 |
ヘッダー | |
Content-Type リクエストのコンテンツタイプです。 | |
Authorization Model Studio API キーでリクエストを認証します。例:Bearer sk-xxxx。 | |
X-DashScope-Async 非同期処理を有効にします。HTTP リクエストは非同期呼び出しのみをサポートします。 重要 このリクエストヘッダーがない場合、「current user api does not support synchronous calls」というエラーが返されます。 | |
リクエストボディ | |
model モデル名です。モデルの料金 をご確認ください。 例:wan2.6-i2v-flash。 | |
input プロンプトなどの基本的な入力情報を含みます。 | |
parameters 動画処理パラメーター (解像度、持続時間、プロンプトリライト、ウォーターマーク) です。 |
レスポンスパラメーター | 成功レスポンス
エラーレスポンスタスクの作成に失敗しました。「エラーメッセージ」をご参照ください。 |
output タスクの出力情報です。 | |
request_id 追跡とトラブルシューティングのためのユニークなリクエスト識別子です。 | |
code エラーコードです。失敗したリクエストに対してのみ返されます。「エラーメッセージ」をご参照ください。 | |
message 詳細なエラーメッセージです。失敗したリクエストに対してのみ返されます。「エラーメッセージ」をご参照ください。 |
ステップ 2:結果のクエリ
シンガポール
GET https://dashscope-intl.aliyuncs.com/api/v1/tasks/{task_id}
バージニア
GET https://dashscope-us.aliyuncs.com/api/v1/tasks/{task_id}
北京
GET https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}
フランクフルト
GET https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
API を呼び出す際は、WorkspaceId を実際のワークスペース ID に置き換えてください。
ポーリングの推奨:動画生成には数分かかります。15 秒などの適切な間隔でポーリングメカニズムを使用してください。
タスクの状態遷移:PENDING → RUNNING → SUCCEEDED または FAILED。
結果リンク:タスクが成功すると、24 時間有効な動画 URL が返されます。動画をダウンロードし、OSS などの永続ストレージに保存してください。
task_idの有効期間:24 時間。この期間を過ぎると、クエリはタスクステータスをUNKNOWNとして返します。
リクエストパラメーター | タスク結果のクエリ
|
ヘッダー | |
Authorization Model Studio API キーでリクエストを認証します。例:Bearer sk-xxxx。 | |
URL パスパラメーター | |
task_id タスクの ID です。 |
レスポンスパラメーター | タスク成功動画 URL は 24 時間のみ有効で、その後自動的にパージされます。生成された動画は速やかに保存してください。 タスク失敗タスクが失敗すると、 タスククエリ期限切れ
|
output タスクの出力情報です。 | |
usage 出力統計です。成功した結果に対してのみカウントされます。 | |
request_id 追跡とトラブルシューティングのためのユニークなリクエスト識別子です。 |
DashScope SDK
SDK のパラメーター名は、ほとんどが HTTP API と一致します (構造は各言語の規則に従います)。
画像動画変換タスクには 1〜5 分かかります。SDK は非同期 HTTP 呼び出しフローをラップし、同期と非同期の両方の呼び出しをサポートします。
実際の処理時間は、キューの長さとサービスの実行状況によって異なります。結果が出るまでしばらくお待ちください。
Python SDK
DashScope Python SDK ≥ 1.25.8 が必要です。古いバージョンではエラー (「url error, please check url!」) が発生する可能性があります。更新するには、「SDK のインストール」をご参照ください。
モデルのリージョンに基づいて base_http_api_url を設定します:
シンガポール
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
バージニア
dashscope.base_http_api_url = 'https://dashscope-us.aliyuncs.com/api/v1'
北京
dashscope.base_http_api_url = 'https://dashscope.aliyuncs.com/api/v1'
フランクフルト
dashscope.base_http_api_url = 'https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1'
API を呼び出す際は、WorkspaceId を実際のワークスペース ID に置き換えてください。
サンプルコード
同期呼び出し
同期呼び出しは完了するまでブロックします。3 つの画像入力方法があります:パブリック URL、Base64、ローカルファイルパス。
リクエスト例
import base64
import os
from http import HTTPStatus
from dashscope import VideoSynthesis
import mimetypes
import dashscope
# シンガポールリージョンの URL。URL の取得:https://www.alibabacloud.com/help/ja/model-studio/image-to-video-api-reference
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください:api_key="sk-xxx"
# API キーの取得:https://www.alibabacloud.com/help/ja/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
# --- ヘルパー関数:Base64 エンコーディング用 ---
# フォーマット:data:{MIME_type};base64,{base64_data}
def encode_file(file_path):
mime_type, _ = mimetypes.guess_type(file_path)
if not mime_type or not mime_type.startswith("image/"):
raise ValueError("Unsupported or unrecognized image format")
with open(file_path, "rb") as image_file:
encoded_string = base64.b64encode(image_file.read()).decode('utf-8')
return f"data:{mime_type};base64,{encoded_string}"
"""
画像の入力方法:
次の 3 つの方法から 1 つを選択します
1. パブリック URL を使用 - 一般公開されている画像に適しています
2. ローカルファイルを使用 - ローカルでの開発やテストに適しています
3. Base64 エンコーディングを使用 - 非公開の画像や暗号化伝送が必要なシナリオに適しています
"""
# [方法 1] 一般公開されている画像 URL を使用
# 例:パブリック画像 URL を使用
img_url = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png"
# [方法 2] ローカルファイルを使用 (絶対パスと相対パスをサポート)
# フォーマット要件:file:// + ファイルパス
# 例 (絶対パス):
# img_url = "file://" + "/path/to/your/img.png" # Linux/macOS
# img_url = "file://" + "/C:/path/to/your/img.png" # Windows
# 例 (相対パス):
# img_url = "file://" + "./img.png" # 現在の実行可能ファイルのパスからの相対パス
# [方法 3] Base64 エンコードされた画像を使用
# img_url = encode_file("./img.png")
# 音声 URL を設定
audio_url = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3"
def sample_call_i2v():
# 同期呼び出し、結果を直接返します
print('please wait...')
rsp = VideoSynthesis.call(api_key=api_key,
model='wan2.6-i2v-flash',
prompt='A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise.',
img_url=img_url,
audio_url=audio_url,
resolution="720P",
duration=10,
prompt_extend=True,
watermark=False,
negative_prompt="",
seed=12345)
print(rsp)
if rsp.status_code == HTTPStatus.OK:
print("video_url:", 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_call_i2v()レスポンス例
video_url は 24 時間有効です。速やかにダウンロードしてください。
{
"status_code": 200,
"request_id": "2794c7a3-fe8c-4dd4-a1b7-xxxxxx",
"code": null,
"message": "",
"output": {
"task_id": "c15d5b14-07c4-4af5-b862-xxxxxx",
"task_status": "SUCCEEDED",
"video_url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx.mp4?Expires=xxx",
"submit_time": "2026-01-22 23:24:46.527",
"scheduled_time": "2026-01-22 23:24:46.565",
"end_time": "2026-01-22 23:25:59.978",
"orig_prompt": "A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise."
},
"usage": {
"video_count": 1,
"video_duration": 0,
"video_ratio": "",
"duration": 10,
"input_video_duration": 0,
"output_video_duration": 10,
"audio": true,
"SR": 720
}
}非同期呼び出し
非同期呼び出しはすぐにタスク ID を返します。結果をポーリングするか、完了を待ちます。
リクエスト例
import os
from http import HTTPStatus
from dashscope import VideoSynthesis
import dashscope
# シンガポールリージョンの URL。URL の取得:https://www.alibabacloud.com/help/ja/model-studio/image-to-video-api-reference
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください:api_key="sk-xxx"
# API キーの取得:https://www.alibabacloud.com/help/ja/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
# 一般公開されている画像 URL を使用
img_url = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png"
# 音声 URL を設定
audio_url = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3"
def sample_async_call_i2v():
# 非同期呼び出し、task_id を返します
rsp = VideoSynthesis.async_call(api_key=api_key,
model='wan2.6-i2v-flash',
prompt='A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise.',
img_url=img_url,
audio_url=audio_url,
resolution="720P",
duration=10,
prompt_extend=True,
watermark=False,
negative_prompt="",
seed=12345)
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_i2v()レスポンス例
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": "2794c7a3-fe8c-4dd4-a1b7-xxxxxx",
"code": null,
"message": "",
"output": {
"task_id": "c15d5b14-07c4-4af5-b862-xxxxxx",
"task_status": "SUCCEEDED",
"video_url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx.mp4?Expires=xxx",
"submit_time": "2026-01-22 23:24:46.527",
"scheduled_time": "2026-01-22 23:24:46.565",
"end_time": "2026-01-22 23:25:59.978",
"orig_prompt": "A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise."
},
"usage": {
"video_count": 1,
"video_duration": 0,
"video_ratio": "",
"duration": 10,
"input_video_duration": 0,
"output_video_duration": 10,
"audio": true,
"SR": 720
}
}Java SDK
DashScope Java SDK ≥ 2.22.6 が必要です。古いバージョンではエラー (「url error, please check url!」) が発生する可能性があります。更新するには、「SDK のインストール」をご参照ください。
モデルのリージョンに基づいて baseHttpApiUrl を設定します:
シンガポール
Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
バージニア
Constants.baseHttpApiUrl = "https://dashscope-us.aliyuncs.com/api/v1";
北京
Constants.baseHttpApiUrl = "https://dashscope.aliyuncs.com/api/v1";
フランクフルト
Constants.baseHttpApiUrl = "https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1";
API を呼び出す際は、WorkspaceId を実際のワークスペース ID に置き換えてください。
サンプルコード
同期呼び出し
同期呼び出しは完了するまでブロックします。3 つの画像入力方法があります:パブリック URL、Base64、ローカルファイルパス。
リクエスト例
// 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.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;
public class Image2Video {
static {
// シンガポールリージョンの URL。URL の取得:https://www.alibabacloud.com/help/ja/model-studio/image-to-video-api-reference
Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
}
// 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください:apiKey="sk-xxx"
// API キーの取得:https://www.alibabacloud.com/help/ja/model-studio/get-api-key
static String apiKey = System.getenv("DASHSCOPE_API_KEY");
/**
* 画像の入力方法:次の 3 つから 1 つを選択します
*
* 1. パブリック URL を使用 - 一般公開されている画像に適しています
* 2. ローカルファイルを使用 - ローカルでの開発やテストに適しています
* 3. Base64 エンコーディングを使用 - 非公開の画像や暗号化伝送が必要なシナリオに適しています
*/
// [方法 1] パブリック URL
static String imgUrl = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png";
// [方法 2] ローカルファイルパス (file://+絶対パス)
// static String imgUrl = "file://" + "/your/path/to/img.png"; // Linux/macOS
// static String imgUrl = "file://" + "/C:/your/path/to/img.png"; // Windows
// [方法 3] Base64 エンコーディング
// static String imgUrl = Image2Video.encodeFile("/your/path/to/img.png");
// 音声 URL を設定
static String audioUrl = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3";
public static void image2video() throws ApiException, NoApiKeyException, InputRequiredException {
// パラメーターを設定
Map<String, Object> parameters = new HashMap<>();
parameters.put("prompt_extend", true);
parameters.put("watermark", false);
parameters.put("seed", 12345);
VideoSynthesis vs = new VideoSynthesis();
VideoSynthesisParam param =
VideoSynthesisParam.builder()
.apiKey(apiKey)
.model("wan2.6-i2v-flash")
.prompt("A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise.")
.imgUrl(imgUrl)
.audioUrl(audioUrl)
.duration(10)
.parameters(parameters)
.resolution("720P")
.negativePrompt("")
.build();
System.out.println("please wait...");
VideoSynthesisResult result = vs.call(param);
System.out.println(JsonUtils.toJson(result));
}
/**
* ファイルを Base64 文字列にエンコードします
* @param filePath ファイルパス
* @return Base64 文字列 (フォーマット:data:{MIME_type};base64,{base64_data})
*/
public static String encodeFile(String filePath) {
Path path = Paths.get(filePath);
if (!Files.exists(path)) {
throw new IllegalArgumentException("File does not exist: " + filePath);
}
// MIME タイプを検出
String mimeType = null;
try {
mimeType = Files.probeContentType(path);
} catch (IOException e) {
throw new IllegalArgumentException("Cannot detect file type: " + filePath);
}
if (mimeType == null || !mimeType.startsWith("image/")) {
throw new IllegalArgumentException("Unsupported or unrecognized image format");
}
// ファイルコンテンツを読み込んでエンコード
byte[] fileBytes = null;
try{
fileBytes = Files.readAllBytes(path);
} catch (IOException e) {
throw new IllegalArgumentException("Cannot read file content: " + filePath);
}
String encodedString = Base64.getEncoder().encodeToString(fileBytes);
return "data:" + mimeType + ";base64," + encodedString;
}
public static void main(String[] args) {
try {
image2video();
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}レスポンス例
video_url は 24 時間有効です。速やかにダウンロードしてください。
{
"request_id": "87c091bb-7a3c-4904-8501-xxxxxx",
"output": {
"task_id": "413ed6e4-5f3a-4f57-8d58-xxxxxx",
"task_status": "SUCCEEDED",
"video_url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx.mp4?Expires=xxx",
"orig_prompt": "A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise.",
"submit_time": "2026-01-22 23:25:45.729",
"scheduled_time": "2026-01-22 23:25:45.771",
"end_time": "2026-01-22 23:26:44.942"
},
"usage": {
"video_count": 1,
"duration": 10.0,
"input_video_duration": 0.0,
"output_video_duration": 10.0,
"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.HashMap;
import java.util.Map;
public class Image2Video {
static {
// シンガポールリージョンの URL。URL の取得:https://www.alibabacloud.com/help/ja/model-studio/image-to-video-api-reference
Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
}
// 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください:api_key="sk-xxx"
// API キーの取得:https://www.alibabacloud.com/help/ja/model-studio/get-api-key
static String apiKey = System.getenv("DASHSCOPE_API_KEY");
// 入力画像 URL を設定
static String imgUrl = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/wpimhv/rap.png";
// 音声 URL を設定
static String audioUrl = "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/ozwpvi/rap.mp3";
public static void image2video() throws ApiException, NoApiKeyException, InputRequiredException {
// パラメーターを設定
Map<String, Object> parameters = new HashMap<>();
parameters.put("prompt_extend", true);
parameters.put("watermark", false);
parameters.put("seed", 12345);
VideoSynthesis vs = new VideoSynthesis();
VideoSynthesisParam param =
VideoSynthesisParam.builder()
.apiKey(apiKey)
.model("wan2.6-i2v-flash")
.prompt("A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise.")
.imgUrl(imgUrl)
.audioUrl(audioUrl)
.duration(10)
.parameters(parameters)
.resolution("720P")
.negativePrompt("")
.build();
// 非同期呼び出し
VideoSynthesisResult task = vs.asyncCall(param);
System.out.println(JsonUtils.toJson(task));
System.out.println("please wait...");
// 結果を取得
VideoSynthesisResult result = vs.wait(task, apiKey);
System.out.println(JsonUtils.toJson(result));
}
// タスクリストを取得
public static void listTask() throws ApiException, NoApiKeyException {
VideoSynthesis is = new VideoSynthesis();
AsyncTaskListParam param = AsyncTaskListParam.builder().build();
param.setApiKey(apiKey);
VideoSynthesisListResult result = is.list(param);
System.out.println(result);
}
// 単一タスクの結果を取得
public static void fetchTask(String taskId) throws ApiException, NoApiKeyException {
VideoSynthesis is = new VideoSynthesis();
// DASHSCOPE_API_KEY が環境変数として設定されている場合、apiKey は null にできます
VideoSynthesisResult result = is.fetch(taskId, apiKey);
System.out.println(result.getOutput());
System.out.println(result.getUsage());
}
public static void main(String[] args) {
try {
image2video();
} catch (ApiException | NoApiKeyException | InputRequiredException 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": "87c091bb-7a3c-4904-8501-xxxxxx",
"output": {
"task_id": "413ed6e4-5f3a-4f57-8d58-xxxxxx",
"task_status": "SUCCEEDED",
"video_url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx.mp4?Expires=xxx",
"orig_prompt": "A scene of urban fantasy art. A dynamic graffiti art character. A boy made of spray paint comes to life from a concrete wall. He raps an English song at high speed while striking a classic, energetic rapper pose. The scene is set under an urban railway bridge at night. The lighting comes from a single street lamp, creating a cinematic atmosphere full of high energy and amazing detail. The audio of the video consists entirely of his rap, with no other dialogue or noise.",
"submit_time": "2026-01-22 23:25:45.729",
"scheduled_time": "2026-01-22 23:25:45.771",
"end_time": "2026-01-22 23:26:44.942"
},
"usage": {
"video_count": 1,
"duration": 10.0,
"input_video_duration": 0.0,
"output_video_duration": 10.0,
"SR": "720"
},
"status_code": 200,
"code": "",
"message": ""
}制限事項
データ有効期間:task_id と動画 URL は 24 時間のみ保持されます。期限切れになると、クエリやダウンロードはできません。
コンテンツモデレーション:入力 (プロンプト、画像) と出力はセキュリティレビューを受けます。違反するとエラー (例:「IPInfringementSuspect」、「DataInspectionFailed」) が返されます。「」をご参照ください。
エラーコード
呼び出しの失敗やエラーについては、「エラーメッセージ」でトラブルシューティングを行ってください。
よくある質問
Q:特定のアスペクト比 (例:3:4) の動画を生成するにはどうすればよいですか?
A:出力のアスペクト比は入力画像 (img_url) と一致しますが、正確な比率 (例:厳密な 3:4) は保証されません。わずかなずれが生じる可能性があります。
ずれが生じる理由:
モデルは入力画像の比率を基準とし、ターゲットピクセル (解像度で設定) に基づいて最も近い有効な解像度を計算します。幅/高さは 16 の倍数である必要があり、微調整が必要です。出力比率はターゲット (例:3:4) に近似しますが、正確ではありません。
例:入力画像 750×1000 (アスペクト比 3:4 = 0.75)、解像度 = "720P" (ターゲット約 920,000 ピクセル) の場合、出力は 816×1104 (アスペクト比 ≈ 0.739、約 900,000 ピクセル) になります。
ベストプラクティス:
入力制御:ターゲットのアスペクト比を持つ画像を最初のフレームとして使用します。
後処理:厳密な比率が必要な場合は、編集ツールで生成された動画をクロップまたはパディングします。
Q:動画ストレージのドメイン名ホワイトリストを取得するにはどうすればよいですか?
A:モデルによって生成された動画は OSS に保存されます。API は一時的なパブリック URL を返します。このダウンロード URL のファイアウォールホワイトリストを設定するには、次の点にご注意ください:基盤となるストレージは動的に変更される可能性があります。このトピックでは、古い情報によるアクセス問題を避けるため、固定の OSS ドメイン名ホワイトリストは提供していません。セキュリティ管理要件がある場合は、アカウントマネージャーに連絡して最新の OSS ドメイン名リストを入手してください。