このトピックでは、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
{WorkspaceId} を実際のワークスペース ID に置き換えてください。
リクエストパラメーターリクエストヘッダー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 画像処理パラメーター。 | グローバルスタイル化ローカルファイル (Base64) を渡す次の例は、グローバルスタイル化のために Base64 エンコードされたパラメーターを渡す方法を示しています。 Base64 エンコードされた文字列は長いため、image_base64 をダウンロードし、その内容全体を データ形式の詳細については、「サポートされているフォーマット」をご参照ください。 ローカルスタイル化命令ベースの編集機能の説明:領域を指定せずに、命令のみを使用して画像コンテンツを追加または変更します。 インペインティング機能の説明:指定された領域のコンテンツを追加、削除、または変更します。 テキストウォーターマーク除去機能の説明:中国語と英語のテキストウォーターマークの除去をサポートします。 画像拡張機能の説明:画像を上下左右に比例して拡張することをサポートします。 超解像機能の説明:ぼやけた画像をアップスケールして高解像度化することをサポートします。 カラー化機能の説明:白黒またはグレースケール画像をカラー画像に変換します。 スケッチからの画像生成機能の説明:入力画像からスケッチを抽出し、そのスケッチに基づいて画像を生成します。 アニメキャラクター参照生成機能の説明:参照するアニメキャラクターに基づいて画像を生成することをサポートします。 |
レスポンスパラメーターoutput タスクの出力情報。 request_id トレースとトラブルシューティングのためのユニークなリクエスト識別子。 code エラーコード。失敗したリクエストに対してのみ返されます。「エラーコード」をご参照ください。 message 詳細なエラーメッセージ。失敗したリクエストに対してのみ返されます。「エラーコード」をご参照ください。 | 成功したレスポンス
エラーレスポンスタスクの作成に失敗しました。「エラーコード」をご参照ください。 |
ステップ 2:タスク ID で結果をクエリ
GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id}
{WorkspaceId} を実際のワークスペース ID に置き換えてください。
リクエストパラメーターリクエストヘッダーAuthorization Model Studio API キーでリクエストを認証します。例:Bearer sk-xxxx。 パスパラメーターtask_id タスクの ID。 | タスク結果の照会
|
レスポンスパラメーターoutput タスクの出力情報。 usage 出力情報の統計。成功した結果のみがカウントされます。 request_id トレースとトラブルシューティングのためのユニークなリクエスト識別子。 | タスク成功タスクデータ (タスクステータスと画像 URL) は 24 時間のみ保持され、その後自動的にパージされます。生成された画像は速やかに保存してください。 タスク失敗タスクが失敗すると、 タスクの部分的失敗モデルはタスクごとに複数の画像を生成できます。少なくとも 1 つが成功した場合、タスクステータスは |
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
import mimetypes
import dashscope
from dashscope.v2 import DashScopeError
"""
環境要件:
dashscope python SDK >= 2.0.1
SDK のインストール/アップグレード:
pip install -U dashscope
"""
# 以下の設定は中国 (北京) リージョン用です。呼び出し時に {WorkspaceId} を実際のワークスペース ID に置き換えてください。region の値はリージョンによって異なります。
client = dashscope.Client(
# 環境変数が設定されていない場合は、次の行を api_key="sk-xxx" に置き換えてください
# API キーはリージョンによって異なります。API キーの取得: https://www.alibabacloud.com/help/ja/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
workspace="{WorkspaceId}",
region="cn-beijing",
)
# --- ヘルパー関数: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 を使用
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('please wait...')
try:
# generate はワンステップ呼び出し(タスクを送信して完了まで待機)で、完了済みの Job を返します
job = client.images.generate(
model="wanx2.1-imageedit",
function="description_edit_with_mask",
prompt="A ceramic rabbit holding a ceramic flower",
# mask_image_url/base_image_url は編集専用の入力フィールドであり、extra_input 経由でリクエストの input セクションに渡します
extra_input={
"mask_image_url": mask_image_url,
"base_image_url": base_image_url,
},
n=1,
)
print('response: %s' % job)
for url in job.image_urls:
print("---------------------------")
print(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_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
import dashscope
from dashscope.v2 import DashScopeError
"""
環境要件:
dashscope python SDK >= 2.0.1
SDK のインストール/アップグレード:
pip install -U dashscope
"""
# 以下の設定は中国 (北京) リージョン用です。呼び出し時に {WorkspaceId} を実際のワークスペース ID に置き換えてください。region の値はリージョンによって異なります。
client = dashscope.Client(
# 環境変数が設定されていない場合は、次の行を api_key="sk-xxx" に置き換えてください
# API キーはリージョンによって異なります。API キーの取得: https://www.alibabacloud.com/help/ja/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
workspace="{WorkspaceId}",
region="cn-beijing",
)
# パブリック画像 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():
try:
# 非同期呼び出し(タスクを送信)、task_id を含む Job オブジェクトを返します
job = client.images.jobs.create(
model="wanx2.1-imageedit",
function="description_edit_with_mask",
prompt="A ceramic rabbit holding a ceramic flower",
# mask_image_url/base_image_url は編集専用の入力フィールドであり、extra_input 経由でリクエストの input セクションに渡します
extra_input={
"mask_image_url": mask_image_url,
"base_image_url": base_image_url,
},
n=1,
)
print(job)
print("task_id: %s" % job.task_id)
# 非同期タスク情報を取得
snapshot = client.images.jobs.fetch(job.task_id)
print(snapshot.status) # タスクのステータスを確認
# 非同期タスクが終了するのを待つ(指数バックオフでポーリング、デフォルトの合計予算は 24 時間。FAILED のタスクは DashScopeError をスローします)
done = client.images.jobs.wait(job.task_id)
print(done)
for url in done.image_urls:
print("---------------------------")
print(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_async_call_imageedit()
レスポンス例
- タスク作成のレスポンス例
{
"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
}
- タスク結果クエリのレスポンス例
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 つを選択します。
*
* 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("A ceramic rabbit holding a ceramic flower")
.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("A ceramic rabbit holding a ceramic flower")
.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();
}
}
レスポンス例
- タスク作成のレスポンス例
{
"request_id": "5dbf9dc5-4f4c-9605-85ea-xxxxxxxx",
"output": {
"task_id": "7277e20e-aa01-4709-xxxxxxxx",
"task_status": "PENDING"
}
}
- タスク結果クエリのレスポンス例
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 |
|---|---|---|---|
サポートされている入力画像メソッド |
|
|
|
- 一般にアクセス可能な画像アドレスを提供します。HTTP または HTTPS プロトコルがサポートされています。
- 例:
https://xxxx/img.png
ローカル画像ファイルを 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 文字列はデモンストレーションのために切り捨てられています。実際の使用では、完全なエンコード文字列を渡してください。
- HTTP はローカルファイルパスをサポートしていません。Python SDK と Java SDK のみがこの方法をサポートしています。
- ローカルファイルパスのルールについては、「Python SDK」および「Java SDK」をご参照ください。
よくある質問
画像モデルに関する一般的な質問 (モデルの課金、レート制限ルール、頻繁に発生する API エラーなど) については、「画像 API よくある質問」をご参照ください。




















