Wan2.6 mendukung input multi-gambar, pengeditan gambar, dan output teks-gambar interleaved.
Ikhtisar model
|
Model |
Deskripsi |
Spesifikasi gambar output |
|
wan2.6-image |
Mengedit gambar dan menghasilkan output teks-gambar interleaved. |
Format gambar: PNG Resolusi dan dimensi gambar dikonfigurasi melalui parameter size. |
Sebelum memanggil API, periksa daftar model dan harga yang didukung di setiap wilayah.
Prasyarat
Dapatkan Kunci API dan ekspor kunci API sebagai Variabel lingkungan.
Wilayah Singapura, AS (Virginia), dan Tiongkok (Beijing) memiliki Kunci API dan titik akhir permintaan yang berbeda. Keduanya tidak dapat saling dipertukarkan. Pemanggilan lintas-wilayah akan menyebabkan kegagalan otentikasi atau error layanan. Untuk informasi selengkapnya, lihat Pilih wilayah dan cakupan penerapan layanan.
HTTP sinkron
Mengembalikan hasil dalam satu permintaan. Direkomendasikan untuk sebagian besar skenario.
Singapura
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
Saat melakukan panggilan, ganti WorkspaceId dengan ID ruang kerja Anda yang sebenarnya.
AS (Virginia)
POST https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
China (Beijing)
POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
Saat melakukan panggilan, ganti WorkspaceId dengan ID ruang kerja Anda yang sebenarnya.
Cakupan penerapan global (wilayah Frankfurt) hanya mendukung pemanggilan asinkron.
Parameter permintaan |
Pengeditan gambar
Output teks-gambar interleaved (streaming saja)Saat menggunakan output teks-gambar interleaved (
|
Header permintaan |
|
|
Content-Type Tipe konten permintaan. Harus |
|
|
Authorization Mengotentikasi permintaan dengan Kunci API Model Studio. Contoh: Bearer sk-xxxx. |
|
|
X-DashScope-SSE Mengaktifkan keluaran streaming.
|
|
Body permintaan |
|
|
model Nama model. Tetapkan ke wan2.6-image. |
|
|
input Konfigurasi input. |
|
|
parameters Parameter generasi. |
Parameter respons |
Eksekusi tugas berhasilData tugas (status tugas dan URL gambar) hanya disimpan selama 24 jam lalu secara otomatis dihapus. Segera simpan gambar yang dihasilkan.
Eksekusi tugas berhasil (keluaran streaming)Data tugas (status tugas dan URL gambar) hanya disimpan selama 24 jam lalu secara otomatis dihapus. Segera simpan gambar yang dihasilkan.
Kegagalan eksekusi tugasJika Tugas gagal, informasi kesalahan akan dikembalikan. Gunakan bidang code dan message untuk mengidentifikasi penyebabnya. Lihat 错误码 untuk pemecahan masalah.
|
|
output Output tugas. |
|
|
usage Statistik output. Hanya menghitung hasil yang berhasil. |
|
|
request_id Identifikasi permintaan unik untuk pelacakan dan troubleshooting. |
|
|
code Kode error. Hanya dikembalikan untuk permintaan yang gagal. Lihat 错误码. |
|
|
message Pesan kesalahan rinci, hanya dikembalikan untuk permintaan yang gagal. Lihat Kode kesalahan. |
HTTP asinkron
Proses: Buat tugas → Poll hasil
Langkah 1: Buat tugas dan dapatkan ID tugas
Singapura
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/image-generation/generation
Saat memanggil, ganti WorkspaceId dengan ID ruang kerja Anda yang sebenarnya.
AS (Virginia)
POST https://dashscope-us.aliyuncs.com/api/v1/services/aigc/image-generation/generation
China (Beijing)
POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/image-generation/generation
Saat memanggil, ganti WorkspaceId dengan ID ruang kerja Anda yang sebenarnya.
Jerman (Frankfurt)
POST https://<u><u>{WorkspaceId}.eu-central-1.maas.aliyuncs.com</u></u>/api/v1/services/aigc/image-generation/generation
Saat melakukan panggilan, ganti WorkspaceId dengan ID Ruang Kerja Anda.
-
Setelah tugas dibuat, gunakan
task_idyang dikembalikan untuk menanyakan hasilnya.task_idberlaku selama 24 jam. Jangan membuat tugas duplikat. Sebagai gantinya, gunakan polling untuk mengambil hasilnya. -
Untuk panduan pemula, lihat Panggil API dengan Postman atau cURL.
Parameter permintaan |
Pengeditan gambar
Output teks-gambar interleaved
|
Header permintaan |
|
|
Content-Type Tipe konten permintaan. Harus |
|
|
Authorization Mengotentikasi permintaan dengan Kunci API Model Studio. Contoh: Bearer sk-xxxx. |
|
|
X-DashScope-Async Sakelar mode asinkron. Harus ditetapkan ke Penting
Mengabaikan header ini mengembalikan error: “current user api does not support synchronous calls”. |
|
Body permintaan |
|
|
model Nama model. Contoh: wan2.6-image |
|
|
input Konfigurasi input. |
|
|
parameters Parameter generasi. |
Parameter respons |
Respons berhasilSimpan
Respons errorPembuatan tugas gagal. Lihat kode galat.
|
|
output Output tugas. |
|
|
request_id Identifikasi permintaan unik untuk pelacakan dan troubleshooting. |
|
|
code Kode error. Hanya dikembalikan untuk permintaan yang gagal. Lihat 错误码. |
|
|
message Pesan error detail. Hanya dikembalikan untuk permintaan yang gagal. Lihat 错误码. |
Langkah 2: Tanyakan hasil menggunakan ID tugas
Singapura
GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id}
Saat memanggil, ganti WorkspaceId dengan ID ruang kerja Anda yang sebenarnya.
AS (Virginia)
GET https://dashscope-us.aliyuncs.com/api/v1/tasks/{task_id}
China (Beijing)
GET https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/{task_id}
Saat memanggil, ganti WorkspaceId dengan ID ruang kerja Anda yang sebenarnya.
Jerman (Frankfurt)
GET https://<u>{WorkspaceId}.eu-central-1.maas.aliyuncs.com</u>/api/v1/tasks/{task_id}
Saat melakukan panggilan, ganti {WorkspaceId} dengan ID Ruang Kerja Anda yang sebenarnya.
-
Rekomendasi polling: Generasi gambar memakan waktu. Gunakan mekanisme polling dengan interval yang masuk akal, misalnya 10 detik.
-
Transisi status tugas: PENDING → RUNNING → SUCCEEDED atau FAILED.
-
Tautan hasil: Setelah tugas berhasil, URL gambar yang berlaku selama 24 jam dikembalikan. Unduh dan simpan gambar ke penyimpanan permanen, seperti OSS.
Parameter permintaan |
Tanyakan hasil tugasGanti |
Header permintaan |
|
|
Authorization Mengotentikasi permintaan dengan Kunci API Model Studio. Contoh: Bearer sk-xxxx. |
|
Parameter path URL |
|
|
task_id ID tugas. |
Parameter respons |
Eksekusi tugas berhasilData tugas (status tugas dan URL gambar) hanya disimpan selama 24 jam lalu secara otomatis dihapus. Segera simpan gambar yang dihasilkan.
Kegagalan eksekusi tugasJika tugas gagal, informasi error dikembalikan. Gunakan bidang code dan message untuk mengidentifikasi penyebabnya. Lihat 错误码 untuk troubleshooting.
|
|
output Informasi output tugas. |
|
|
usage Statistik output. Hanya menghitung hasil yang berhasil. |
|
|
request_id Identifikasi permintaan unik untuk pelacakan dan troubleshooting. |
|
|
code Kode error. Hanya dikembalikan untuk permintaan yang gagal. Lihat 错误码. |
|
|
message Pesan error detail. Hanya dikembalikan untuk permintaan yang gagal. Lihat 错误码. |
DashScope Python SDK
Parameter SDK sejalan dengan antarmuka HTTP, disesuaikan sesuai konvensi bahasa.
SDK menangani pemanggilan asinkron secara internal dan mendukung pemanggilan sinkron maupun asinkron.
Durasi aktual bervariasi tergantung panjang antrian dan beban layanan.
Membutuhkan DashScope Python SDK versi 1.25.8 atau lebih baru. Instal SDK.
Parameter base_url dan Kunci API bersifat spesifik wilayah. Contoh panggilan dari wilayah Singapura:
Singapura
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1
Saat melakukan panggilan, ganti WorkspaceId dengan ID ruang kerja Anda yang sebenarnya.
AS (Virginia)
https://dashscope-us.aliyuncs.com/api/v1
China (Beijing)
https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1
Saat melakukan panggilan, ganti WorkspaceId dengan ID ruang kerja Anda yang sebenarnya.
Jerman (Frankfurt)
https://<u>{WorkspaceId}.eu-central-1.maas.aliyuncs.com</u>/api/v1
Ganti WorkspaceId dengan ID ruang kerja Anda yang sebenarnya.
Cakupan penerapan global (wilayah Frankfurt) hanya mendukung pemanggilan asinkron.
Pengeditan gambar
Sinkron
Contoh permintaan
import os
import dashscope
from dashscope.aigc.image_generation import ImageGeneration
from dashscope.api_entities.dashscope_response import Message
# base_url wilayah Singapura. Base URL berbeda tiap wilayah.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: api_key="sk-xxx"
# Kunci API berbeda tiap wilayah. Dapatkan Kunci API: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
message = Message(
role="user",
# Mendukung file lokal, contoh: "image": "file://umbrella1.png"
content=[
{
"text": "Generate a tomato and egg stir-fry based on the style of image 1 and the background of image 2"
},
{
"image": "https://cdn.wanx.aliyuncs.com/tmp/pressure/umbrella1.png"
},
{
"image": "https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp"
}
]
)
print("----sync call, wait a moment----")
rsp = ImageGeneration.call(
model='wan2.6-image',
api_key=api_key,
messages=[message],
negative_prompt="",
prompt_extend=True,
watermark=False,
n=1,
enable_interleave=False,
size="1K"
)
print(rsp)
Contoh respons
URL kedaluwarsa setelah 24 jam. Unduh gambar segera.
{
"status_code": 200,
"request_id": "b6a4c68d-3a91-4018-ae96-3cf373xxxxxx",
"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": "1376*768",
"total_tokens": 0
}
}
Asinkron
Contoh permintaan
import os
import dashscope
from dashscope.aigc.image_generation import ImageGeneration
from dashscope.api_entities.dashscope_response import Message
from http import HTTPStatus
# base_url wilayah Singapura. Base URL berbeda tiap wilayah.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: api_key="sk-xxx"
# Kunci API berbeda tiap wilayah. Dapatkan Kunci API: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
# Buat tugas asinkron
def create_async_task():
print("Creating async task...")
message = Message(
role="user",
content=[
{'text': 'Generate a tomato and egg stir-fry based on the style of image 1 and the background of image 2'},
{'image': 'https://cdn.wanx.aliyuncs.com/tmp/pressure/umbrella1.png'},
{'image': 'https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp'}
]
)
response = ImageGeneration.async_call(
model="wan2.6-image",
api_key=api_key,
messages=[message],
negative_prompt="",
prompt_extend=True,
watermark=False,
n=1,
enable_interleave=False,
size="1K"
)
if response.status_code == 200:
print("Task created successfully:", response)
return response # Kembalikan ID tugas
else:
raise Exception(f"Failed to create task: {response.code} - {response.message}")
# Tunggu hingga tugas selesai
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}")
# Ambil info tugas asinkron
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}")
# Batalkan tugas asinkron
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}")
# Alur eksekusi utama
if __name__ == "__main__":
task = create_async_task()
wait_for_completion(task)
Contoh respons
-
Contoh respons pembuatan tugas
{ "status_code": 200, "request_id": "4fb3050f-de57-4a24-84ff-e37ee5xxxxxx", "code": "", "message": "", "output": { "text": null, "finish_reason": null, "choices": null, "audio": null, "task_id": "127ec645-118f-4884-955d-0eba8dxxxxxx", "task_status": "PENDING" }, "usage": { "input_tokens": 0, "output_tokens": 0, "characters": 0 } }
-
Contoh respons kueri hasil tugas
URL kedaluwarsa setelah 24 jam. Unduh gambar segera.
{ "status_code": 200, "request_id": "b2a7fab4-5e00-4b0a-86fe-8b9964xxxxxx", "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": "127ec645-118f-4884-955d-0eba8xxxxxx", "task_status": "SUCCEEDED", "submit_time": "2026-01-09 17:52:04.136", "scheduled_time": "2026-01-09 17:52:04.164", "end_time": "2026-01-09 17:52:25.408", "finished": true }, "usage": { "input_tokens": 0, "output_tokens": 0, "characters": 0, "size": "1376*768", "total_tokens": 0, "image_count": 1 } }
Output teks-gambar interleaved
Sinkron (streaming saja)
Contoh permintaan
import os
import dashscope
from dashscope.aigc.image_generation import ImageGeneration
from dashscope.api_entities.dashscope_response import Message
# URL wilayah Singapura. Base URL berbeda tiap wilayah.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: api_key="sk-xxx"
# Kunci API berbeda tiap wilayah. Dapatkan Kunci API: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
def sync_call_with_stream():
print("\n========== Synchronous call - Streaming text-image output ==========")
image_message = Message(
role="user",
content=[
{
"text": "Give me a three-image tutorial for stir-fried pork with chili peppers"
}
]
)
image_stream_res = ImageGeneration.call(
model="wan2.6-image",
api_key=api_key,
messages=[image_message],
stream=True, # Streaming saja
negative_prompt="",
enable_interleave=True,
max_images=3,
size="1280*1280"
)
print("Streaming output results:")
for stream_res in image_stream_res:
print(stream_res)
if __name__ == "__main__":
sync_call_with_stream()
Contoh respons
URL kedaluwarsa setelah 24 jam. Unduh gambar segera.
{"status_code": 200, "request_id": "5b98e8f3-aeff-4c20-a26c-499a7525axxx", "code": "", "message": "", "output": {"text": null, "finish_reason": null, "choices": [{"finish_reason": "null", "message": {"role": "assistant", "content": [{"type": "text", "text": "Chili"}]}}], "audio": null, "finished": false}, "usage": {"input_tokens": 28, "output_tokens": 0, "characters": 0, "total_tokens": 28, "image_count": 0, "size": "0*0"}}
{"status_code": 200, "request_id": "5b98e8f3-aeff-4c20-a26c-499a7525axxx", "code": "", "message": "", "output": {"text": null, "finish_reason": null, "choices": [{"finish_reason": "null", "message": {"role": "assistant", "content": [{"type": "text", "text": "Stir-fry"}]}}], "audio": null, "finished": false}, "usage": {"input_tokens": 28, "output_tokens": 1, "characters": 0, "total_tokens": 29, "image_count": 0, "size": "0*0"}}
{"status_code": 200, "request_id": "5b98e8f3-aeff-4c20-a26c-499a7525axxx", "code": "", "message": "", "output": {"text": null, "finish_reason": null, "choices": [{"finish_reason": "null", "message": {"role": "assistant", "content": [{"type": "text", "text": "Pork"}]}}], "audio": null, "finished": false}, "usage": {"input_tokens": 28, "output_tokens": 2, "characters": 0, "total_tokens": 30, "image_count": 0, "size": "0*0"}}
......
{"status_code": 200, "request_id": "5b98e8f3-aeff-4c20-a26c-499a7525axxx", "code": "", "message": "", "output": {"text": null, "finish_reason": null, "choices": [{"finish_reason": "null", "message": {"role": "assistant", "content": [{"type": "text", "text": "."}]}}], "audio": null, "finished": false}, "usage": {"input_tokens": 28, "output_tokens": 398, "characters": 0, "total_tokens": 426, "image_count": 2, "size": "1280*1280"}}
{"status_code": 200, "request_id": "5b98e8f3-aeff-4c20-a26c-499a7525axxx", "code": "", "message": "", "output": {"text": null, "finish_reason": "stop", "choices": [{"finish_reason": "stop", "message": {"role": "assistant", "content": [{"type": "image", "image": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx"}]}}], "audio": null, "finished": true}, "usage": {"input_tokens": 28, "output_tokens": 523, "characters": 0, "total_tokens": 551, "image_count": 3, "size": "1280*1280"}}
Asinkron
Contoh permintaan
Catatan: Pemanggilan asinkron tidak memerlukan parameter stream
import os
import dashscope
from dashscope.aigc.image_generation import ImageGeneration
from dashscope.api_entities.dashscope_response import Message
from http import HTTPStatus
# URL wilayah Singapura. Base URL berbeda tiap wilayah.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
# Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: api_key="sk-xxx"
# Kunci API berbeda tiap wilayah. Dapatkan Kunci API: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
def main():
"""Pemanggilan asinkron - Output teks-gambar"""
print("========== wan2.6-image Asynchronous call - Text-image output ==========")
image_message = Message(
role="user",
content=[
{
"text": "Give me a three-image tutorial for stir-fried pork with chili peppers"
}
]
)
# Buat tugas asinkron
print("---async call, creating task----")
response = ImageGeneration.async_call(
model="wan2.6-image",
api_key=api_key,
messages=[image_message],
# Pemanggilan asinkron tidak memerlukan parameter stream
negative_prompt="",
enable_interleave=True,
max_images=3,
size="1280*1280"
)
if response.status_code == HTTPStatus.OK:
print(f"Task created successfully:")
print(response)
# Tunggu hingga tugas selesai
print("\n---waiting for task completion----")
status = ImageGeneration.wait(task=response, api_key=api_key)
if status.output.task_status == "SUCCEEDED":
print("Task completed!")
print(f"Results:")
print(status)
else:
print(f"Task failed, status: {status.output.task_status}")
else:
print(f"Task creation failed: {response.code} - {response.message}")
if __name__ == "__main__":
try:
main()
except Exception as e:
print(f"Execution error: {str(e)}")
import traceback
traceback.print_exc()
Contoh respons
-
Contoh respons pembuatan tugas
{ "status_code": 200, "request_id": "4fb3050f-de57-4a24-84ff-e37ee5xxxxxx", "code": "", "message": "", "output": { "text": null, "finish_reason": null, "choices": null, "audio": null, "task_id": "5c67585e-a3be-4943-b04d-c3fbb2xxxxxx", "task_status": "PENDING" }, "usage": { "input_tokens": 0, "output_tokens": 0, "characters": 0 } }
-
Contoh respons kueri hasil tugas
URL kedaluwarsa setelah 24 jam. Unduh gambar segera.
{ "status_code": 200, "request_id": "997a759b-fbb9-4b35-9a4d-6dab1xxxxxx", "code": null, "message": "", "output": { "text": null, "finish_reason": null, "choices": [ { "finish_reason": "stop", "message": { "role": "assistant", "content": [ { "text": "Stir-fried pork with chili peppers is a classic Hunan dish and a beloved home-cooked favorite for many. Known for its fresh spiciness and tender meat, it's simple to prepare yet delivers an exceptional flavor experience. Today, we'll learn how to make this dish.\n\nFirst, preparing all ingredients is the key to success. Fresh pork, red and green chili peppers, garlic cloves, and ginger slices are essential. Slice the pork thinly, cut the chilies into segments, and mince the garlic and ginger.", "type": "text" }, { "image": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx", "type": "image" }, { "text": "Next comes the crucial stir-frying step. Heat oil in a wok over high heat. Add minced garlic and ginger to release their aroma, then add the sliced pork. Quickly stir-fry until the pork changes color. Once fragrant, add the chili segments and continue stir-frying to fully release the chili aroma, perfectly blending with the pork's tenderness.", "type": "text" }, { "image": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx", "type": "image" }, { "text": "Finally, season with light soy sauce, dark soy sauce, oyster sauce, and a pinch of sugar. Stir-fry quickly until evenly coated. Cook until the sauce thickens slightly, then turn off the heat and serve. Your delicious, aromatic stir-fried pork with chili peppers is ready!", "type": "text" }, { "image": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx", "type": "image" } ] } } ], "audio": null, "task_id": "5c67585e-a3be-4943-b04d-c3fbb2xxxxxx", "task_status": "SUCCEEDED", "submit_time": "2026-01-16 17:47:39.469", "scheduled_time": "2026-01-16 17:47:39.804", "end_time": "2026-01-16 17:49:46.736", "finished": true }, "usage": { "input_tokens": 29, "output_tokens": 477, "characters": 0, "size": "1280*1280", "total_tokens": 506, "image_count": 3 } }
DashScope Java SDK
Parameter SDK sejalan dengan antarmuka HTTP, dikemas sesuai konvensi bahasa.
SDK menangani pemanggilan asinkron secara internal dan mendukung pemanggilan sinkron maupun asinkron.
Durasi aktual tergantung panjang antrian dan beban layanan.
Membutuhkan DashScope Java SDK versi 2.22.6 atau lebih baru.
Parameter base_url dan Kunci API tidak dapat saling dipertukarkan antar wilayah. Contoh untuk wilayah Singapura:
Singapura
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1
Saat melakukan panggilan, ganti WorkspaceId dengan ID ruang kerja Anda yang sebenarnya.
AS (Virginia)
https://dashscope-us.aliyuncs.com/api/v1
China (Beijing)
https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1
Saat melakukan panggilan, ganti WorkspaceId dengan ID ruang kerja Anda yang sebenarnya.
Jerman (Frankfurt)
https://<u>{WorkspaceId}.eu-central-1.maas.aliyuncs.com</u>/api/v1
Ganti WorkspaceId dengan ID ruang kerja Anda yang sebenarnya.
Cakupan penerapan global (wilayah Frankfurt) hanya mendukung pemanggilan asinkron.
Pengeditan gambar
Sinkron
Contoh permintaan
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.Arrays;
import java.util.Collections;
/**
* wan2.6-image Pengeditan gambar - Contoh pemanggilan sinkron
*/
public class Main {
static {
// URL wilayah Singapura. Base URL berbeda tiap wilayah.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: apiKey="sk-xxx"
// Kunci API berbeda tiap wilayah. Dapatkan Kunci API: https://www.alibabacloud.com/help/en/model-studio/get-api-key
static String apiKey = System.getenv("DASHSCOPE_API_KEY");
public static void basicCall() throws ApiException, NoApiKeyException, UploadFileException {
// Bangun pesan input multi-gambar
ImageGenerationMessage message = ImageGenerationMessage.builder()
.role("user")
.content(Arrays.asList(
// Mendukung input multi-gambar; berikan beberapa gambar referensi
Collections.singletonMap("text", "Generate a tomato and egg stir-fry based on the style of image 1 and the background of image 2"),
Collections.singletonMap("image", "https://cdn.wanx.aliyuncs.com/tmp/pressure/umbrella1.png"),
Collections.singletonMap("image", "https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp")
)).build();
// Pengeditan gambar menggunakan pemanggilan sinkron standar; tidak perlu mengatur stream atau enable_interleave
ImageGenerationParam param = ImageGenerationParam.builder()
.apiKey(apiKey)
.model("wan2.6-image")
.messages(Collections.singletonList(message))
.n(1)
.size("1K")
.negativePrompt("")
.promptExtend(true)
.build();
ImageGeneration imageGeneration = new ImageGeneration();
ImageGenerationResult result = null;
try {
System.out.println("---sync call for image editing, 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());
}
}
}
Contoh respons
URL kedaluwarsa setelah 24 jam. Unduh gambar segera.
{
"requestId": "b148327e-830f-414c-a8df-724dec28exxx",
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0,
"image_count": 1,
"size": "1376*768"
},
"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
},
"status_code": 200,
"code": "",
"message": ""
}
Asinkron
Contoh permintaan
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.Arrays;
import java.util.Collections;
/**
* wan2.6-image Pengeditan gambar - Contoh pemanggilan asinkron
*/
public class Main {
static {
// URL wilayah Singapura. Base URL berbeda tiap wilayah.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: apiKey="sk-xxx"
// Kunci API berbeda tiap wilayah. Dapatkan Kunci API: https://www.alibabacloud.com/help/en/model-studio/get-api-key
static String apiKey = System.getenv("DASHSCOPE_API_KEY");
public static void asyncCall() throws ApiException, NoApiKeyException, UploadFileException {
// Bangun pesan input multi-gambar
ImageGenerationMessage message = ImageGenerationMessage.builder()
.role("user")
.content(Arrays.asList(
// Mendukung input multi-gambar; berikan beberapa gambar referensi
Collections.singletonMap("text", "Generate a tomato and egg stir-fry based on the style of image 1 and the background of image 2"),
Collections.singletonMap("image", "https://cdn.wanx.aliyuncs.com/tmp/pressure/umbrella1.png"),
Collections.singletonMap("image", "https://img.alicdn.com/imgextra/i3/O1CN01SfG4J41UYn9WNt4X1_!!6000000002530-49-tps-1696-960.webp")
)).build();
ImageGenerationParam param = ImageGenerationParam.builder()
.apiKey(apiKey)
.model("wan2.6-image")
.n(1)
.size("1K")
.negativePrompt("")
.promptExtend(true)
.messages(Arrays.asList(message))
.build();
ImageGeneration imageGeneration = new ImageGeneration();
ImageGenerationResult result = null;
try {
System.out.println("---async call for image editing, creating task----");
result = imageGeneration.asyncCall(param);
} catch (ApiException | NoApiKeyException | UploadFileException e) {
throw new RuntimeException(e.getMessage());
}
System.out.println("Task creation result:");
System.out.println(JsonUtils.toJson(result));
String taskId = result.getOutput().getTaskId();
// Tunggu hingga tugas selesai
waitTask(taskId);
}
public static void waitTask(String taskId) throws ApiException, NoApiKeyException {
ImageGeneration imageGeneration = new ImageGeneration();
System.out.println("\n---waiting for task completion----");
ImageGenerationResult result = imageGeneration.wait(taskId, apiKey);
System.out.println("Task completion result:");
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
asyncCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
}
}
Contoh respons
-
Contoh respons pembuatan tugas
{ "status_code": 200, "request_id": "9cd85950-2e26-4b2c-b562-1694cf928xxx", "code": "", "message": "", "output": { "task_id": "4c861fbe-af89-4a2f-8fc5-4bb15c313xxx", "task_status": "PENDING" }, "usage": null }
-
Contoh respons kueri hasil tugas
URL kedaluwarsa setelah 24 jam. Unduh gambar segera.
{ "status_code": 200, "request_id": "cbdf1424-306e-4a52-82f3-8bf5d8a99xxx", "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": "1376*768", "total_tokens": 0, "image_count": 1 } }
Output teks-gambar interleaved
Pemanggilan sinkron (streaming saja)
Contoh permintaan
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 io.reactivex.Flowable;
import java.util.Collections;
/**
* wan2.6-image Output teks-gambar - Contoh pemanggilan streaming
*/
public class Main {
static {
// URL wilayah Singapura. Base URL berbeda tiap wilayah.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: apiKey="sk-xxx"
// Kunci API berbeda tiap wilayah. Dapatkan Kunci API: https://www.alibabacloud.com/help/en/model-studio/get-api-key
static String apiKey = System.getenv("DASHSCOPE_API_KEY");
public static void streamCall() throws ApiException, NoApiKeyException, UploadFileException {
ImageGenerationMessage message = ImageGenerationMessage.builder()
.role("user")
.content(Collections.singletonList(
Collections.singletonMap("text", "Give me a three-image tutorial for stir-fried pork with chili peppers")
)).build();
// Output teks-gambar memerlukan pemanggilan streaming
ImageGenerationParam param = ImageGenerationParam.builder()
.apiKey(apiKey)
.model("wan2.6-image")
.messages(Collections.singletonList(message))
.stream(true) // Harus mengaktifkan keluaran streaming
.enableInterleave(true)
.size("1280*1280")
.negativePrompt("")
.maxImages(3)
.build();
ImageGeneration imageGeneration = new ImageGeneration();
try {
System.out.println("---stream call for image interleave----");
Flowable<ImageGenerationResult> resultFlowable = imageGeneration.streamCall(param);
resultFlowable.blockingForEach(result -> {
System.out.println(JsonUtils.toJson(result));
});
} catch (ApiException | NoApiKeyException | UploadFileException e) {
throw new RuntimeException(e.getMessage());
}
}
public static void main(String[] args) {
try {
streamCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}
Contoh respons
URL kedaluwarsa setelah 24 jam. Unduh gambar segera.
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":0,"total_tokens":28,"image_count":0,"size":"0*0"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"Chili"}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":1,"total_tokens":29,"image_count":0,"size":"0*0"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"stir-fry"}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":2,"total_tokens":30,"image_count":0,"size":"0*0"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"pork"}]}}],"finished":false},"status_code":200,"code":"","message":""}
......
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":73,"total_tokens":101,"image_count":0,"size":"0*0"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"."}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":198,"total_tokens":226,"image_count":1,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"image","image":"https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx"}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":199,"total_tokens":227,"image_count":1,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"Next"}]}}],"finished":false},"status_code":200,"code":"","message":""}
......
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":245,"total_tokens":273,"image_count":1,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"."}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":368,"total_tokens":396,"image_count":2,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"image","image":"https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx"}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":369,"total_tokens":397,"image_count":2,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"Finally"}]}}],"finished":false},"status_code":200,"code":"","message":""}
......
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":416,"total_tokens":444,"image_count":2,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"pot"}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":417,"total_tokens":445,"image_count":2,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"null","message":{"role":"assistant","content":[{"type":"text","text":"."}]}}],"finished":false},"status_code":200,"code":"","message":""}
{"requestId":"12c7432c-8028-4289-a97c-4e22df98bxxx","usage":{"input_tokens":28,"output_tokens":541,"total_tokens":569,"image_count":3,"size":"1280*1280"},"output":{"choices":[{"finish_reason":"stop","message":{"role":"assistant","content":[{"type":"image","image":"https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx"}]}}],"finished":true},"status_code":200,"code":"","message":""}
Pemanggilan asinkron
Contoh permintaan
Catatan: Pemanggilan asinkron tidak memerlukan parameter stream
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;
/**
* wan2.6-image Output teks-gambar - Contoh pemanggilan asinkron
*/
public class Main {
static {
// URL wilayah Singapura. Base URL berbeda tiap wilayah.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan: apiKey="sk-xxx"
// Kunci API berbeda tiap wilayah. Dapatkan Kunci API: https://www.alibabacloud.com/help/en/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", "Give me a three-image tutorial for stir-fried pork with chili peppers")
)).build();
ImageGenerationParam param = ImageGenerationParam.builder()
.apiKey(apiKey)
.model("wan2.6-image")
.size("1280*1280")
.enableInterleave(true)
.maxImages(3)
.negativePrompt("")
.messages(Collections.singletonList(message))
.build();
ImageGeneration imageGeneration = new ImageGeneration();
ImageGenerationResult result = null;
try {
System.out.println("---async call for image interleave, creating task----");
result = imageGeneration.asyncCall(param);
} catch (ApiException | NoApiKeyException | UploadFileException e) {
throw new RuntimeException(e.getMessage());
}
System.out.println("Task creation result:");
System.out.println(JsonUtils.toJson(result));
String taskId = result.getOutput().getTaskId();
// Tunggu hingga tugas selesai
waitTask(taskId);
}
public static void waitTask(String taskId) throws ApiException, NoApiKeyException {
ImageGeneration imageGeneration = new ImageGeneration();
System.out.println("\n---waiting for task completion----");
ImageGenerationResult result = imageGeneration.wait(taskId, apiKey);
System.out.println("Task completion result:");
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
asyncCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
}
}
Contoh respons
-
Contoh respons pembuatan tugas
{ "requestId": "7d6c5760-334b-48c4-9b1e-08ee9c7fexxx", "output": { "task_id": "1bb9d9fa-bf1a-43dc-b5fe-366c1dc70xxx", "task_status": "PENDING" }, "status_code": 200, "code": "", "message": "" }
-
Contoh respons kueri hasil tugas
URL kedaluwarsa setelah 24 jam. Unduh gambar segera.
{ "requestId": "6ed62b00-2225-4fc3-8ee3-2aed0b484xxx", "usage": { "input_tokens": 29, "output_tokens": 471, "total_tokens": 500, "image_count": 3, "size": "1280*1280" }, "output": { "choices": [ { "finish_reason": "stop", "message": { "role": "assistant", "content": [ { "text": "Stir-fried pork with chili peppers is a classic Hunan dish and a beloved home-cooked favorite for many. Known for its fresh spiciness and tender meat, it's simple to prepare yet delivers an exceptional flavor experience. Today, we'll learn how to make this dish.\n\nFirst, preparing all ingredients is the key to success. Fresh pork, red and green chili peppers, garlic cloves, and ginger slices are essential. Slice the pork thinly, cut the chilies into segments, and mince the garlic and ginger.", "type": "text" }, { "image": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx", "type": "image" }, { "text": "Next, marinate the pork. Place the sliced pork in a bowl, add a little light soy sauce, cooking wine, starch, and cooking oil. Mix well by hand and marinate for 10 to 15 minutes. This treatment makes the pork slices more tender and flavorful.", "type": "text" }, { "image": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx", "type": "image" }, { "text": "Finally, heat oil in a wok over high heat. Add the marinated pork slices and quickly stir-fry until they change color, then remove and set aside. Leave some oil in the wok, add minced garlic and ginger to release their aroma, then add chili segments and stir-fry until fragrant. Add the pork back in, season with light soy sauce, dark soy sauce, a pinch of sugar, and oyster sauce. Stir-fry quickly until evenly coated, sprinkle with chopped scallions, and serve.", "type": "text" }, { "image": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx", "type": "image" } ] } } ], "task_id": "1bb9d9fa-bf1a-43dc-b5fe-366c1dc70836", "task_status": "SUCCEEDED", "finished": true, "submit_time": "2026-01-16 18:26:32.082", "scheduled_time": "2026-01-16 18:26:32.133", "end_time": "2026-01-16 18:28:41.748" }, "status_code": 200, "code": "", "message": "" }
Batasan
-
Validitas data:
task_iddanurlgambar hanya disimpan selama 24 jam. Setelah periode ini, data tersebut tidak dapat diakses atau diunduh. -
Moderasi konten: Baik
promptinput maupun gambar output menjalani moderasi konten. Konten yang tidak sesuai mengembalikan errorIPInfringementSuspectatauDataInspectionFailed. Lihat 错误码.
Penagihan dan pembatasan laju
-
Kuota gratis dan harga: Harga model.
-
Untuk batas laju model, lihat Wanxiang.
-
Anda dikenai biaya per gambar yang berhasil dihasilkan. Pemanggilan yang gagal tidak dikenai biaya dan tidak mengurangi kuota gratis.
Kode error
Jika pemanggilan model gagal dan mengembalikan pesan error, lihat 错误码 untuk penyelesaian.
FAQ
T: Bagaimana cara melihat biaya inferensi dan volume pemanggilan model?
J: Lihat Penyelidikan tagihan dan manajemen biaya.
T: Mengapa saya tidak bisa menjalankan contoh kode?
J: Tingkatkan SDK Anda ke versi terbaru. Instal SDK.