Wan text-to-image モデルは、テキストから画像を生成し、さまざまな芸術的スタイルとリアルな写真効果をサポートして、多様な創造的ニーズに応えます。
クイックリンク:オンラインで試す (シンガポール | バージニア | 北京) | Wan 公式ウェブサイト
Wan 公式ウェブサイトの機能は、API の機能と異なる場合があります。このドキュメントでは、API の実際の機能について説明し、それに応じて更新されます。
前提条件
呼び出しを行う前に、API キーを取得し、API キーを環境変数として設定してください。SDK を使用して呼び出しを行うには、DashScope SDK をインストールします。
シンガポール、バージニア、北京の各リージョンには、それぞれ別の API キーとリクエストエンドポイントがあります。これらを相互に使用しないでください。リージョンをまたいだ呼び出しは、認証の失敗やサービスエラーを引き起こします。詳細については、「リージョンとデプロイメントモードの選択」をご参照ください。
HTTP 同期呼び出し (wan2.6)
このセクションの API は新しいプロトコルを使用し、wan2.6 モデルのみをサポートします。
1 回のリクエストで結果を取得できます。このプロセスはシンプルで、ほとんどのシナリオで推奨されます。
シンガポール:POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
バージニア:POST https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
北京:POST https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
リクエストパラメーター | Text-to-image |
リクエストヘッダー | |
Content-Type リクエストのコンテンツタイプです。このパラメーターを | |
Authorization 認証情報です。この API は Model Studio API キーを使用して認証します。例:`Bearer sk-xxxx`。 | |
リクエストボディ | |
model モデル名です。例:wan2.6-t2i。 説明 wan2.5 およびそれ以前のモデルでの HTTP 呼び出しについては、「HTTP 非同期呼び出し」をご参照ください。 | |
input 基本的な入力情報です。 | |
parameters 画像編集パラメーターです。 |
レスポンスパラメーター | タスク成功タスクステータスや画像 URL などのタスクデータは 24 時間のみ保持され、その後自動的に消去されます。生成された画像は速やかに保存する必要があります。 タスクの異常実行タスクが失敗した場合、エラーに関する情報が返されます。code および message フィールドはエラーの原因を示します。エラーを解決するには、「エラーメッセージ」をご参照ください。 |
output タスクの出力情報です。 | |
usage 出力の統計情報です。成功した結果のみがカウントされます。 | |
request_id 一意のリクエスト ID です。この ID を使用して問題を追跡し、トラブルシューティングを行うことができます。 | |
code エラーコードです。このパラメーターはリクエストが失敗した場合にのみ返されます。詳細については、「エラーメッセージ」をご参照ください。 | |
message 詳細なエラーメッセージです。このパラメーターはリクエストが失敗した場合にのみ返されます。詳細については、「エラーメッセージ」をご参照ください。 |
HTTP 非同期呼び出し (wan2.6)
このセクションの API は新しいプロトコルを使用し、wan2.6 モデルのみをサポートします。
この方法は、タイムアウトに敏感なシナリオに適しています。プロセスには、タスクを作成してから結果をポーリングするという 2 つのコアステップが含まれます。手順は次のとおりです:
ステップ 1:タスクを作成してタスク ID を取得する
シンガポール:POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/image-generation/generation
バージニア:POST https://dashscope-us.aliyuncs.com/api/v1/services/aigc/image-generation/generation
北京:POST https://dashscope.aliyuncs.com/api/v1/services/aigc/image-generation/generation
タスクが作成された後、返された
task_idを使用して結果をクエリします。`task_id` は 24 時間有効です。重複したタスクを作成しないでください。代わりに、ポーリングを使用して結果を取得してください。
リクエストパラメーター | Text-to-image |
リクエストヘッダー | |
Content-Type リクエストのコンテンツタイプです。このパラメーターを | |
Authorization 認証情報です。この API は Model Studio API キーを使用して認証します。例:`Bearer sk-xxxx`。 | |
X-DashScope-Async このパラメーターは非同期処理を設定するために使用されます。HTTP リクエストは非同期処理のみをサポートするため、このパラメーターを 重要 このリクエストヘッダーを含めない場合、「current user api does not support synchronous calls」というエラーメッセージが返されます。 | |
リクエストボディ | |
model モデル名です。例:wan2.6-t2i。 説明 wan2.5 およびそれ以前のモデルでの HTTP 呼び出しについては、「HTTP 非同期呼び出し」をご参照ください。 | |
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-us.aliyuncs.com/api/v1/tasks/{task_id}
北京:GET https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}
ポーリングの提案:画像生成には数分かかることがあります。10 秒などの妥当なクエリ間隔でポーリングメカニズムを使用して結果を取得することを推奨します。
タスクステータスの遷移:PENDING → RUNNING → SUCCEEDED または FAILED。
結果 URL:タスクが成功すると、画像 URL が返されます。URL は 24 時間有効です。URL を取得したら、すぐに画像をダウンロードし、Object Storage Service (OSS) などの永続的なストレージサービスに保存する必要があります。
リクエストパラメーター | タスク結果のクエリ
|
リクエストヘッダー | |
Authorization 認証情報です。この API は Model Studio API キーを使用して認証します。例:`Bearer sk-xxxx`。 | |
URL パスパラメーター | |
task_id タスク ID です。 |
レスポンスパラメーター | タスク成功タスクステータスや画像 URL などのタスクデータは 24 時間のみ保持され、その後自動的に消去されます。生成された画像は速やかに保存する必要があります。 タスク異常何らかの理由でタスクの実行に失敗した場合、関連情報が返されます。code および message フィールドはエラーの原因を示します。詳細については、「エラーメッセージ」を参照して問題を解決してください。 |
output タスクの出力情報です。 | |
usage 出力の統計情報です。成功した結果のみがカウントされます。 | |
request_id 一意のリクエスト ID です。この ID を使用して問題を追跡し、トラブルシューティングを行うことができます。 | |
code エラーコードです。このパラメーターはリクエストが失敗した場合にのみ返されます。詳細については、「エラーメッセージ」をご参照ください。 | |
message 詳細なエラーメッセージです。このパラメーターはリクエストが失敗した場合にのみ返されます。詳細については、「エラーメッセージ」をご参照ください。 |
HTTP 非同期呼び出し (wan2.5 およびそれ以前のモデル)
この API は古いプロトコルを使用し、wan2.5 およびそれ以前のモデルのみをサポートします。
text-to-image タスクは時間がかかり、通常 1〜2 分かかるため、API は非同期呼び出しを使用します。プロセスには、タスクを作成してから結果をポーリングするという 2 つのコアステップが含まれます。手順は次のとおりです:
実際の所要時間は、キュー内のタスク数とサービスの実行状況によって異なります。結果を取得するまでしばらくお待ちください。
ステップ 1:タスクを作成してタスク ID を取得する
シンガポール:POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text2image/image-synthesis
北京:POST https://dashscope.aliyuncs.com/api/v1/services/aigc/text2image/image-synthesis
タスクが作成された後、返された
task_idを使用して結果をクエリします。`task_id` は 24 時間有効です。重複したタスクを作成しないでください。代わりに、ポーリングを使用して結果を取得してください。
リクエストパラメーター | Text-to-imageシンガポールリージョンと北京リージョンの API キーは異なります。詳細については、「API キーの取得と設定 以下の URL はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、URL を次のものに置き換えてください:https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis Text-to-image (ネガティブプロンプト使用)negative_prompt パラメーターを使用して、生成される画像に「person」要素が表示されないようにします。 シンガポールリージョンと北京リージョンの API キーは異なります。詳細については、「API キーの取得と設定 以下の URL はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、URL を次のものに置き換えてください:https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis |
リクエストヘッダー | |
Content-Type リクエストのコンテンツタイプです。このパラメーターを | |
Authorization 認証情報です。この API は Model Studio API キーを使用して認証します。例:`Bearer sk-xxxx`。 | |
X-DashScope-Async このパラメーターは非同期処理を設定するために使用されます。HTTP リクエストは非同期処理のみをサポートするため、このパラメーターを 重要 このリクエストヘッダーを含めない場合、「current user api does not support synchronous calls」というエラーメッセージが返されます。 | |
リクエストボディ | |
model モデル名です。text-to-image モデルについては、「モデルリスト」をご参照ください。 例:wan2.5-t2i-preview。 説明 wan2.6 モデルの HTTP 呼び出しについては、「HTTP 同期呼び出し」および「HTTP 非同期呼び出し」をご参照ください。 | |
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。
結果 URL:タスクが成功すると、画像 URL が返されます。URL は 24 時間有効です。URL を取得したら、すぐに画像をダウンロードし、Object Storage Service (OSS) などの永続的なストレージサービスに保存する必要があります。
リクエストパラメーター | タスク結果のクエリ
API キーはリージョン固有です。API キーを取得してください。 北京リージョンのモデルの場合、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 Python SDK
SDK のパラメーター名は、ほとんどが HTTP API のものと一致しています。パラメーターの構造は、プログラミング言語の特性に基づいてカプセル化されています。
text-to-image タスクは時間がかかるため、SDK は下層で HTTP 非同期呼び出しプロセスをカプセル化し、同期および非同期の両方の呼び出しメソッドをサポートします。
実際の所要時間は、キュー内のタスク数とサービスの実行状況によって異なります。結果を取得するまでしばらくお待ちください。
wan2.6
以下のコードは wan2.6 モデル専用です。
以下のコードを実行する前に、DashScope Python SDK のバージョンが少なくとも
1.25.7であることを確認してください。SDK を更新するには、「SDK のインストール」をご参照ください。
base_url と API キーはリージョン間で共通ではありません。以下の例は、シンガポールリージョンでの呼び出しを示しています:
シンガポール:https://dashscope-intl.aliyuncs.com/api/v1
バージニア:https://dashscope-us.aliyuncs.com/api/v1
北京:https://dashscope.aliyuncs.com/api/v1
同期呼び出し
リクエスト例
import os
import dashscope
from dashscope.aigc.image_generation import ImageGeneration
from dashscope.api_entities.dashscope_response import Message
# 以下はシンガポールリージョンの base_url です。base_url はリージョンごとに異なります。
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")
message = Message(
role="user",
content=[
{
'text': 'A flower shop with exquisite windows, a beautiful wooden door, and flowers on display'
}
]
)
print("----sync call, please wait a moment----")
rsp = ImageGeneration.call(
model="wan2.6-t2i",
api_key=api_key,
messages=[message],
negative_prompt="",
prompt_extend=True,
watermark=False,
n=1,
size="1280*1280"
)
print(rsp)
レスポンス例
URL は 24 時間有効です。速やかに画像をダウンロードしてください。
{
"status_code": 200,
"request_id": "820dd0db-eb42-4e05-8d6a-1ddb4axxxxxx",
"code": "",
"message": "",
"output": {
"text": null,
"finish_reason": null,
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": [
{
"image": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxxxxx.png?Expires=xxxxxx",
"type": "image"
}
]
}
}
],
"audio": null,
"finished": true
},
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"characters": 0,
"image_count": 1,
"size": "1280*1280",
"total_tokens": 0
}
}非同期呼び出し
リクエスト例
import os
import dashscope
from dashscope.aigc.image_generation import ImageGeneration
from dashscope.api_entities.dashscope_response import Role, Message
from http import HTTPStatus
# 以下はシンガポールリージョンの base_url です。base_url はリージョンごとに異なります。
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")
# 非同期タスクを作成する
def create_async_task():
print("Creating async task...")
message = Message(
role="user",
content=[{'text': 'A flower shop with exquisite windows, a beautiful wooden door, and flowers on display'}]
)
response = ImageGeneration.async_call(
model="wan2.6-t2i",
api_key=api_key,
messages=[message],
negative_prompt="",
prompt_extend=True,
watermark=False,
n=1,
size="1280*1280"
)
if response.status_code == 200:
print("Task created successfully:", response)
return response
else:
raise Exception(f"Failed to create task: {response.code} - {response.message}")
# タスクが完了するのを待つ
def wait_for_completion(task_response):
print("Waiting for task completion...")
status = ImageGeneration.wait(task=task_response, api_key=api_key)
if status.output.task_status == "SUCCEEDED":
print("Task succeeded!")
print("Response:", status)
else:
raise Exception(f"Task failed with status: {status.output.task_status}")
# 非同期タスク情報を取得する
def fetch_task_status(task):
print("Fetching task status...")
status = ImageGeneration.fetch(task=task, api_key=api_key)
if status.status_code == HTTPStatus.OK:
print("Task status:", status.output.task_status)
print("Response details:", status)
else:
print(f"Failed to fetch status: {status.code} - {status.message}")
# 非同期タスクをキャンセルする
def cancel_task(task):
print("Canceling task...")
response = ImageGeneration.cancel(task=task, api_key=api_key)
if response.status_code == HTTPStatus.OK:
print("Task canceled successfully:", response.output.task_status)
else:
print(f"Failed to cancel task: {response.code} - {response.message}")
# メインの実行フロー
if __name__ == "__main__":
task = create_async_task()
wait_for_completion(task)
レスポンス例
1. タスク作成のレスポンス例
{
"status_code": 200,
"request_id": "c4f11410-ea42-4996-957d-9c82f9xxxxxx",
"code": "",
"message": "",
"output": {
"text": null,
"finish_reason": null,
"choices": null,
"audio": null,
"task_id": "f470bbfd-d955-4165-935b-d35b8eexxxxxx",
"task_status": "PENDING"
},
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"characters": 0
}
}2. タスク結果クエリのレスポンス例
URL は 24 時間有効です。速やかに画像をダウンロードしてください。
{
"status_code": 200,
"request_id": "7e57e7e8-00b0-4534-9aff-fe31e0xxxxxx",
"code": null,
"message": "",
"output": {
"text": null,
"finish_reason": null,
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": [
{
"image": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxxxxx.png?Expires=xxxxxx",
"type": "image"
}
]
}
}
],
"audio": null,
"task_id": "f470bbfd-d955-4165-935b-d35b8exxxxxx",
"task_status": "SUCCEEDED",
"submit_time": "2026-01-09 17:18:17.901",
"scheduled_time": "2026-01-09 17:18:17.941",
"end_time": "2026-01-09 17:18:45.544",
"finished": true
},
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"characters": 0,
"size": "1280*1280",
"total_tokens": 0,
"image_count": 1
}
}wan2.5 およびそれ以前のモデル
以下のコードは wan2.5 およびそれ以前のモデル専用です。
以下のコードを実行する前に、DashScope Python SDK のバージョンが少なくとも
1.25.2であることを確認してください。古いバージョンでは「url error, please check url!」などのエラーが発生する可能性があります。SDK の更新方法の詳細については、「SDK のインストール」をご参照ください。
base_url と API キーはリージョン間で共通ではありません。以下の例は、シンガポールリージョンでの呼び出しを示しています:
シンガポール:https://dashscope-intl.aliyuncs.com/api/v1
北京:https://dashscope.aliyuncs.com/api/v1
同期呼び出し
リクエスト例
from http import HTTPStatus
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
import requests
from dashscope import ImageSynthesis
import os
import dashscope
# 以下はシンガポールリージョンの 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")
print('----sync call, please wait a moment----')
rsp = ImageSynthesis.call(api_key=api_key,
model="wan2.5-t2i-preview",
prompt="A flower shop with exquisite windows, a beautiful wooden door, and flowers on display",
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": "9d634fda-5fe9-9968-a908-xxxxxx",
"code": null,
"message": "",
"output": {
"task_id": "d35658e4-483f-453b-b8dc-xxxxxx",
"task_status": "SUCCEEDED",
"results": [{
"url": "https://dashscope-result-wlcb.oss-cn-wulanchabu.aliyuncs.com/1.png",
"orig_prompt": "A flower shop with exquisite windows, a beautiful wooden door, and flowers on display",
"actual_prompt": "An exquisite flower shop, with windows decorated with elegant carvings and a beautiful wooden door with a brass handle. Inside, various colorful flowers such as roses, tulips, and lilies are on display. The background is a warm indoor scene with soft light, creating a quiet and comfortable atmosphere. High-definition realistic photography, close-up center composition."
}],
"submit_time": "2025-01-08 19:36:01.521",
"scheduled_time": "2025-01-08 19:36:01.542",
"end_time": "2025-01-08 19:36:13.270",
"task_metrics": {
"TOTAL": 1,
"SUCCEEDED": 1,
"FAILED": 0
}
},
"usage": {
"image_count": 1
}
}
非同期呼び出し
リクエスト例
from http import HTTPStatus
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
import requests
from dashscope import ImageSynthesis
import os
import dashscope
# 以下はシンガポールリージョンの 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")
def async_call():
print('----create task----')
task_info = create_async_task()
print('----wait task done then save image----')
wait_async_task(task_info)
# 非同期タスクを作成する
def create_async_task():
rsp = ImageSynthesis.async_call(api_key=api_key,
model="wan2.5-t2i-preview",
prompt="A flower shop with exquisite windows, a beautiful wooden door, and flowers on display",
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)
# save file to current directory
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"
},
"usage": null
}2. タスク結果クエリのレスポンス例
URL は 24 時間有効です。速やかに画像をダウンロードしてください。
{
"status_code": 200,
"request_id": "9d634fda-5fe9-9968-a908-xxxxxx",
"code": null,
"message": "",
"output": {
"task_id": "d35658e4-483f-453b-b8dc-xxxxxx",
"task_status": "SUCCEEDED",
"results": [{
"url": "https://dashscope-result-wlcb.oss-cn-wulanchabu.aliyuncs.com/xxx.png",
"orig_prompt": "A flower shop with exquisite windows, a beautiful wooden door, and flowers on display",
"actual_prompt": "An exquisite flower shop, with windows decorated with elegant carvings and a beautiful wooden door with a brass handle. Inside, various colorful flowers such as roses, tulips, and lilies are on display. The background is a warm indoor scene with soft light, creating a quiet and comfortable atmosphere. High-definition realistic photography, close-up center composition."
}],
"submit_time": "2025-01-08 19:36:01.521",
"scheduled_time": "2025-01-08 19:36:01.542",
"end_time": "2025-01-08 19:36:13.270",
"task_metrics": {
"TOTAL": 1,
"SUCCEEDED": 1,
"FAILED": 0
}
},
"usage": {
"image_count": 1
}
}
DashScope Java SDK 呼び出し
SDK のパラメーター名は、ほとんどが HTTP API のものと一致しています。パラメーターの構造は、プログラミング言語の特性に基づいてカプセル化されています。
text-to-image タスクは時間がかかるため、SDK は下層で HTTP 非同期呼び出しプロセスをカプセル化し、同期および非同期の両方の呼び出しメソッドをサポートします。
実際の所要時間は、キュー内のタスク数とサービスの実行状況によって異なります。結果を取得するまでしばらくお待ちください。
wan2.6
以下のコードは wan2.6-t2i モデル専用です。
以下のコードを実行する前に、DashScope Java SDK のバージョンが少なくとも
2.22.6であることを確認してください。
base_url と API キーは各リージョンに固有です。以下の例は、シンガポールリージョンからの呼び出しを示しています:
シンガポール:https://dashscope-intl.aliyuncs.com/api/v1
バージニア:https://dashscope-us.aliyuncs.com/api/v1
北京:https://dashscope.aliyuncs.com/api/v1
同期呼び出し
リクエスト例
import com.alibaba.dashscope.aigc.imagegeneration.*;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
import com.alibaba.dashscope.utils.JsonUtils;
import java.util.Collections;
public class Main {
static {
// 以下はシンガポールリージョンの URL です。base_url はリージョンごとに異なります。
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");
public static void basicCall() throws ApiException, NoApiKeyException, UploadFileException {
ImageGenerationMessage message = ImageGenerationMessage.builder()
.role("user")
.content(Collections.singletonList(
Collections.singletonMap("text", "A flower shop with exquisite windows, a beautiful wooden door, and flowers on display")
)).build();
ImageGenerationParam param = ImageGenerationParam.builder()
.apiKey(apiKey)
.model("wan2.6-t2i")
.n(1)
.size("1280*1280")
.negativePrompt("")
.promptExtend(true)
.watermark(false)
.messages(Collections.singletonList(message))
.build();
ImageGeneration imageGeneration = new ImageGeneration();
ImageGenerationResult result = null;
try {
System.out.println("---sync call, please wait a moment----");
result = imageGeneration.call(param);
} catch (ApiException | NoApiKeyException | UploadFileException e) {
throw new RuntimeException(e.getMessage());
}
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
basicCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
}
}レスポンス例
URL は 24 時間有効です。速やかに画像をダウンロードしてください。
{
"status_code": 200,
"request_id": "50b57166-eaaa-4f17-b1e0-35a5ca88672c",
"code": "",
"message": "",
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": [
{
"image": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx",
"type": "image"
}
]
}
}
],
"finished": true
},
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"image_count": 1,
"size": "1280*1280",
"total_tokens": 0
}
}非同期呼び出し
リクエスト例
import com.alibaba.dashscope.aigc.imagegeneration.*;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
import com.alibaba.dashscope.utils.JsonUtils;
import java.util.Collections;
public class Main {
static {
// 以下はシンガポールリージョンの URL です。base_url はリージョンごとに異なります。
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");
public static void asyncCall() throws ApiException, NoApiKeyException, UploadFileException {
ImageGenerationMessage message = ImageGenerationMessage.builder()
.role("user")
.content(Collections.singletonList(
Collections.singletonMap("text", "A flower shop with exquisite windows, a beautiful wooden door, and flowers on display")
)).build();
ImageGenerationParam param = ImageGenerationParam.builder()
.apiKey(apiKey)
.model("wan2.6-t2i")
.n(1)
.size("1280*1280")
.negativePrompt("")
.promptExtend(true)
.watermark(false)
.messages(Collections.singletonList(message))
.build();
ImageGeneration imageGeneration = new ImageGeneration();
ImageGenerationResult result = null;
try {
System.out.println("---async call, creating task----");
result = imageGeneration.asyncCall(param);
} catch (ApiException | NoApiKeyException | UploadFileException e) {
throw new RuntimeException(e.getMessage());
}
System.out.println(JsonUtils.toJson(result));
String taskId = result.getOutput().getTaskId();
// タスクが完了するのを待つ
waitTask(taskId);
}
public static void waitTask(String taskId) throws ApiException, NoApiKeyException {
ImageGeneration imageGeneration = new ImageGeneration();
ImageGenerationResult result = imageGeneration.wait(taskId, apiKey);
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
asyncCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
}
}レスポンス例
1. タスク作成のレスポンス例
{
"status_code": 200,
"request_id": "9cd85950-2e26-4b2c-b562-1694cf9288e5",
"code": "",
"message": "",
"output": {
"task_id": "4c861fbe-af89-4a2f-8fc5-4bb15c3139ba",
"task_status": "PENDING"
},
"usage": null
}2. タスク結果クエリのレスポンス例
URL は 24 時間有効です。速やかに画像をダウンロードしてください。
{
"status_code": 200,
"request_id": "cbdf1424-306e-4a52-82f3-8bf5d8a99103",
"code": "",
"message": "",
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": [
{
"image": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx",
"type": "image"
}
]
}
}
],
"task_id": "4c861fbe-af89-4a2f-8fc5-4bb15c3139ba",
"task_status": "SUCCEEDED",
"submit_time": "2026-01-16 16:36:06.556",
"scheduled_time": "2026-01-16 16:36:06.591",
"end_time": "2026-01-16 16:36:25.190",
"finished": true
},
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"size": "1280*1280",
"total_tokens": 0,
"image_count": 1
}
}wan2.5 およびそれ以前のモデル
wan2.6-t2iモデルは Java SDK の呼び出しをサポートしていません。次のコードは、wan2.5 およびそれ以前のモデルのみを対象としています。次のコードを実行する前に、DashScope Java SDK のバージョンが
2.22.2以降であることを確認してください。古いバージョンでは、「url error, please check url!」などのエラーが発生する可能性があります。SDK の更新方法の詳細については、「SDK のインストール」をご参照ください。
base_url と API キーはリージョン間で共通ではありません。次の例は、シンガポールリージョンでの呼び出しを示しています。
シンガポール:https://dashscope-intl.aliyuncs.com/api/v1
北京:https://dashscope.aliyuncs.com/api/v1
同期呼び出し
リクエストの例
// 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.task.AsyncTaskListParam;
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.util.HashMap;
import java.util.Map;
public class Main {
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");
public static void basicCall() throws ApiException, NoApiKeyException {
// パラメーターを設定します
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-t2i-preview")
.prompt("A flower shop with exquisite windows, a beautiful wooden door, and flowers on display")
.n(1)
.size("1280*1280")
.negativePrompt("")
.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));
}
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 static void fetchTask(String taskId) throws ApiException, NoApiKeyException {
ImageSynthesis is = new ImageSynthesis();
// DASHSCOPE_API_KEY 環境変数を設定した場合、apiKey は null にできます。
ImageSynthesisResult result = is.fetch(taskId, apiKey);
System.out.println(result.getOutput());
System.out.println(result.getUsage());
}
public static void main(String[] args){
try{
basicCall();
//listTask();
}catch(ApiException|NoApiKeyException e){
System.out.println(e.getMessage());
}
}
}応答例
URL の有効期間は 24 時間です。速やかにイメージをダウンロードしてください。
{
"request_id": "22f9c744-206c-9a78-899a-xxxxxx",
"output": {
"task_id": "4a0f8fc6-03fb-4c44-a13a-xxxxxx",
"task_status": "SUCCEEDED",
"results": [{
"orig_prompt": "A flower shop with exquisite windows, a beautiful wooden door, and flowers on display",
"actual_prompt": "A flower shop with exquisitely carved windows and a beautiful dark wooden door slightly ajar. Inside, a variety of colorful and fragrant flowers, including roses, lilies, and sunflowers, are on display. The background is a warm indoor scene with soft light shining on the flowers through the window. High-definition realistic photography, medium shot composition.",
"url": "https://dashscope-result-wlcb.oss-cn-wulanchabu.aliyuncs.com/1.png"
}],
"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.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.util.HashMap;
import java.util.Map;
public class Main {
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");
public void asyncCall() {
System.out.println("---create task----");
String taskId = this.createAsyncTask();
System.out.println("---wait task done then return image url----");
this.waitAsyncTask(taskId);
}
/**
* 非同期タスクを作成します
* @return taskId
*/
public String createAsyncTask() {
// パラメーターを設定します
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-t2i-preview")
.prompt("A flower shop with exquisite windows, a beautiful wooden door, and flowers on display")
.n(1)
.size("1280*1280)
.negativePrompt("")
.parameters(parameters)
.build();
ImageSynthesis imageSynthesis = new ImageSynthesis();
ImageSynthesisResult result = null;
try {
result = imageSynthesis.asyncCall(param);
} catch (Exception e){
throw new RuntimeException(e.getMessage());
}
System.out.println(JsonUtils.toJson(result));
String taskId = result.getOutput().getTaskId();
System.out.println("taskId=" + taskId);
return taskId;
}
/**
* 非同期タスクの完了を待ちます
* @param taskId タスク ID
* */
public void waitAsyncTask(String taskId) {
ImageSynthesis imageSynthesis = new ImageSynthesis();
ImageSynthesisResult result = null;
try {
// 環境変数を設定した後、ここで apiKey を null に設定できます
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 main(String[] args){
Main main = new Main();
main.asyncCall();
}
}応答例
1. タスク作成時の応答例
{
"request_id": "5dbf9dc5-4f4c-9605-85ea-542f97709ba8",
"output": {
"task_id": "7277e20e-aa01-4709-xxxxxxxx",
"task_status": "PENDING"
}
}2. タスク結果のクエリ時の応答例
{
"request_id": "22f9c744-206c-9a78-899a-xxxxxx",
"output": {
"task_id": "4a0f8fc6-03fb-4c44-a13a-xxxxxx",
"task_status": "SUCCEEDED",
"results": [{
"orig_prompt": "A flower shop with exquisite windows, a beautiful wooden door, and flowers on display",
"actual_prompt": "A flower shop with exquisitely carved windows and a beautiful dark wooden door slightly ajar. Inside, a variety of colorful and fragrant flowers, including roses, lilies, and sunflowers, are on display. The background is a warm indoor scene with soft light shining on the flowers through the window. High-definition realistic photography, medium shot composition.",
"url": "https://dashscope-result-wlcb.oss-cn-wulanchabu.aliyuncs.com/1.png"
}],
"task_metrics": {
"TOTAL": 1,
"SUCCEEDED": 1,
"FAILED": 0
}
},
"usage": {
"image_count": 1
}
}制限事項
データの有効期間:
task_idとイメージのurlは 24 時間のみ保持されます。この期間を過ぎると、クエリやダウンロードはできなくなります。コンテンツモデレーション:入力された
promptと出力イメージは、どちらもコンテンツモデレーションの対象となります。禁止コンテンツを含むリクエストを送信すると、`IPInfringementSuspect` または `DataInspectionFailed` エラーが発生します。詳細については、エラーメッセージをご参照ください。ネットワークアクセス構成:イメージ URL は OSS に格納されます。ご利用の業務システムがセキュリティポリシーによって外部の OSS URL にアクセスできない場合は、以下の 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:モデルの推論コストと呼び出しボリュームはどのように確認しますか?
A:詳細については、「請求クエリとコスト管理」をご参照ください。