このトピックでは、Wan 汎用画像編集モデルの入力パラメーターと出力パラメーターについて説明します。
このモデルは、中国 (北京) リージョンでのみ利用可能です。このモデルを使用するには、中国 (北京) リージョンの API キーを使用する必要があります。
このモデルは、簡単な命令に基づいてさまざまな画像編集タスクを実行できます。アウトペインティング、ウォーターマーク除去、スタイル変換、画像修復、画像強調などのシナリオに適しています。以下の機能がサポートされています:
画像のスタイル化:グローバルスタイル化とローカルスタイル化。
画像コンテンツ編集:命令ベースの編集 (領域を指定せずに命令に基づいて画像コンテンツを追加または変更)、インペインティング (指定された領域の画像コンテンツを追加、削除、または変更)、テキストとウォーターマークの除去 (中国語と英語)。
画像サイズと解像度の最適化:アウトペインティング (指定された比率に基づいて画像を拡張) と画像の超解像 (高解像度アップスケーリング)。
画像の色処理:画像のカラー化 (白黒またはグレースケール画像をカラー画像に変換)。
参照画像に基づく生成:線画から画像を生成 (入力画像から線画を抽出し、新しい画像を生成) と漫画キャラクター参照に基づく生成。
関連ガイド:画像編集 - Wan 2.1
モデルの概要
モデル | 単価 | レート制限 (Alibaba Cloud アカウントと RAM ユーザーで共有) | |
タスク送信の RPS 制限 | 同時タスク数 | ||
wanx2.1-imageedit | $0.020070/画像 | 2 | 2 |
パフォーマンスショーケース
機能 | 入力画像 | 入力プロンプト | 出力画像 |
グローバルスタイル化 |
| フランスの絵本スタイルに変換 |
|
ローカルスタイル化 |
| 家を木製スタイルに変更 |
|
命令ベースの編集 |
| 彼女の髪を赤に変える |
|
インペインティング | 入力画像
入力マスク画像 (白色の領域がマスク領域です)
| 陶器の花を持つ陶器のウサギ | 出力画像
|
テキストとウォーターマークの除去 |
| 画像からテキストを削除 |
|
アウトペインティング |
| 緑の妖精 |
|
画像の超解像 | ぼやけた画像
| 画像の超解像 | 鮮明な画像
|
画像のカラー化 |
| 青い背景、黄色い葉 |
|
線画から画像を生成 | 入力画像
| ミニマリストな北欧スタイルのリビングルーム | 元の画像から線画を抽出し、新しい画像を生成
|
漫画キャラクター参照から画像を生成 | 入力参照画像 (漫画キャラクター)
| 漫画キャラクターが慎重に顔を出し、部屋の中の輝く青い宝石を覗き込んでいる | 出力画像
|
前提条件
Wan 汎用画像編集 API は、HTTP および DashScope SDK を使用して呼び出すことができます。
呼び出しを行う前に、API キーを取得し、API キーを環境変数として設定してください。
SDK を使用して呼び出しを行うには、DashScope SDK をインストールしてください。SDK は Python と Java で利用できます。
HTTP
画像モデルは処理に時間がかかる場合があります。リクエストのタイムアウトを避けるため、HTTP 呼び出しはモデル結果の非同期取得のみをサポートします。2 つのリクエストを行う必要があります:
タスクを作成してタスク ID を取得:まず、タスクを作成するリクエストを送信します。このリクエストは `task_id` を返します。
タスク ID で結果をクエリ:前のステップで取得したタスク ID を使用して、タスクのステータスと結果をクエリします。タスクが正常に実行された場合、画像 URL が返されます。URL は 24 時間有効です。
タスクを作成すると、タスクはキューに追加され、スケジューリングを待ちます。その後、タスク ID を使用して結果を照会する API を呼び出し、タスクのステータスと結果を取得する必要があります。
汎用画像編集モデルがリクエストを処理するには、約 5〜15 秒かかります。実際の処理時間は、キュー内のタスク数とネットワーク状態によって異なります。
ステップ 1:タスクの作成とタスク ID の取得
POST https://dashscope.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis
リクエストパラメーター | グローバルスタイル化ローカルファイル (base64) の受け渡し次の例は、グローバルスタイル化のために Base64 でパラメーターを渡す方法を示しています。 Base64 エンコードされた文字列は長いため、image_base64 をダウンロードし、コンテンツ全体を データ形式の詳細については、「入力メソッド」をご参照ください。 ローカルスタイル化命令ベースの編集説明:領域を指定せずに、命令に基づいて画像コンテンツを追加または変更します。 インペインティング説明:指定された領域の画像コンテンツを追加、削除、または変更します。 テキストとウォーターマークの除去説明:この機能は、中国語と英語のテキストとウォーターマークの除去をサポートします。 アウトペインティング説明:この機能は、指定された比率に基づいて上下左右方向へのアウトペインティングをサポートします。 画像の超解像説明:この機能は、ぼやけた画像の高解像度アップスケーリングをサポートします。 画像のカラー化説明:白黒またはグレースケール画像をカラー画像に変換します。 線画から画像を生成説明:入力イメージから線画を抽出し、抽出された線画に基づいて新しいイメージを生成します。 漫画キャラクター参照から画像を生成説明: アニメキャラクターのリファレンスを基に、イメージを生成する機能です。 |
リクエストヘッダー | |
Content-Type リクエストのコンテントタイプ。このパラメーターを | |
Authorization リクエストの ID 認証情報。この API は、Model Studio API キーを使用して ID 認証を行います。例:`Bearer sk-xxxx`。 | |
X-DashScope-Async 非同期処理の設定パラメーター。HTTP リクエストは非同期処理のみをサポートします。このパラメーターを 重要 このリクエストヘッダーがない場合、「current user api does not support synchronous calls」というエラーメッセージが返されます。 | |
リクエストボディ | |
model モデル名。例:`wanx2.1-imageedit`。 | |
input プロンプトなどの基本的な入力情報。 | |
parameters 画像編集パラメーター。 |
レスポンスパラメーター | 成功レスポンス`task_id` を保存して、タスクのステータスと結果をクエリします。 エラーレスポンスタスクの作成に失敗しました。詳細については、「エラーメッセージ」を参照して問題を解決してください。 |
output タスクの出力情報。 | |
request_id 一意のリクエスト ID。この ID を使用して問題を追跡およびトラブルシューティングできます。 | |
code 失敗したリクエストのエラーコード。リクエストが成功した場合、このパラメーターは返されません。詳細については、「エラーメッセージ」をご参照ください。 | |
message 失敗したリクエストの詳細情報。リクエストが成功した場合、このパラメーターは返されません。詳細については、「エラーメッセージ」をご参照ください。 |
ステップ 2:タスク ID による結果のクエリ
GET https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}
リクエストパラメーター | タスク結果のクエリ
|
リクエストヘッダー | |
Authorization リクエストの ID 認証情報。この API は、Model Studio API キーを使用して ID 認証を行います。例:`Bearer sk-xxxx`。 | |
パスパラメーター | |
task_id タスク ID。 |
レスポンスパラメーター | タスクの正常な実行タスクステータスや画像 URL などのタスクデータは 24 時間のみ保持され、この期間が過ぎると自動的に消去されます。生成された画像は速やかに保存する必要があります。 タスク実行の失敗タスクが失敗した場合、`task_status` は `FAILED` に設定され、エラーコードとメッセージが提供されます。詳細については、「エラーメッセージ」を参照して問題を解決してください。 部分的に失敗したタスクモデルは 1 つのタスクで複数の画像を生成できます。少なくとも 1 つの画像が正常に生成された場合、タスクステータスは |
output タスクの出力情報。 | |
usage リクエストの使用状況統計。正常に生成された画像のみがカウントされます。 | |
request_id 一意のリクエスト ID。この ID を使用して問題を追跡およびトラブルシューティングできます。 |
DashScope SDK
最新バージョンの DashScope SDK がインストールされていることを確認してください。そうでない場合、エラーが発生する可能性があります。
DashScope SDK は Python と Java で利用できます。
SDK のパラメーター名は、ほとんどが HTTP API のパラメーター名と同じです。パラメーター構造は、各言語の SDK カプセル化に固有です。パラメーターの詳細については、「HTTP 呼び出し」をご参照ください。
画像モデルは処理時間が長いため、基盤となるサービスは非同期です。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 mimetypes
"""
環境要件:
dashscope python SDK >= 1.23.8
SDK のインストール/アップグレード:
pip install -U dashscope
"""
# 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: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 つを選択できます。
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...')
rsp = ImageSynthesis.call(api_key=api_key,
model="wanx2.1-imageedit",
function="description_edit_with_mask",
prompt="A ceramic rabbit holding a ceramic flower",
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
"""
環境要件:
dashscope python SDK >= 1.23.4
SDK のインストール/アップグレード:
pip install -U dashscope
"""
# 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: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="A ceramic rabbit holding a ceramic flower",
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.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 {
// 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: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("---sync call, please wait a moment----");
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("File does not exist: " + filePath);
}
// MIME タイプを検出
String mimeType = null;
try {
mimeType = Files.probeContentType(path);
} catch (IOException e) {
throw new IllegalArgumentException("Cannot detect the file type: " + filePath);
}
if (mimeType == null || !mimeType.startsWith("image/")) {
throw new IllegalArgumentException("Unsupported or unrecognizable image format");
}
// ファイルコンテンツを読み取り、エンコード
byte[] fileBytes = null;
try{
fileBytes = Files.readAllBytes(path);
} catch (IOException e) {
throw new IllegalArgumentException("Cannot read the file content: " + 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.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 {
// 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: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("---async call, please wait a moment----");
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. タスク結果クエリのレスポンス例
`video_url` は 24 時間で有効期限が切れます。速やかにビデオをダウンロードしてください。
{
"request_id": "3d740fc4-a968-9c36-b0e7-xxxxxxxx",
"output": {
"task_id": "34dcf4b0-ed84-441e-91cb-xxxxxxxx",
"task_status": "SUCCEEDED",
"video_url": "https://dashscope-result-hz.oss-cn-hangzhou.aliyuncs.com/aaaa.mp4"
},
"usage": {
"video_count": 1,
"video_duration": 5,
"video_ratio": "standard"
}
}エラーコード
呼び出しが失敗した場合は、「エラーメッセージ」を参照してトラブルシューティングを行ってください。
この API は、以下の特定のエラーコードも返します。
HTTP ステータスコード | code (API エラーコード) | API エラーメッセージ (message) | 説明 |
400 | InvalidParameter | InvalidParameter | リクエストパラメーターが無効です。 |
400 | IPInfringementSuspect | Input data is suspected of being involved in IP infringement. | 入力データ (プロンプトや画像など) に知的財産権侵害の疑いがあります。入力内容を確認し、侵害リスクのあるコンテンツが含まれていないことを確認してください。 |
400 | DataInspectionFailed | Input data may contain inappropriate content. | 入力データ (プロンプトや画像など) に不適切なコンテンツが含まれている可能性があります。入力を修正して再試行してください。 |
500 | InternalError | InternalError | サービスエラーが発生しました。偶発的な発生を除外するために再試行してください。 |
入力画像の説明
値渡し
入力画像は複数の文字列形式で提供できます。以下の表は、各呼び出し方法でサポートされている形式を説明しています。
メソッド | HTTP | Python SDK | Java SDK |
サポートされている入力画像メソッド |
|
|
|
方法 1:パブリック URL を使用
パブリックにアクセス可能な画像 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 および Java SDK でのみサポートされています。
ローカルファイルパスの渡し方のルールについては、「Python SDK」および「Java SDK」をご参照ください。
画像アクセス設定
ドメイン名ホワイトリストの設定:ご利用の業務システムが画像リンクにアクセスできるようにする
生成された画像は Alibaba Cloud OSS に保存されます。各画像には、https://dashscope-result-xx.oss-cn-xxxx.aliyuncs.com/xxx.png のような OSS リンクが割り当てられます。OSS リンクはパブリックアクセスを許可しており、画像を表示またはダウンロードするために使用できます。リンクは 24 時間のみ有効です。
ご利用の業務システムに高いセキュリティ要件があり、Alibaba Cloud 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よくある質問
画像モデルに関する一般的な質問については、「よくある質問」ドキュメントをご参照ください。このドキュメントでは、モデルの課金、リクエスト制限、一般的な API エラーの解決策などのトピックを扱っています。




















