このトピックでは、Wan - 一般的な画像編集モデルの入出力パラメーターについて説明します。
このドキュメントは 中国 (北京) リージョン専用です。モデルを使用するには、中国 (北京) リージョンの API キー を使用してください。
このモデルは、簡単な命令を使用して、さまざまな画像編集タスク (画像拡張、ウォーターマーク除去、スタイル変換、画像インペインティング、イメージエンハンスメント) を実行します。現在、以下の特徴がサポートされています:
-
画像のスタイル化:グローバルおよびローカルのスタイル化。
-
画像コンテンツの編集:命令ベースの編集 (領域を指定せずに命令で画像コンテンツを追加または変更)、画像インペインティング (指定された領域のコンテンツを追加、削除、または変更)、テキストウォーターマークの除去 (中国語と英語)。
-
画像サイズと解像度の最適化:画像拡張 (比率による拡張) と超解像 (高解像度への向上)。
-
画像の色処理:カラー化 (白黒またはグレースケール画像をカラーに変換)。
-
参照画像に基づく生成:スケッチからの画像生成 (入力画像からスケッチを抽出し、そのスケッチに基づいて画像を生成) とカートゥーンキャラクターの参照生成。
関連ガイド:画像編集 - Wan2.1
モデル概要
|
モデル |
価格 |
レート制限 (ルートアカウントと RAM ユーザーで共有) |
|
|
タスク送信 RPS |
同時タスク |
||
|
wanx2.1-imageedit |
$0.020070/画像 |
2 |
2 |
モデル効果
|
特徴 |
入力画像 |
入力プロンプト |
出力画像 |
|
グローバルスタイル化 |
|
フランスの絵本スタイルに変換 |
|
|
ローカルスタイル化 |
|
家を木製スタイルに変更する。 |
|
|
命令ベースの編集 |
|
彼女の髪を赤色に変える。 |
|
|
画像インペインティング |
入力画像
入力マスク画像 (白はマスク領域)
|
陶器の花を持つ陶器のウサギ。 |
出力画像
|
|
テキストウォーターマークの除去 |
|
画像からテキストを削除する。 |
|
|
画像拡張 |
|
緑の妖精。 |
|
|
超解像 |
ぼやけた画像
|
超解像。 |
鮮明な画像
|
|
カラー化 |
|
青い背景、黄色い葉。 |
|
|
スケッチからの画像生成 |
入力画像
|
ミニマリストな北欧スタイルのリビングルーム。 |
元の画像からスケッチを抽出し、新しい画像を生成
|
|
カートゥーンキャラクターの参照生成 |
入力参照画像 (カートゥーンキャラクター)
|
カートゥーンキャラクターが慎重に顔を出し、部屋の中のきらめく青い宝石を見ている。 |
出力画像
|
前提条件
HTTP または DashScope SDK を使用して、Wan - 一般的な画像編集 API を呼び出します。
呼び出しを行う前に、API キーを取得し、API キーを環境変数としてエクスポートしてください。
SDK を使用して API を呼び出すには、DashScope SDK をインストールしてください。SDK は Python と Java で利用できます。
HTTP
画像モデルは処理に時間がかかります。タイムアウトを防ぐため、HTTP 呼び出しは非同期の結果取得のみをサポートします。2 つのリクエストが必要です:
-
タスクを作成してタスク ID を取得:タスクを作成するリクエストを送信します。レスポンスはタスク ID (
task_id) を返します。 -
タスク ID を使用して結果をクエリ:前のステップで取得したタスク ID を使用して、タスクのステータスと結果をクエリします。タスクが成功した場合、レスポンスは 24 時間有効な画像 URL を返します。
作成後、タスクはスケジューリングのためのキューに入ります。クエリ API を呼び出して、タスクのステータスと結果を取得してください。
一般的な画像編集モデルは、リクエストの処理に約 5〜15 秒かかります。実際の時間は、キュー内のタスク数とネットワーク条件によって異なります。結果が出るまでしばらくお待ちください。
ステップ 1:タスクを作成してタスク ID を取得
POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis
リクエストパラメーター |
グローバルスタイル化
ローカルファイル (Base64) を渡す次の例は、グローバルスタイル化のために Base64 エンコードされたパラメーターを渡す方法を示しています。 Base64 エンコードされた文字列は長いため、image_base64 をダウンロードし、その内容全体を データ形式の詳細については、「サポートされている形式」をご参照ください。
ローカルスタイル化
命令ベースの編集特徴の説明:領域を指定せずに、命令のみを使用して画像コンテンツを追加または変更します。
画像インペインティング特徴の説明:指定された領域のコンテンツを追加、削除、または変更します。
テキストウォーターマークの除去特徴の説明:中国語と英語のテキストウォーターマークの除去をサポートします。
画像拡張特徴の説明:画像を上下左右に比例して拡張することをサポートします。
超解像特徴の説明:ぼやけた画像をアップスケールして高解像度にすることをサポートします。
カラー化特徴の説明:白黒またはグレースケール画像をカラー画像に変換します。
スケッチからの画像生成特徴の説明:入力画像からスケッチを抽出し、そのスケッチに基づいて画像を生成します。
カートゥーンキャラクターの参照生成特徴の説明:参照カートゥーンキャラクターに基づいて画像を生成することをサポートします。
|
リクエストヘッダー |
|
|
Content-Type リクエストのコンテンツタイプは |
|
|
Authorization Model Studio API キーでリクエストを認証します。例:Bearer sk-xxxx。 |
|
|
X-DashScope-Async 非同期処理を有効にします。HTTP リクエストは非同期呼び出しのみをサポートします。 重要
このリクエストヘッダーがない場合、「current user api does not support synchronous calls」というエラーが返されます。 |
|
リクエストボディ |
|
|
model モデル名、例:wanx2.1-imageedit。 |
|
|
input 基本的な入力情報 (プロンプト)。 |
|
|
parameters 画像処理パラメーター。 |
レスポンスパラメーター |
成功レスポンス
エラーレスポンスタスクの作成に失敗しました。「エラーコード」をご参照ください。
|
|
output タスクの出力情報。 |
|
|
request_id 追跡とトラブルシューティングのための一意のリクエスト識別子。 |
|
|
code エラーコード。失敗したリクエストに対してのみ返されます。「エラーコード」をご参照ください。 |
|
|
message 詳細なエラーメッセージ。失敗したリクエストに対してのみ返されます。「エラーコード」をご参照ください。 |
ステップ 2:タスク ID で結果をクエリ
GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id}
リクエストパラメーター |
タスク結果のクエリ
|
リクエストヘッダー |
|
|
Authorization Model Studio API キーでリクエストを認証します。例:Bearer sk-xxxx。 |
|
パスパラメーター |
|
|
task_id タスクの ID。 |
レスポンスパラメーター |
タスク成功タスクデータ (タスクステータスと画像 URL) は 24 時間のみ保持され、その後自動的に消去されます。生成された画像は速やかに保存してください。 タスク失敗タスクが失敗すると、
タスク一部失敗モデルはタスクごとに複数の画像を生成できます。少なくとも 1 つが成功した場合、タスクステータスは
|
|
output タスクの出力情報。 |
|
|
usage 出力情報の統計。成功した結果のみがカウントされます。 |
|
|
request_id 追跡とトラブルシューティングのための一意のリクエスト識別子。 |
DashScope SDK
まず、最新バージョンの DashScope SDK がインストールされていることを確認してください。そうでない場合、実行時エラーが発生する可能性があります。
DashScope SDK は現在、Python と Java をサポートしています。
SDK のパラメーター名は、HTTP API のものとほぼ一致しています。パラメーター構造は、言語ごとに SDK のカプセル化に依存します。パラメーターの説明については、「万相-図生動画-初フレームベース (2.1-2.6)」をご参照ください。
動画モデルの処理には時間がかかるため、サービスは非同期アプローチを使用します。SDK は、同期呼び出しと非同期呼び出しの両方をサポートするラッパーを提供します。
一般的な画像編集モデルは、リクエストの処理に約 5〜15 秒かかります。実際の時間は、キュー内のタスク数とネットワーク条件によって異なります。結果が出るまでしばらくお待ちください。
Python SDK
Python SDK を使用して画像ファイルを処理する場合、次の 3 つの方法のいずれかを使用して画像を入力します。シナリオに最も適した方法を選択してください。
-
公開 URL:HTTP または HTTPS プロトコルを使用する、公開アクセス可能な画像 URL。
-
Base64 エンコード:
data:{MIME_type};base64,{base64_data}形式で Base64 エンコードされたファイル文字列を渡します。 -
ローカルファイルパス:絶対パスと相対パスの両方をサポートします。有効なファイルパス形式については、次の表をご参照ください。
|
システム |
渡すファイルパス |
例 (絶対パス) |
例 (相対パス) |
|
Linux または macOS |
file://{ファイルの絶対パスまたは相対パス} |
file:///home/images/test.png |
file://./images/test.png |
|
Windows |
file://D:/images/test.png |
file://./images/test.png |
サンプルコード
コードを呼び出す前に、DashScope Python SDK を最新バージョンにインストールまたはアップグレードしてください:pip install -U dashscope。「SDK のインストール」をご参照ください。
同期呼び出し
この例では、同期呼び出しを示し、公開 URL、Base64 エンコーディング、ローカルファイルパスの 3 つの画像入力方法をサポートします。
リクエスト例
import base64
import os
from http import HTTPStatus
from dashscope import ImageSynthesis
import dashscope
import mimetypes
"""
環境要件:
dashscope python SDK >= 1.23.8
SDK のインストール/アップグレード:
pip install -U dashscope
"""
dashscope.base_http_api_url = "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1"
# 環境変数が設定されていない場合は、次の行を置き換えてください:api_key="sk-xxx"
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("サポートされていない、または認識されない画像形式です")
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. 公開 URL を使用 - 公開アクセス可能な画像に適しています。
2. ローカルファイルを使用 - ローカルでの開発やテストに適しています。
3. Base64 エンコーディングを使用 - 非公開画像や暗号化された転送が必要なシナリオに適しています。
"""
# [方法 1] 公開画像 URL を使用
mask_image_url = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png"
base_image_url = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg"
# [方法 2] ローカルファイルを使用 (絶対パスと相対パスをサポート)
# 形式要件:file:// + ファイルパス
# 例 (絶対パス):
# mask_image_url = "file://" + "/path/to/your/mask_image.png" # Linux/macOS
# base_image_url = "file://" + "C:/path/to/your/base_image.jpeg" # Windows
# 例 (相対パス):
# mask_image_url = "file://" + "./mask_image.png" # 実際のパスに基づく
# base_image_url = "file://" + "./base_image.jpeg" # 実際のパスに基づく
# [方法 3] Base64 エンコードされた画像を使用
# mask_image_url = encode_file("./mask_image.png") # 実際のパスに基づく
# base_image_url = encode_file("./base_image.jpeg") # 実際のパスに基づく
def sample_sync_call_imageedit():
print('しばらくお待ちください...')
rsp = ImageSynthesis.call(api_key=api_key,
model="wanx2.1-imageedit",
function="description_edit_with_mask",
prompt="陶器の花を持つ陶器のウサギ",
mask_image_url=mask_image_url,
base_image_url=base_image_url,
n=1)
assert rsp.status_code == HTTPStatus.OK
print('response: %s' % rsp)
if rsp.status_code == HTTPStatus.OK:
for result in rsp.output.results:
print("---------------------------")
print(result.url)
else:
print('sync_call Failed, status_code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
if __name__ == '__main__':
sample_sync_call_imageedit()
レスポンス例
URL は 24 時間有効です。速やかに画像をダウンロードしてください。
{
"status_code": 200,
"request_id": "dc41682c-4e4a-9010-bc6f-xxxxxx",
"code": null,
"message": "",
"output": {
"task_id": "6e319d88-a07a-420c-9493-xxxxxx",
"task_status": "SUCCEEDED",
"results": [
{
"url": "https://dashscope-result-wlcb-acdr-1.oss-cn-wulanchabu-acdr-1.aliyuncs.com/xxx.png?xxxxxx"
}
],
"submit_time": "2025-05-26 14:58:27.320",
"scheduled_time": "2025-05-26 14:58:27.339",
"end_time": "2025-05-26 14:58:39.170",
"task_metrics": {
"TOTAL": 1,
"SUCCEEDED": 1,
"FAILED": 0
}
},
"usage": {
"image_count": 1
}
}
非同期呼び出し
この例では、非同期呼び出しの方法のみを示します。
リクエスト例
import os
from http import HTTPStatus
from dashscope import ImageSynthesis
import dashscope
"""
環境要件:
dashscope python SDK >= 1.23.4
SDK のインストール/アップグレード:
pip install -U dashscope
"""
dashscope.base_http_api_url = "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1"
# 環境変数が設定されていない場合は、次の行を置き換えてください:api_key="sk-xxx"
api_key = os.getenv("DASHSCOPE_API_KEY")
# 公開画像 URL を使用
mask_image_url = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png"
base_image_url = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg"
def sample_async_call_imageedit():
# 非同期呼び出し、task_id を返す
rsp = ImageSynthesis.async_call(api_key=api_key,
model="wanx2.1-imageedit",
function="description_edit_with_mask",
prompt="陶器の花を持つ陶器のウサギ",
mask_image_url=mask_image_url,
base_image_url=base_image_url,
n=1)
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 = ImageSynthesis.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 = ImageSynthesis.wait(rsp)
print(rsp)
if rsp.status_code == HTTPStatus.OK:
print(rsp.output)
for result in rsp.output.results:
print("---------------------------")
print(result.url)
else:
print('Failed, status_code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
if __name__ == '__main__':
sample_async_call_imageedit()
レスポンス例
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. タスク結果クエリのレスポンス例
URL は 24 時間有効です。速やかに画像をダウンロードしてください。
{
"status_code": 200,
"request_id": "dc41682c-4e4a-9010-bc6f-xxxxxx",
"code": null,
"message": "",
"output": {
"task_id": "6e319d88-a07a-420c-9493-xxxxxx",
"task_status": "SUCCEEDED",
"results": [
{
"url": "https://dashscope-result-wlcb-acdr-1.oss-cn-wulanchabu-acdr-1.aliyuncs.com/xxx.png?Expires=17xxxxxx"
}
],
"submit_time": "2025-05-26 14:58:27.320",
"scheduled_time": "2025-05-26 14:58:27.339",
"end_time": "2025-05-26 14:58:39.170",
"task_metrics": {
"TOTAL": 1,
"SUCCEEDED": 1,
"FAILED": 0
}
},
"usage": {
"image_count": 1
}
}
Java SDK
Java SDK を使用して画像ファイルを処理する場合、次の 3 つの方法のいずれかを使用して画像を入力します。シナリオに最も適した方法を選択してください。
-
公開 URL:HTTP または HTTPS プロトコルを使用する、公開アクセス可能な画像 URL。
-
Base64 エンコード:
data:{MIME_type};base64,{base64_data}形式で Base64 エンコードされたファイル文字列を渡します。 -
ローカルファイルパス:絶対パスのみがサポートされています。有効なファイルパス形式については、次の表をご参照ください。
|
システム |
渡すファイルパス |
例 |
|
Linux または macOS |
file://{ファイルの絶対パス} |
file:///home/images/test.png |
|
Windows |
file:///{ファイルの絶対パス} |
file:///D:/images/test.png |
サンプルコード
コードを呼び出す前に、DashScope Java SDK を最新バージョンにインストールまたはアップグレードしてください。「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.Base64;
import java.util.HashMap;
import java.util.Map;
/**
* 環境要件
* dashscope java SDK >= 2.20.9
* Maven 依存関係の更新:
* https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java
*/
public class ImageEditSync {
static {Constants.baseHttpApiUrl="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1";}
// 環境変数が設定されていない場合は、次の行を置き換えてください:apiKey="sk-xxx"
static String apiKey = System.getenv("DASHSCOPE_API_KEY");
/**
* 画像入力方法:次の 3 つのいずれかを選択してください。
*
* 1. 公開 URL を使用 - 公開アクセス可能な画像に適しています。
* 2. ローカルファイルを使用 - ローカルでの開発やテストに適しています。
* 3. Base64 エンコーディングを使用 - 非公開画像や暗号化された転送が必要なシナリオに適しています。
*/
//[方法 1] 公開 URL
static String maskImageUrl = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png";
static String baseImageUrl = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg";
//[方法 2] ローカルファイルパス (file://+絶対パス または file:///+絶対パス)
// static String maskImageUrl = "file://" + "/your/path/to/mask_image.png"; // Linux/macOS
// static String baseImageUrl = "file:///" + "C:/your/path/to/base_image.png"; // Windows
//[方法 3] Base64 エンコーディング
// static String maskImageUrl = encodeFile("/your/path/to/mask_image.png");
// static String baseImageUrl = encodeFile("/your/path/to/base_image.png");
public static void syncCall() {
// parameters パラメーターを設定
Map<String, Object> parameters = new HashMap<>();
parameters.put("prompt_extend", true);
ImageSynthesisParam param =
ImageSynthesisParam.builder()
.apiKey(apiKey)
.model("wanx2.1-imageedit")
.function(ImageSynthesis.ImageEditFunction.DESCRIPTION_EDIT_WITH_MASK)
.prompt("陶器の花を持つ陶器のウサギ")
.maskImageUrl(maskImageUrl)
.baseImageUrl(baseImageUrl)
.n(1)
.size("1024*1024")
.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": "bf6c6361-f0fc-949c-9d60-xxxxxx",
"output": {
"task_id": "958db858-153b-4c81-b243-xxxxxx",
"task_status": "SUCCEEDED",
"results": [
{
"url": "https://dashscope-result-wlcb-acdr-1.oss-cn-wulanchabu-acdr-1.aliyuncs.com/xxx.png?xxxxxx"
}
],
"task_metrics": {
"TOTAL": 1,
"SUCCEEDED": 1,
"FAILED": 0
}
},
"usage": {
"image_count": 1
}
}
非同期呼び出し
この例では、非同期呼び出しの方法のみを示します。
リクエスト例
// 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.HashMap;
import java.util.Map;
/**
* 環境要件
* dashscope java SDK >= 2.20.1
* Maven 依存関係の更新:
* https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java
*/
public class ImageEditAsync {
static {Constants.baseHttpApiUrl="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1";}
// 環境変数が設定されていない場合は、次の行を置き換えてください:apiKey="sk-xxx"
static String apiKey = System.getenv("DASHSCOPE_API_KEY");
//[方法 1] 公開 URL
static String maskImageUrl = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3_mask.png";
static String baseImageUrl = "http://wanx.alicdn.com/material/20250318/description_edit_with_mask_3.jpeg";
public static void asyncCall() {
// parameters パラメーターを設定
Map<String, Object> parameters = new HashMap<>();
parameters.put("prompt_extend", true);
ImageSynthesisParam param =
ImageSynthesisParam.builder()
.apiKey(apiKey)
.model("wanx2.1-imageedit")
.function(ImageSynthesis.ImageEditFunction.DESCRIPTION_EDIT_WITH_MASK)
.prompt("陶器の花を持つ陶器のウサギ")
.maskImageUrl(maskImageUrl)
.baseImageUrl(baseImageUrl)
.n(1)
.size("1024*1024")
.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-xxxxxxxx",
"output": {
"task_id": "7277e20e-aa01-4709-xxxxxxxx",
"task_status": "PENDING"
}
}
2. タスク結果クエリのレスポンス例
URL は 24 時間有効です。速やかに画像をダウンロードしてください。
{
"request_id": "3d740fc4-a968-9c36-b0e7-xxxxxxxx",
"output": {
"task_id": "34dcf4b0-ed84-441e-91cb-xxxxxxxx",
"task_status": "SUCCEEDED",
"results": [
{
"url": "https://dashscope-result-hz.oss-cn-hangzhou.aliyuncs.com/xxx.png"
}
],
"submit_time": "2025-02-21 17:56:31.786",
"scheduled_time": "2025-02-21 17:56:31.821",
"end_time": "2025-02-21 17:56:42.530",
"task_metrics": {
"TOTAL": 1,
"SUCCEEDED": 1,
"FAILED": 0
}
},
"usage": {
"image_count": 1
}
}
エラーコード
モデルの呼び出しが失敗し、エラーメッセージが返された場合は、「エラーコード」を参照して解決してください。
この API には、次の表に示す特定のステータスコードもあります。
|
HTTP ステータスコード |
API エラーコード (code) |
API エラーメッセージ (message) |
説明 |
|
400 |
InvalidParameter |
InvalidParameter |
リクエストパラメーターが無効です。 |
|
400 |
IPInfringementSuspect |
入力データに IP 侵害の疑いがあります。 |
入力データ (プロンプトや画像など) に知的財産権侵害の疑いがあります。入力内容を確認し、侵害リスクのあるコンテンツが含まれていないことを確認してください。 |
|
400 |
DataInspectionFailed |
入力データに不適切なコンテンツが含まれている可能性があります。 |
入力データ (プロンプトや画像など) に不適切なコンテンツが含まれている可能性があります。入力を変更して再試行してください。 |
|
500 |
InternalError |
InternalError |
サービスが異常です。一時的な問題を除外するために再試行してください。 |
入力画像の形式
サポートされている形式
入力画像は、次の表に示すように、複数の文字列形式をサポートしています。
|
呼び出しメソッド |
HTTP |
Python SDK |
Java SDK |
|
サポートされている入力画像メソッド |
|
|
|
方法 1:公開 URL を使用
-
公開アクセス可能な画像アドレスを提供します。HTTP または HTTPS プロトコルがサポートされています。
-
例:
https://xxxx/img.png
方法 2:Base64 エンコーディングを使用
ローカル画像ファイルを Base64 文字列に変換し、data:{MIME_type};base64,{base64_data} の形式に連結します。
-
変換コードについては、「サンプルコード」をご参照ください
-
{MIME_type}:画像のメディアタイプ。ファイル形式と一致する必要があります
-
{base64_data}:画像ファイルの Base64 エンコードされた文字列
-
MIME タイプのリファレンス:
画像形式
MIME タイプ
JPEG
image/jpeg
JPG
image/jpeg
PNG
image/png
BMP
image/bmp
TIFF
image/tiff
WEBP
image/webp
-
例:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABDg......注:上記の Base64 文字列はデモンストレーションのために切り捨てられています。実際の使用では、完全なエンコードされた文字列を渡してください。
方法 3:ローカルファイルパスを使用
-
HTTP はローカルファイルパスをサポートしていません。Python SDK と Java SDK のみがこの方法をサポートしています。
-
ローカルファイルパスのルールについては、「Python SDK」と「Java SDK」をご参照ください。
よくある質問
画像モデルに関する一般的な質問 (モデルの課金、レート制限ルール、頻繁な API エラー) については、「よくある質問」をご参照ください。




















