Wan - general image editing 2.5 モデルは、テキスト命令を使用して、1 つ以上の参照画像に基づいて、主題の一貫性を保った画像編集と複数画像の融合を実行します。
クイックスタート:ユーザーガイド
モデル概要
特徴 | 入力例 | 出力画像 |
単一画像の編集 |
|
花柄のドレスを、襟と袖口に精巧な刺繍が施されたヴィンテージ風のレースのロングドレスに変更します。 |
複数画像の融合 |
|
画像 1 の目覚まし時計を、画像 2 のダイニングテーブルの花瓶の隣に置きます。 |
モデル | 説明 | 出力画像の仕様 |
wan2.5-i2i-preview | Wan 2.5 プレビュー 単一画像の編集と複数画像の融合をサポートします。 | 画像フォーマット:PNG。 画像解像度:
|
呼び出しを行う前に、各リージョンのモデルと料金をご確認ください。
前提条件
呼び出しを行う前に、API キーを取得し、API キーを環境変数として設定してください。SDK を使用して呼び出しを行うには、DashScope SDK をインストールします。
北京リージョンとシンガポールリージョンでは、API キーとリクエストエンドポイントが異なります。これらを相互に利用することはできません。リージョンをまたいだ呼び出しは、認証失敗やサービスエラーの原因となります。
HTTP
画像編集タスクの完了には、通常 1〜2 分程度の時間がかかります。そのため、API は非同期呼び出しを使用します。このプロセスには、タスクの作成と結果のポーリングという 2 つの主要なステップが含まれます。手順は以下の通りです:
実際の所要時間は、キュー内のタスク数とサービスの実行状況によって異なります。結果が返されるまで待つ必要があります。
ステップ 1:タスクを作成してタスク ID を取得
シンガポール:POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis
中国 (北京):POST https://dashscope.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis
タスクが作成された後、返された
task_idを使用して結果をクエリします。task_id の有効期間は 24 時間です。重複したタスクを作成しないでください。ポーリングを使用して結果を取得してください。
リクエストパラメーター | 単一画像の編集
複数画像の融合
|
ヘッダー | |
Content-Type リクエストのコンテンツタイプ。このパラメーターを | |
Authorization リクエストの身分認証情報。この API は、身分認証に Model Studio API キーを使用します。例:Bearer sk-xxxx。 | |
X-DashScope-Async 非同期処理の構成パラメーター。HTTP リクエストは非同期処理のみをサポートします。このパラメーターを 重要 このリクエストヘッダーがない場合、「current user api does not support synchronous calls」というエラーメッセージが返されます。 | |
リクエストボディ | |
model モデル名。詳細については、「モデルリストと料金」をご参照ください。 例:wan2.5-i2i-preview。 | |
input プロンプトなどの基本的な入力情報。 | |
parameters 画像編集パラメーター。画像解像度、プロンプトの再書き込み、ウォーターマークなどのパラメーターを設定できます。 |
レスポンスパラメーター | 成功時のレスポンスtask_id を保存して、タスクのステータスと結果をクエリします。 エラーレスポンスタスクの作成に失敗しました。詳細については、「エラーメッセージ」をご参照ください。 |
output タスクの出力情報。 | |
request_id 一意のリクエスト ID。この ID を使用して問題を追跡およびトラブルシューティングできます。 | |
code 失敗したリクエストのエラーコード。リクエストが成功した場合、このパラメーターは返されません。詳細については、「エラーメッセージ」をご参照ください。 | |
message 失敗したリクエストの詳細情報。リクエストが成功した場合、このパラメーターは返されません。詳細については、「エラーメッセージ」をご参照ください。 |
ステップ 2:タスク ID で結果をクエリ
シンガポールリージョン:GET https://dashscope-intl.aliyuncs.com/api/v1/tasks/{task_id}
北京リージョン:GET https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}
ポーリングの推奨事項:画像生成には数分かかります。ポーリングメカニズムを使用し、10 秒などの適切なクエリ間隔を設定して結果を取得してください。
タスクステータスの遷移:PENDING → RUNNING → SUCCEEDED または FAILED。
結果リンク:タスクが成功すると、画像リンクが返されます。リンクの有効期間は 24 時間です。リンクを取得したら、すぐに画像をダウンロードし、Object Storage Service などの永続的なストレージサービスに保存してください。
リクエストパラメーター | タスク結果のクエリ
シンガポールリージョンと北京リージョンの API キーは異なります。API キーを作成してください。 以下の `base_url` はシンガポールリージョン用です。北京リージョンのモデルについては、`base_url` を `https://dashscope.aliyuncs.com/api/v1/tasks/86ecf553-d340-4e21-xxxxxxxxx` に置き換えてください。 |
ヘッダー | |
Authorization リクエストの身分認証情報。この API は、身分認証に Model Studio API キーを使用します。例:Bearer sk-xxxx。 | |
URL パスパラメーター | |
task_id タスク ID。 |
レスポンスパラメーター | タスクの実行成功画像 URL は 24 時間のみ保持され、この期間が過ぎると自動的に消去されます。生成された画像は速やかに保存する必要があります。 タスクの実行失敗タスクが失敗した場合、task_status は FAILED に設定され、エラーコードとメッセージが提供されます。詳細については、「エラーメッセージ」をご参照ください。 タスクの部分的な失敗モデルは 1 つのタスクで複数の画像を生成できます。少なくとも 1 つの画像が正常に生成された場合、タスクのステータスは タスククエリの期限切れtask_id の有効期間は 24 時間です。この期間を過ぎると、クエリは失敗し、以下のエラーメッセージが返されます。 |
output タスクの出力情報。 | |
usage タスクの使用状況統計。正常に生成された画像のみがカウントされます。 | |
request_id 一意のリクエスト ID。この ID を使用して問題を追跡およびトラブルシューティングできます。 |
DashScope SDK
SDK のパラメーター名は、HTTP API のパラメーター名と一致しています。パラメーター構造は、各プログラミング言語の規則に合わせてカプセル化されています。
画像編集タスクには約 30〜60 秒かかります。SDK は、下位層で HTTP 非同期呼び出しプロセスをカプセル化し、同期呼び出しと非同期呼び出しの両方をサポートします。
実際の所要時間は、キュー内のタスク数とサービスの実行状況によって異なります。結果が返されるまで待つ必要があります。
Python SDK
DashScope Python SDK のバージョンが 1.25.2 以降であることを確認してください。
古いバージョンでは、「url error, please check url!」などのエラーが発生する可能性があります。詳細については、「SDK のインストールまたはアップグレード」をご参照ください。
同期呼び出し
リクエスト例
この例では、パブリック URL、Base64 エンコーディング、ローカルファイルパスの 3 つの画像入力メソッドをサポートしています。
import base64
import mimetypes
from http import HTTPStatus
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
import dashscope
import requests
from dashscope import ImageSynthesis
import os
# 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/api/v1 に置き換えてください
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください:api_key="sk-xxx"
# シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーの取得:https://www.alibabacloud.com/help/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
# --- 画像入力:Base64 エンコーディングを使用 ---
# 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("サポートされていない、または認識されない画像フォーマットです")
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 を使用
image_url_1 = "https://img.alicdn.com/imgextra/i3/O1CN0157XGE51l6iL9441yX_!!6000000004770-49-tps-1104-1472.webp"
image_url_2 = "https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp"
# [メソッド 2] ローカルファイルを使用 (絶対パスと相対パスをサポート)
# フォーマット要件:file:// + ファイルパス
# 例 (絶対パス):
# image_url_1 = "file://" + "/path/to/your/image_1.png" # Linux/macOS
# image_url_2 = "file://" + "C:/path/to/your/image_2.png" # Windows
# 例 (相対パス):
# image_url_1 = "file://" + "./image_1.png" # 実際のパスを使用してください
# image_url_2 = "file://" + "./image_2.png" # 実際のパスを使用してください
# [メソッド 3] Base64 エンコードされた画像を使用
# image_url_1 = encode_file("./image_1.png") # 実際のパスを使用してください
# image_url_2 = encode_file("./image_2.png") # 実際のパスを使用してください
print('----同期呼び出し、しばらくお待ちください----')
rsp = ImageSynthesis.call(api_key=api_key,
model="wan2.5-i2i-preview",
prompt="画像 1 の目覚まし時計を、画像 2 のダイニングテーブルの花瓶の隣に置きます。",
images=[image_url_1, image_url_2],
negative_prompt="",
n=1,
# size="1280*1280",
prompt_extend=True,
watermark=False,
seed=12345)
print('response: %s' % rsp)
if rsp.status_code == HTTPStatus.OK:
# 現在のディレクトリに画像を保存
for result in rsp.output.results:
file_name = PurePosixPath(unquote(urlparse(result.url).path)).parts[-1]
with open('./%s' % file_name, 'wb+') as f:
f.write(requests.get(result.url).content)
else:
print('sync_call Failed, status_code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))レスポンス例
URL の有効期間は 24 時間です。速やかに画像をダウンロードしてください。
{
"status_code": 200,
"request_id": "8ad45834-4321-44ed-adf5-xxxxxx",
"code": null,
"message": "",
"output": {
"task_id": "3aff9ebd-35fc-4339-98a3-xxxxxx",
"task_status": "SUCCEEDED",
"results": [
{
"url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx",
"orig_prompt": "画像 1 の目覚まし時計を、画像 2 のダイニングテーブルの花瓶の隣に置きます。",
"actual_prompt": "画像 1 の青い目覚まし時計を、画像 2 のダイニングテーブルの花瓶の右側、テーブルクロスの端近くに置きます。目覚まし時計はカメラの方を向き、テーブルと平行になるようにし、その影がテーブルに自然に落ちるようにします。"
}
],
"submit_time": "2025-10-23 16:18:16.009",
"scheduled_time": "2025-10-23 16:18:16.040",
"end_time": "2025-10-23 16:19:09.591",
"task_metrics": {
"TOTAL": 1,
"FAILED": 0,
"SUCCEEDED": 1
}
},
"usage": {
"image_count": 1
}
}
非同期呼び出し
この例では、パブリック URL を使用して画像を渡します。
リクエスト例
import os
from http import HTTPStatus
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
import dashscope
import requests
from dashscope import ImageSynthesis
# 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/api/v1 に置き換えてください
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください:api_key="sk-xxx"
# シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーの取得:https://www.alibabacloud.com/help/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
# パブリック画像 URL を使用
image_url_1 = "https://img.alicdn.com/imgextra/i3/O1CN0157XGE51l6iL9441yX_!!6000000004770-49-tps-1104-1472.webp"
image_url_2 = "https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp"
def async_call():
print('----タスク作成----')
task_info = create_async_task()
print('----タスク待機----')
wait_async_task(task_info)
# 非同期タスクを作成
def create_async_task():
rsp = ImageSynthesis.async_call(api_key=api_key,
model="wan2.5-i2i-preview",
prompt="画像 1 の目覚まし時計を、画像 2 のダイニングテーブルの花瓶の隣に置きます。",
images=[image_url_1, image_url_2],
negative_prompt="",
n=1,
# size="1280*1280",
prompt_extend=True,
watermark=False,
seed=12345)
print(rsp)
if rsp.status_code == HTTPStatus.OK:
print(rsp.output)
else:
print('Failed, status_code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
return rsp
# 非同期タスクの完了を待機
def wait_async_task(task):
rsp = ImageSynthesis.wait(task=task, api_key=api_key)
print(rsp)
if rsp.status_code == HTTPStatus.OK:
print(rsp.output)
# 現在のディレクトリにファイルを保存
for result in rsp.output.results:
file_name = PurePosixPath(unquote(urlparse(result.url).path)).parts[-1]
with open('./%s' % file_name, 'wb+') as f:
f.write(requests.get(result.url).content)
else:
print('Failed, status_code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
# 非同期タスク情報を取得
def fetch_task_status(task):
status = ImageSynthesis.fetch(task=task, api_key=api_key)
print(status)
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))
# 非同期タスクをキャンセル。PENDING 状態のタスクのみキャンセル可能。
def cancel_task(task):
rsp = ImageSynthesis.cancel(task=task, api_key=api_key)
print(rsp)
if rsp.status_code == HTTPStatus.OK:
print(rsp.output.task_status)
else:
print('Failed, status_code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
if __name__ == '__main__':
async_call()
レスポンス例
1. タスク作成リクエストのレスポンス例
{
"status_code": 200,
"request_id": "31b04171-011c-96bd-ac00-f0383b669cc7",
"code": "",
"message": "",
"output": {
"task_id": "4f90cf14-a34e-4eae-xxxxxxxx",
"task_status": "PENDING",
"results": []
},
"usage": null
}2. タスククエリリクエストのレスポンス例
URL の有効期間は 24 時間です。速やかに画像をダウンロードしてください。
{
"status_code": 200,
"request_id": "8ad45834-4321-44ed-adf5-xxxxxx",
"code": null,
"message": "",
"output": {
"task_id": "3aff9ebd-35fc-4339-98a3-xxxxxx",
"task_status": "SUCCEEDED",
"results": [
{
"url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx",
"orig_prompt": "画像 1 の目覚まし時計を、画像 2 のダイニングテーブルの花瓶の隣に置きます。",
"actual_prompt": "画像 1 の青い目覚まし時計を、画像 2 のダイニングテーブルの花瓶の右側、テーブルクロスの端近くに置きます。目覚まし時計はカメラの方を向き、テーブルと平行になるようにし、その影がテーブルに自然に落ちるようにします。"
}
],
"submit_time": "2025-10-23 16:18:16.009",
"scheduled_time": "2025-10-23 16:18:16.040",
"end_time": "2025-10-23 16:19:09.591",
"task_metrics": {
"TOTAL": 1,
"FAILED": 0,
"SUCCEEDED": 1
}
},
"usage": {
"image_count": 1
}
}
Java SDK
DashScope Java SDK のバージョンが 2.22.2 以降であることを確認してください。
古いバージョンでは、「url error, please check url!」などのエラーが発生する可能性があります。詳細については、「SDK のインストールまたはアップグレード」をご参照ください。
同期呼び出し
リクエスト例
この例では、パブリック URL、Base64 エンコーディング、ローカルファイルパスの 3 つの画像入力メソッドをサポートしています。
// Copyright (c) Alibaba, Inc. and its affiliates.
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesis;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisParam;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.Constants;
import com.alibaba.dashscope.utils.JsonUtils;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.*;
public class Image2Image {
static {
// 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/api/v1 に置き換えてください
Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
}
// 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください:apiKey="sk-xxx"
// シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーの取得:https://www.alibabacloud.com/help/model-studio/get-api-key
static String apiKey = System.getenv("DASHSCOPE_API_KEY");
/**
* 画像入力メソッド:以下の 3 つのメソッドから 1 つを選択してください。
*
* 1. パブリック URL を使用 - 公開されている画像に適しています。
* 2. ローカルファイルを使用 - ローカルでの開発およびテストに適しています。
* 3. Base64 エンコーディングを使用 - 非公開の画像や暗号化された伝送が必要なシナリオに適しています。
*/
//[メソッド 1] パブリック URL
static String imageUrl_1 = "https://img.alicdn.com/imgextra/i3/O1CN0157XGE51l6iL9441yX_!!6000000004770-49-tps-1104-1472.webp";
static String imageUrl_2 = "https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp";
//[メソッド 2] ローカルファイルパス (file://+絶対パス または file:///+絶対パス)
// static String imageUrl_1 = "file://" + "/your/path/to/image_1.png"; // Linux/macOS
// static String imageUrl_2 = "file:///" + "C:/your/path/to/image_2.png"; // Windows
//[メソッド 3] Base64 エンコーディング
// static String imageUrl_1 = encodeFile("/your/path/to/image_1.png");
// static String imageUrl_2 = encodeFile("/your/path/to/image_2.png");
// 編集する画像のリストを設定
static List<String> imageUrls = new ArrayList<>();
static {
imageUrls.add(imageUrl_1);
imageUrls.add(imageUrl_2);
}
public static void syncCall() {
// パラメーターを設定
Map<String, Object> parameters = new HashMap<>();
parameters.put("prompt_extend", true);
parameters.put("watermark", false);
parameters.put("seed", "12345");
ImageSynthesisParam param =
ImageSynthesisParam.builder()
.apiKey(apiKey)
.model("wan2.5-i2i-preview")
.prompt("画像 1 の目覚まし時計を、画像 2 のダイニングテーブルの花瓶の隣に置きます。")
.images(imageUrls)
.n(1)
//.size("1280*1280")
.negativePrompt("")
.parameters(parameters)
.build();
ImageSynthesis imageSynthesis = new ImageSynthesis();
ImageSynthesisResult result = null;
try {
System.out.println("---同期呼び出し、しばらくお待ちください----");
result = imageSynthesis.call(param);
} catch (ApiException | NoApiKeyException e){
throw new RuntimeException(e.getMessage());
}
System.out.println(JsonUtils.toJson(result));
}
/**
* ファイルを Base64 文字列にエンコードします。
* @param filePath ファイルパス。
* @return data:{MIME_type};base64,{base64_data} 形式の Base64 文字列。
*/
public static String encodeFile(String filePath) {
Path path = Paths.get(filePath);
if (!Files.exists(path)) {
throw new IllegalArgumentException("ファイルが存在しません: " + filePath);
}
// MIME タイプを検出
String mimeType = null;
try {
mimeType = Files.probeContentType(path);
} catch (IOException e) {
throw new IllegalArgumentException("ファイルタイプを検出できません: " + filePath);
}
if (mimeType == null || !mimeType.startsWith("image/")) {
throw new IllegalArgumentException("サポートされていない、または認識されない画像フォーマットです");
}
// ファイルコンテンツを読み取り、エンコード
byte[] fileBytes = null;
try{
fileBytes = Files.readAllBytes(path);
} catch (IOException e) {
throw new IllegalArgumentException("ファイルコンテンツを読み取れません: " + filePath);
}
String encodedString = Base64.getEncoder().encodeToString(fileBytes);
return "data:" + mimeType + ";base64," + encodedString;
}
public static void main(String[] args) {
syncCall();
}
}レスポンス例
URL の有効期間は 24 時間です。速やかに画像をダウンロードしてください。
{
"request_id": "d362685b-757f-4eac-bab5-xxxxxx",
"output": {
"task_id": "bfa7fc39-3d87-4fa7-b1e6-xxxxxx",
"task_status": "SUCCEEDED",
"results": [
{
"orig_prompt": "画像 1 の目覚まし時計を、画像 2 のダイニングテーブルの花瓶の隣に置きます。",
"actual_prompt": "画像 1 の青い目覚まし時計を、画像 2 のダイニングテーブルの花瓶の右側、テーブルクロスの端近くに置きます。目覚まし時計の正面がカメラを向き、花瓶と平行になるようにします。",
"url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx"
}
],
"task_metrics": {
"TOTAL": 1,
"SUCCEEDED": 1,
"FAILED": 0
}
},
"usage": {
"image_count": 1
}
}非同期呼び出し
この例では、パブリック URL を使用して画像を渡します。
リクエスト例
// Copyright (c) Alibaba, Inc. and its affiliates.
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesis;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisListResult;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisParam;
import com.alibaba.dashscope.aigc.imagesynthesis.ImageSynthesisResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.task.AsyncTaskListParam;
import com.alibaba.dashscope.utils.Constants;
import com.alibaba.dashscope.utils.JsonUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Image2Image {
static {
// 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/api/v1 に置き換えてください
Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
}
// 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください:apiKey="sk-xxx"
// シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーの取得:https://www.alibabacloud.com/help/model-studio/get-api-key
static String apiKey = System.getenv("DASHSCOPE_API_KEY");
//パブリック URL
static String imageUrl_1 = "https://img.alicdn.com/imgextra/i3/O1CN0157XGE51l6iL9441yX_!!6000000004770-49-tps-1104-1472.webp";
static String imageUrl_2 = "https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp";
// 編集する画像のリストを設定
static List<String> imageUrls = new ArrayList<>();
static {
imageUrls.add(imageUrl_1);
imageUrls.add(imageUrl_2);
}
public static void asyncCall() {
// パラメーターを設定
Map<String, Object> parameters = new HashMap<>();
parameters.put("prompt_extend", true);
parameters.put("watermark", false);
parameters.put("seed", "12345");
ImageSynthesisParam param =
ImageSynthesisParam.builder()
.apiKey(apiKey)
.model("wan2.5-i2i-preview")
.prompt("画像 1 の目覚まし時計を、画像 2 のダイニングテーブルの花瓶の隣に置きます。")
.images(imageUrls)
.n(1)
//.size("1280*1280")
.negativePrompt("")
.parameters(parameters)
.build();
ImageSynthesis imageSynthesis = new ImageSynthesis();
ImageSynthesisResult result = null;
try {
System.out.println("---非同期呼び出し、しばらくお待ちください----");
result = imageSynthesis.asyncCall(param);
} catch (ApiException | NoApiKeyException e){
throw new RuntimeException(e.getMessage());
}
System.out.println(JsonUtils.toJson(result));
String taskId = result.getOutput().getTaskId();
System.out.println("taskId=" + taskId);
try {
result = imageSynthesis.wait(taskId, apiKey);
} catch (ApiException | NoApiKeyException e){
throw new RuntimeException(e.getMessage());
}
System.out.println(JsonUtils.toJson(result));
System.out.println(JsonUtils.toJson(result.getOutput()));
}
public static void listTask() throws ApiException, NoApiKeyException {
ImageSynthesis is = new ImageSynthesis();
AsyncTaskListParam param = AsyncTaskListParam.builder().build();
param.setApiKey(apiKey);
ImageSynthesisListResult result = is.list(param);
System.out.println(result);
}
public void fetchTask(String taskId) throws ApiException, NoApiKeyException {
ImageSynthesis is = new ImageSynthesis();
// DASHSCOPE_API_KEY を環境変数として設定している場合、apiKey は空のままにできます。
ImageSynthesisResult result = is.fetch(taskId, apiKey);
System.out.println(result.getOutput());
System.out.println(result.getUsage());
}
public static void main(String[] args) {
asyncCall();
}
}レスポンス例
1. タスク作成リクエストのレスポンス例
{
"request_id": "5dbf9dc5-4f4c-9605-85ea-542f97709ba8",
"output": {
"task_id": "7277e20e-aa01-4709-xxxxxxxx",
"task_status": "PENDING"
}
}2. タスククエリリクエストのレスポンス例
URL の有効期間は 24 時間です。速やかに画像をダウンロードしてください。
{
"request_id": "d362685b-757f-4eac-bab5-xxxxxx",
"output": {
"task_id": "bfa7fc39-3d87-4fa7-b1e6-xxxxxx",
"task_status": "SUCCEEDED",
"results": [
{
"orig_prompt": "画像 1 の目覚まし時計を、画像 2 のダイニングテーブルの花瓶の隣に置きます。",
"actual_prompt": "画像 1 の青い目覚まし時計を、画像 2 のダイニングテーブルの花瓶の右側、テーブルクロスの端近くに置きます。目覚まし時計の正面がカメラを向き、花瓶と平行になるようにします。",
"url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx"
}
],
"task_metrics": {
"TOTAL": 1,
"SUCCEEDED": 1,
"FAILED": 0
}
},
"usage": {
"image_count": 1
}
}制限事項
データ有効期間:タスクの `task_id` と画像 URL は 24 時間のみ保持されます。この期間を過ぎると、クエリやダウンロードはできなくなります。
Content Moderation:入力プロンプト、入力画像、出力画像はすべて Content Moderation の対象となります。非準拠のコンテンツを含むリクエストは、「IPInfringementSuspect」または「DataInspectionFailed」エラーになります。詳細については、「エラーコード」をご参照ください。
ネットワークアクセス構成:画像リンクは Object Storage Service (OSS) に保存されます。セキュリティポリシーにより、ご利用の業務システムが OSS リンクにアクセスできない場合は、以下の OSS ドメイン名をネットワークアクセスのホワイトリストに追加してください。
# OSS ドメイン名リスト dashscope-result-bj.oss-cn-beijing.aliyuncs.com dashscope-result-hz.oss-cn-hangzhou.aliyuncs.com dashscope-result-sh.oss-cn-shanghai.aliyuncs.com dashscope-result-wlcb.oss-cn-wulanchabu.aliyuncs.com dashscope-result-zjk.oss-cn-zhangjiakou.aliyuncs.com dashscope-result-sz.oss-cn-shenzhen.aliyuncs.com dashscope-result-hy.oss-cn-heyuan.aliyuncs.com dashscope-result-cd.oss-cn-chengdu.aliyuncs.com dashscope-result-gz.oss-cn-guangzhou.aliyuncs.com dashscope-result-wlcb-acdr-1.oss-cn-wulanchabu-acdr-1.aliyuncs.com
エラーコード
呼び出しが失敗した場合は、「エラーメッセージ」でトラブルシューティングを行ってください。
よくある質問
Q:一般画像編集 2.1 を使用していましたが、wan2.5 モデルに切り替えるために SDK の呼び出しを調整する必要がありますか?
A:はい、必要です。2 つのバージョンのパラメーター設計は異なります:
一般画像編集 2.1:
promptとfunctionの両方のパラメーターが必要です。一般画像編集 2.5:
promptパラメーターのみが必要です。すべての編集操作をテキスト命令で記述します。functionパラメーターはサポートされなくなり、不要です。
Q:モデルの呼び出し回数を確認するにはどうすればよいですか?
A:モデルの呼び出しが完了してから 1 時間後、モデル監視 (シンガポール)モデル監視 (北京) ページに移動して、呼び出し回数や成功率などのメトリックを確認できます。手順については、「モデルの呼び出し記録を確認するにはどうすればよいですか?」をご参照ください。



