Model text-to-image Wan menghasilkan gambar dari teks dan mendukung berbagai gaya artistik serta efek fotografi realistis untuk memenuhi beragam kebutuhan kreatif.
Tautan cepat: Coba online (Singapura | Virginia | Beijing) | Situs resmi Wan
Fitur-fitur di situs resmi Wan mungkin berbeda dari kemampuan API. Dokumen ini menjelaskan kemampuan aktual API dan diperbarui sesuai dengan itu.
Prasyarat
Sebelum melakukan panggilan, dapatkan Kunci API dan atur Kunci API sebagai variabel lingkungan. Untuk melakukan panggilan menggunakan SDK, instal SDK DashScope.
Wilayah Singapura, Virginia, dan Beijing memiliki Kunci API dan titik akhir permintaan yang terpisah. Jangan gunakan secara bergantian. Panggilan lintas wilayah menyebabkan kegagalan autentikasi atau kesalahan layanan. Untuk informasi selengkapnya, lihat Pilih wilayah dan mode penyebaran.
Panggilan sinkron HTTP (wan2.6)
API pada bagian ini menggunakan protokol baru dan hanya mendukung model wan2.6.
Anda dapat mengambil hasil dalam satu permintaan. Proses ini sederhana dan direkomendasikan untuk sebagian besar skenario.
Singapura: POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
Virginia: POST https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
Beijing: POST https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
Parameter permintaan | Text-to-image |
Header permintaan | |
Content-Type Tipe konten permintaan. Anda harus mengatur parameter ini ke | |
Authorization Kredensial autentikasi. API ini menggunakan Kunci API Model Studio untuk autentikasi. Contoh: `Bearer sk-xxxx`. | |
Body permintaan | |
model Nama model. Contoh: wan2.6-t2i. Catatan Untuk panggilan HTTP pada model wan2.5 dan versi sebelumnya, lihat pemanggilan asinkron HTTP. | |
input Informasi input dasar. | |
parameters Parameter pengeditan gambar. |
Parameter respons | Tugas berhasilData tugas, seperti status tugas dan URL gambar, hanya disimpan selama 24 jam dan kemudian secara otomatis dihapus. Anda harus segera menyimpan gambar yang dihasilkan. Eksekusi Tugas Tidak NormalJika tugas gagal, informasi tentang kesalahan dikembalikan. Bidang kode dan pesan menunjukkan penyebab kesalahan. Untuk mengatasi kesalahan tersebut, lihat Pesan kesalahan. |
output Informasi output tugas. | |
usage Statistik untuk output. Hanya hasil yang berhasil yang dihitung. | |
request_id ID permintaan unik. Anda dapat menggunakan ID ini untuk melacak dan memecahkan masalah. | |
code Kode kesalahan. Parameter ini dikembalikan hanya ketika permintaan gagal. Untuk informasi selengkapnya, lihat Pesan kesalahan. | |
message Pesan kesalahan terperinci. Parameter ini dikembalikan hanya ketika permintaan gagal. Untuk informasi selengkapnya, lihat Pesan kesalahan. |
Panggilan asinkron HTTP (wan2.6)
API pada bagian ini menggunakan protokol baru dan hanya mendukung model wan2.6.
Metode ini cocok untuk skenario yang sensitif terhadap timeout. Prosesnya melibatkan dua langkah inti: Buat tugas lalu polling untuk mendapatkan hasilnya. Langkah-langkahnya sebagai berikut:
Langkah 1: Buat tugas untuk mendapatkan ID tugas
Singapura: POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/image-generation/generation
Virginia: POST https://dashscope-us.aliyuncs.com/api/v1/services/aigc/image-generation/generation
Beijing: POST https://dashscope.aliyuncs.com/api/v1/services/aigc/image-generation/generation
Setelah tugas dibuat, gunakan
task_idyang dikembalikan untuk menanyakan hasilnya. `task_id` berlaku selama 24 jam. Jangan membuat tugas duplikat. Sebaliknya, gunakan polling untuk mengambil hasilnya.
Parameter permintaan | Text-to-image |
Header permintaan | |
Content-Type Tipe konten permintaan. Anda harus mengatur parameter ini ke | |
Authorization Kredensial autentikasi. API ini menggunakan Kunci API Model Studio untuk autentikasi. Contoh: `Bearer sk-xxxx`. | |
X-DashScope-Async Parameter ini digunakan untuk mengonfigurasi pemrosesan asinkron. Karena permintaan HTTP hanya mendukung pemrosesan asinkron, Anda harus mengatur parameter ini ke Penting Jika Anda tidak menyertakan header permintaan ini, pesan kesalahan "current user api does not support synchronous calls" dikembalikan. | |
Body permintaan | |
model Nama model. Contoh: wan2.6-t2i. Catatan Untuk panggilan HTTP ke model wan2.5 dan versi sebelumnya, lihat pemanggilan asinkron HTTP. | |
input Informasi input dasar. | |
parameters Parameter pengeditan gambar. |
Parameter respons | Respons berhasilSimpan `task_id` untuk menanyakan status dan hasil tugas. Respons kesalahanPembuatan tugas gagal. Untuk informasi selengkapnya, lihat Pesan kesalahan untuk mengatasi masalah tersebut. |
output Informasi output tugas. | |
request_id ID permintaan unik. Anda dapat menggunakan ID ini untuk melacak dan memecahkan masalah. | |
code Kode kesalahan. Parameter ini dikembalikan hanya ketika permintaan gagal. Untuk informasi selengkapnya, lihat Pesan kesalahan. | |
message Pesan kesalahan terperinci. Parameter ini dikembalikan hanya ketika permintaan gagal. Untuk informasi selengkapnya, lihat Pesan kesalahan. |
Langkah 2: Tanyakan hasil berdasarkan ID tugas
Singapura: GET https://dashscope-intl.aliyuncs.com/api/v1/tasks/{task_id}
Virginia: GET https://dashscope-us.aliyuncs.com/api/v1/tasks/{task_id}
Beijing: GET https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}
Saran polling: Pembuatan gambar bisa memakan waktu beberapa menit. Kami menyarankan Anda menggunakan mekanisme polling dengan interval permintaan yang wajar, misalnya 10 detik, untuk mengambil hasilnya.
Transisi status tugas: PENDING → RUNNING → SUCCEEDED atau FAILED.
URL hasil: Setelah tugas berhasil, URL gambar dikembalikan. URL berlaku selama 24 jam. Setelah Anda mengambil URL tersebut, Anda harus segera mengunduh dan menyimpan gambar ke layanan penyimpanan permanen, seperti Object Storage Service (OSS).
Parameter permintaan | Tanyakan hasil tugasGanti |
Header permintaan | |
Authorization Kredensial autentikasi. API ini menggunakan Kunci API Model Studio untuk autentikasi. Contoh: `Bearer sk-xxxx`. | |
Parameter path URL | |
task_id ID tugas. |
Parameter respons | Tugas berhasilData tugas, seperti status tugas dan URL gambar, hanya disimpan selama 24 jam dan kemudian secara otomatis dihapus. Anda harus segera menyimpan gambar yang dihasilkan. Tugas tidak normalJika tugas gagal dieksekusi karena alasan apa pun, informasi yang relevan dikembalikan. Bidang kode dan pesan menunjukkan penyebab kesalahan. Untuk informasi selengkapnya, lihat Pesan kesalahan untuk mengatasi masalah tersebut. |
output Informasi output tugas. | |
usage Statistik untuk output. Hanya hasil yang berhasil yang dihitung. | |
request_id ID permintaan unik. Anda dapat menggunakan ID ini untuk melacak dan memecahkan masalah. | |
code Kode kesalahan. Parameter ini dikembalikan hanya ketika permintaan gagal. Untuk informasi selengkapnya, lihat Pesan kesalahan. | |
message Pesan kesalahan terperinci. Parameter ini dikembalikan hanya ketika permintaan gagal. Untuk informasi selengkapnya, lihat Pesan kesalahan. |
Panggilan asinkron HTTP (model wan2.5 dan versi sebelumnya)
API ini menggunakan protokol lama dan hanya mendukung model wan2.5 dan versi sebelumnya.
Karena tugas text-to-image memakan waktu dan biasanya membutuhkan 1 hingga 2 menit, API menggunakan pemanggilan asinkron. Prosesnya melibatkan dua langkah inti: Buat tugas lalu polling untuk mendapatkan hasilnya. Langkah-langkahnya sebagai berikut:
Waktu yang sebenarnya diperlukan tergantung pada jumlah tugas dalam antrian dan status eksekusi layanan. Bersabarlah saat mengambil hasilnya.
Langkah 1: Buat tugas untuk mendapatkan ID tugas
Singapura: POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text2image/image-synthesis
Beijing: POST https://dashscope.aliyuncs.com/api/v1/services/aigc/text2image/image-synthesis
Setelah tugas dibuat, gunakan
task_idyang dikembalikan untuk menanyakan hasilnya. `task_id` berlaku selama 24 jam. Jangan membuat tugas duplikat. Sebaliknya, gunakan polling untuk mengambil hasilnya.
Parameter permintaan | Text-to-imageKunci API untuk wilayah Singapura dan Beijing berbeda. Untuk informasi selengkapnya, lihat Dapatkan dan konfigurasikan Kunci API URL berikut untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan yang berikut: https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis Text-to-image (menggunakan prompt negatif)Gunakan parameter negative_prompt untuk mencegah elemen "person" muncul dalam gambar yang dihasilkan. Kunci API untuk wilayah Singapura dan Beijing berbeda. Untuk informasi selengkapnya, lihat Dapatkan dan konfigurasikan Kunci API URL berikut untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan yang berikut: https://dashscope.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis |
Header permintaan | |
Content-Type Tipe konten permintaan. Anda harus mengatur parameter ini ke | |
Authorization Kredensial autentikasi. API ini menggunakan Kunci API Model Studio untuk autentikasi. Contoh: `Bearer sk-xxxx`. | |
X-DashScope-Async Parameter ini digunakan untuk mengonfigurasi pemrosesan asinkron. Karena permintaan HTTP hanya mendukung pemrosesan asinkron, Anda harus mengatur parameter ini ke Penting Jika Anda tidak menyertakan header permintaan ini, pesan kesalahan "current user api does not support synchronous calls" dikembalikan. | |
Body permintaan | |
model Nama model. Untuk model text-to-image, lihat Daftar model. Contoh: wan2.5-t2i-preview. Catatan Untuk informasi tentang panggilan HTTP untuk model wan2.6, lihat panggilan sinkron HTTP dan panggilan asinkron HTTP. | |
input Informasi input dasar, seperti prompt. | |
parameters Parameter pengeditan gambar. Anda dapat mengatur resolusi gambar, mengaktifkan penulisan ulang prompt, menambahkan watermark, dan lainnya. |
Parameter respons | Respons berhasilSimpan `task_id` untuk menanyakan status dan hasil tugas. Respons kesalahanPembuatan tugas gagal. Untuk informasi selengkapnya, lihat Pesan kesalahan untuk mengatasi masalah tersebut. |
output Informasi output tugas. | |
request_id ID permintaan unik. Anda dapat menggunakan ID ini untuk melacak dan memecahkan masalah. | |
code Kode kesalahan. Parameter ini dikembalikan hanya ketika permintaan gagal. Untuk informasi selengkapnya, lihat Pesan kesalahan. | |
message Pesan kesalahan terperinci. Parameter ini dikembalikan hanya ketika permintaan gagal. Untuk informasi selengkapnya, lihat Pesan kesalahan. |
Langkah 2: Tanyakan hasil berdasarkan ID tugas
Singapura: GET https://dashscope-intl.aliyuncs.com/api/v1/tasks/{task_id}
Beijing: GET https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}
Saran polling: Pembuatan gambar bisa memakan waktu beberapa menit. Kami menyarankan Anda menggunakan mekanisme polling dengan interval permintaan yang wajar, misalnya 10 detik, untuk mengambil hasilnya.
Transisi status tugas: PENDING → RUNNING → SUCCEEDED atau FAILED.
URL hasil: Setelah tugas berhasil, URL gambar dikembalikan. URL berlaku selama 24 jam. Setelah Anda mengambil URL tersebut, Anda harus segera mengunduh dan menyimpan gambar ke layanan penyimpanan permanen, seperti Object Storage Service (OSS).
Parameter permintaan | Hasil Kueri TugasGanti Kunci API bersifat spesifik wilayah. Dapatkan Kunci API. Untuk model di wilayah Beijing, ganti base_url dengan https://dashscope.aliyuncs.com/api/v1/tasks/86ecf553-d340-4e21-xxxxxxxxx |
Header permintaan | |
Authorization Kredensial autentikasi. API ini menggunakan Kunci API Model Studio untuk autentikasi. Contoh: `Bearer sk-xxxx`. | |
Parameter path URL | |
task_id ID tugas. |
Parameter respons | Tugas berhasilURL gambar hanya disimpan selama 24 jam dan kemudian secara otomatis dihapus. Anda harus segera menyimpan gambar yang dihasilkan. Tugas gagalJika tugas gagal, `task_status` diatur ke FAILED, dan kode serta pesan kesalahan disediakan. Untuk informasi selengkapnya, lihat Pesan kesalahan untuk mengatasi masalah tersebut. Kegagalan tugas parsialModel dapat menghasilkan beberapa gambar dalam satu tugas. Jika setidaknya satu gambar berhasil dihasilkan, status tugas ditandai sebagai Kueri tugas kedaluwarsa`task_id` berlaku selama 24 jam. Setelah periode ini, kueri gagal dan mengembalikan pesan kesalahan berikut. |
output Informasi output tugas. | |
usage Statistik untuk output. Hanya hasil yang berhasil yang dihitung. | |
request_id ID permintaan unik. Anda dapat menggunakan ID ini untuk melacak dan memecahkan masalah. |
SDK Python DashScope
Nama parameter dalam SDK sebagian besar konsisten dengan yang ada di API HTTP. Struktur parameter dienkapsulasi berdasarkan fitur bahasa pemrograman.
Karena tugas text-to-image memakan waktu, SDK mengenkapsulasi proses panggilan asinkron HTTP di lapisan dasar dan mendukung metode pemanggilan sinkron maupun asinkron.
Waktu yang sebenarnya diperlukan tergantung pada jumlah tugas dalam antrian dan status eksekusi layanan. Bersabarlah saat mengambil hasilnya.
wan2.6
Kode berikut hanya untuk model wan2.6.
Pastikan versi SDK Python DashScope Anda minimal
1.25.7sebelum menjalankan kode berikut. Untuk memperbarui SDK, lihat Instal SDK.
Parameter base_url dan Kunci API tidak universal di semua wilayah. Contoh berikut menunjukkan panggilan di wilayah Singapura:
Singapura: https://dashscope-intl.aliyuncs.com/api/v1
Virginia: https://dashscope-us.aliyuncs.com/api/v1
Beijing: https://dashscope.aliyuncs.com/api/v1
Pemanggilan sinkron
Contoh permintaan
import os
import dashscope
from dashscope.aigc.image_generation import ImageGeneration
from dashscope.api_entities.dashscope_response import Message
# Berikut ini adalah base_url untuk wilayah Singapura. base_url berbeda untuk setiap wilayah.
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/zh/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)
Contoh respons
URL berlaku selama 24 jam. Anda harus segera mengunduh gambar.
{
"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
}
}Pemanggilan asinkron
Contoh permintaan
import os
import dashscope
from dashscope.aigc.image_generation import ImageGeneration
from dashscope.api_entities.dashscope_response import Role, Message
from http import HTTPStatus
# Berikut ini adalah base_url untuk wilayah Singapura. base_url berbeda untuk setiap wilayah.
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/zh/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': '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}")
# 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}")
# Dapatkan informasi 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
1. Contoh respons untuk membuat tugas
{
"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. Contoh respons untuk menanyakan hasil tugas
URL berlaku selama 24 jam. Anda harus segera mengunduh gambar.
{
"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
}
}Model wan2.5 dan versi sebelumnya
Kode berikut hanya untuk model wan2.5 dan versi sebelumnya.
Sebelum menjalankan kode berikut, pastikan versi SDK Python DashScope Anda minimal
1.25.2.Versi yang lebih lama dapat memicu kesalahan seperti "url error, please check url!". Untuk informasi selengkapnya tentang cara memperbarui SDK, lihat Instal SDK.
Parameter base_url dan Kunci API tidak universal di semua wilayah. Contoh berikut menunjukkan panggilan di wilayah Singapura:
Singapura: https://dashscope-intl.aliyuncs.com/api/v1
Beijing: https://dashscope.aliyuncs.com/api/v1
Pemanggilan sinkron
Contoh permintaan
from http import HTTPStatus
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
import requests
from dashscope import ImageSynthesis
import os
import dashscope
# Berikut ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
# Kunci API untuk wilayah Singapura dan Beijing berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/zh/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:
# Simpan gambar ke direktori saat ini
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))
Contoh respons
URL berlaku selama 24 jam. Anda harus segera mengunduh gambar.
{
"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
}
}
Pemanggilan asinkron
Contoh permintaan
from http import HTTPStatus
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
import requests
from dashscope import ImageSynthesis
import os
import dashscope
# Berikut ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
# Kunci API untuk wilayah Singapura dan Beijing berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/zh/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)
# Buat tugas asinkron
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
# Tunggu hingga tugas asinkron selesai
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)
# simpan file ke direktori saat ini
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))
# Dapatkan informasi tugas asinkron
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))
# Batalkan tugas asinkron. Hanya tugas dalam status PENDING yang dapat dibatalkan.
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()
Contoh respons
1. Contoh respons untuk membuat tugas
{
"status_code": 200,
"request_id": "31b04171-011c-96bd-ac00-f0383b669cc7",
"code": "",
"message": "",
"output": {
"task_id": "4f90cf14-a34e-4eae-xxxxxxxx",
"task_status": "PENDING",
"results": []
},
"usage": null
}2. Contoh respons untuk menanyakan hasil tugas
URL berlaku selama 24 jam. Anda harus segera mengunduh gambar.
{
"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
}
}
Panggilan SDK Java DashScope
Nama parameter dalam SDK sebagian besar konsisten dengan yang ada di API HTTP. Struktur parameter dienkapsulasi berdasarkan fitur bahasa pemrograman.
Karena tugas text-to-image memakan waktu, SDK mengenkapsulasi proses panggilan asinkron HTTP di lapisan dasar dan mendukung metode pemanggilan sinkron maupun asinkron.
Waktu yang sebenarnya diperlukan tergantung pada jumlah tugas dalam antrian dan status eksekusi layanan. Bersabarlah saat mengambil hasilnya.
wan2.6
Kode berikut hanya untuk model wan2.6-t2i.
Pastikan versi SDK Java DashScope Anda minimal
2.22.6sebelum menjalankan kode berikut.
Parameter base_url dan Kunci API spesifik untuk setiap wilayah. Contoh berikut menunjukkan panggilan yang dibuat dari wilayah Singapura:
Singapura: https://dashscope-intl.aliyuncs.com/api/v1
Virginia: https://dashscope-us.aliyuncs.com/api/v1
Beijing: https://dashscope.aliyuncs.com/api/v1
Pemanggilan 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.Collections;
public class Main {
static {
// Berikut ini adalah URL untuk wilayah Singapura. base_url berbeda untuk setiap wilayah.
Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
}
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: apiKey="sk-xxx"
// Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/zh/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());
}
}
}Contoh respons
URL berlaku selama 24 jam. Anda harus segera mengunduh gambar.
{
"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
}
}Pemanggilan 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.Collections;
public class Main {
static {
// Berikut ini adalah URL untuk wilayah Singapura. base_url berbeda untuk setiap wilayah.
Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
}
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: apiKey="sk-xxx"
// Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/zh/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();
// Tunggu hingga tugas selesai
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());
}
}
}Contoh respons
1. Contoh respons untuk membuat tugas
{
"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. Contoh respons untuk menanyakan hasil tugas
URL berlaku selama 24 jam. Anda harus segera mengunduh gambar.
{
"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
}
}Model wan2.5 dan versi sebelumnya
Model
wan2.6-t2itidak mendukung panggilan SDK Java. Kode berikut hanya untuk model wan2.5 dan versi sebelumnya.Sebelum menjalankan kode berikut, pastikan versi SDK Java DashScope Anda adalah
2.22.2atau lebih baru.Versi yang lebih lama dapat memicu kesalahan seperti "url error, please check url!". Untuk informasi selengkapnya tentang cara memperbarui SDK, lihat Instal SDK.
Parameter base_url dan Kunci API tidak universal di semua wilayah. Contoh berikut menunjukkan panggilan di wilayah Singapura:
Singapura: https://dashscope-intl.aliyuncs.com/api/v1
Beijing: https://dashscope.aliyuncs.com/api/v1
Pemanggilan sinkron
Contoh permintaan
// 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 {
// Berikut ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
}
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: apiKey="sk-xxx"
// Kunci API untuk wilayah Singapura dan Beijing berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/zh/model-studio/get-api-key
static String apiKey = System.getenv("DASHSCOPE_API_KEY");
public static void basicCall() throws ApiException, NoApiKeyException {
// Setel parameter
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();
// Jika mengatur variabel lingkungan DASHSCOPE_API_KEY, apiKey dapat 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());
}
}
}Contoh respons
URL berlaku selama 24 jam. Anda harus segera mengunduh gambar.
{
"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
}
}Pemanggilan asinkron
Contoh permintaan
// 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 {
// Berikut ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
}
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: apiKey="sk-xxx"
// Kunci API untuk wilayah Singapura dan Beijing berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/zh/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);
}
/**
* Buat tugas asinkron
* @return taskId
*/
public String createAsyncTask() {
// Setel parameter
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;
}
/**
* Tunggu hingga tugas asinkron selesai
* @param taskId ID tugas
* */
public void waitAsyncTask(String taskId) {
ImageSynthesis imageSynthesis = new ImageSynthesis();
ImageSynthesisResult result = null;
try {
// Setelah mengonfigurasi variabel lingkungan, Anda dapat mengatur apiKey ke null di sini
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();
}
}Contoh respons
1. Contoh respons untuk membuat tugas
{
"request_id": "5dbf9dc5-4f4c-9605-85ea-542f97709ba8",
"output": {
"task_id": "7277e20e-aa01-4709-xxxxxxxx",
"task_status": "PENDING"
}
}2. Contoh respons untuk menanyakan hasil tugas
{
"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
}
}Batasan
Validitas data:
task_iddanurlgambar hanya disimpan selama 24 jam. Setelah periode ini, data tersebut tidak dapat ditanyakan atau diunduh.Moderasi konten:
promptinput dan gambar output keduanya dikenai moderasi konten. Permintaan yang berisi konten terlarang menghasilkan kesalahan `IPInfringementSuspect` atau `DataInspectionFailed`. Untuk informasi selengkapnya, lihat Pesan kesalahan.Konfigurasi akses jaringan: URL gambar disimpan di OSS. Jika sistem bisnis Anda tidak dapat mengakses URL OSS eksternal karena kebijakan keamanan, Anda harus menambahkan nama domain OSS berikut ke daftar putih Anda.
# Daftar nama domain 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
Penagihan dan pembatasan laju
Untuk informasi tentang kuota gratis dan harga satuan model, lihat Daftar Model.
Untuk batas laju model, lihat Wan.
Rincian penagihan: Penagihan didasarkan pada jumlah gambar yang berhasil dihasilkan. Panggilan model yang gagal atau kesalahan pemrosesan tidak dikenai biaya atau tidak mengurangi kuota gratis.
Kode kesalahan
Jika panggilan gagal, lihat Pesan kesalahan untuk troubleshooting.
FAQ
T: Bagaimana cara melihat biaya inferensi dan volume panggilan untuk model?
J: Untuk informasi selengkapnya, lihat Kueri tagihan dan manajemen biaya.