Model text-to-image Wan menghasilkan gambar berdasarkan prompt teks dan mendukung gaya artistik serta efek fotografi realistis.
Tautan cepat: Coba online (Singapura | Virginia | Beijing) | Situs resmi Wan
CatatanFitur situs web Wan mungkin berbeda dari kemampuan API. Dokumen ini mencakup API dan diperbarui seiring terjadinya perubahan.
Prasyarat
Sebelum melakukan panggilan, dapatkan Kunci API dan ekspor Kunci API sebagai variabel lingkungan. Untuk melakukan panggilan menggunakan SDK, instal SDK DashScope.
PentingWilayah Singapura, AS (Virginia), dan China (Beijing) memiliki Kunci API dan titik akhir permintaan yang terpisah. Keduanya tidak dapat saling dipertukarkan. Panggilan lintas-wilayah menyebabkan kegagalan otentikasi atau kesalahan layanan. Untuk informasi selengkapnya, lihat Pilih wilayah dan cakupan penerapan layanan.
Panggilan sinkron HTTP (wan2.6)
PentingAPI pada bagian ini menggunakan protokol baru dan hanya mendukung model wan2.6.
Ambil hasil dalam satu permintaan. Direkomendasikan untuk sebagian besar kasus penggunaan.
Singapura
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
Saat memanggil, ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya.
AS (Virginia)
POST https://{WorkspaceId}.us-east-1.maas.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 memanggil, ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya.
Cakupan penerapan global (wilayah Frankfurt) hanya mendukung panggilan asinkron.
Parameter permintaan | Text-to-image |
Header permintaan | |
Content-Type Tipe konten permintaan. Harus | |
Authorization Mengotentikasi permintaan dengan Kunci API Model Studio. Contoh: Bearer sk-xxxx. | |
Body permintaan | |
model Nama model. Contoh: wan2.6-t2i. CatatanUntuk model wan2.5 dan sebelumnya, lihat panggilan asinkron HTTP untuk panggilan HTTP. | |
input Objek input. | |
parameters Parameter pembuatan gambar. |
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 gagalJika tugas gagal, API mengembalikan informasi kesalahan. Identifikasi penyebab dari bidang kode dan pesan. Lihat Kode kesalahan. |
output Objek output. | |
usage Statistik penggunaan untuk permintaan. Hanya hasil yang berhasil yang dihitung. | |
request_id Identifikasi permintaan unik untuk pelacakan dan troubleshooting. | |
code Kode kesalahan. Dikembalikan hanya untuk permintaan yang gagal. Lihat Kode kesalahan. | |
message Pesan kesalahan terperinci. Dikembalikan hanya untuk permintaan yang gagal. Lihat Kode kesalahan. |
Panggilan asinkron HTTP (wan2.6)
PentingAPI pada bagian ini menggunakan protokol baru dan hanya mendukung model wan2.6.
Alur tugas mencakup dua langkah inti: Buat tugas → Polling hasil. Prosesnya sebagai berikut:
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://{WorkspaceId}.us-east-1.maas.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.
Catatan
- 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 | Text-to-image |
Header permintaan | |
Content-Type Tipe konten permintaan. Harus | |
Authorization Mengotentikasi permintaan dengan Kunci API Model Studio. Contoh: Bearer sk-xxxx. | |
X-DashScope-Async Mengaktifkan pemrosesan asinkron. Permintaan HTTP hanya mendukung panggilan asinkron. Harus PentingJika header permintaan ini tidak ada, kesalahan "current user api does not support synchronous calls" dikembalikan. | |
Body permintaan | |
model Nama model. Contoh: wan2.6-t2i. CatatanUntuk model wan2.5 dan sebelumnya, lihat panggilan asinkron HTTP. | |
input Objek input. | |
parameters Parameter pembuatan gambar. |
Parameter respons | Respons berhasilSimpan Respons kesalahanPembuatan tugas gagal. Lihat Kode kesalahan. |
output Objek output. | |
request_id Identifikasi permintaan unik untuk pelacakan dan troubleshooting. | |
code Kode kesalahan. Dikembalikan hanya untuk permintaan yang gagal. Lihat Kode kesalahan. | |
message Pesan kesalahan terperinci. Dikembalikan hanya untuk permintaan yang gagal. Lihat Kode kesalahan. |
Langkah 2: Tanyakan hasil berdasarkan 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://{WorkspaceId}.us-east-1.maas.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.
Catatan
- Rekomendasi polling: Pembuatan gambar memakan waktu lama. Gunakan mekanisme polling dengan interval yang wajar, 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. Eksekusi tugas gagalJika tugas gagal, API mengembalikan informasi kesalahan. Identifikasi penyebab dari bidang kode dan pesan. Lihat Kode kesalahan. |
output Informasi output tugas. | |
usage Statistik penggunaan untuk permintaan. Hanya hasil yang berhasil yang dihitung. | |
request_id Identifikasi permintaan unik untuk pelacakan dan troubleshooting. | |
code Kode kesalahan. Dikembalikan hanya untuk permintaan yang gagal. Lihat Kode kesalahan. | |
message Pesan kesalahan terperinci. Dikembalikan hanya untuk permintaan yang gagal. Lihat Kode kesalahan. |
Panggilan asinkron HTTP (model wan2.5 dan sebelumnya)
PentingAPI ini menggunakan protokol lama dan hanya mendukung model wan2.5 dan sebelumnya.
Karena tugas text-to-image dapat memakan waktu signifikan (biasanya 1 hingga 2 menit), API menggunakan panggilan asinkron. Alurnya mencakup dua langkah inti: Buat tugas → Polling hasil. Prosesnya sebagai berikut:
Waktu pemrosesan bergantung pada antrian tugas dan status layanan.
Langkah 1: Buat tugas dan dapatkan ID tugas
Singapura
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text2image/image-synthesis
Beijing
POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/text2image/image-synthesis
Catatan
- 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 | Text-to-image
Ganti Text-to-image (dengan prompt negatif)Gunakan negative_prompt untuk mencegah "orang" muncul dalam gambar yang dihasilkan.
Ganti |
Header permintaan | |
Content-Type Tipe konten permintaan. Harus | |
Authorization Mengotentikasi permintaan dengan Kunci API Model Studio. Contoh: Bearer sk-xxxx. | |
X-DashScope-Async Mengaktifkan pemrosesan asinkron. Permintaan HTTP hanya mendukung panggilan asinkron. Harus PentingJika header permintaan ini tidak ada, 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. CatatanUntuk panggilan HTTP ke model wan2.6, lihat panggilan sinkron HTTP dan panggilan asinkron HTTP. | |
input Objek input yang berisi prompt. | |
parameters Parameter pembuatan gambar. |
Parameter respons | Respons berhasilSimpan Respons kesalahanPembuatan tugas gagal. Lihat Kode kesalahan. |
output Informasi output tugas. | |
request_id Identifikasi permintaan unik untuk pelacakan dan troubleshooting. | |
code Kode kesalahan. Dikembalikan hanya untuk permintaan yang gagal. Lihat Kode kesalahan. | |
message Pesan kesalahan terperinci. Dikembalikan hanya untuk permintaan yang gagal. Lihat Kode kesalahan. |
Langkah 2: Tanyakan hasil berdasarkan 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.
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.
Catatan
- Rekomendasi polling: Pembuatan gambar memakan waktu lama. Gunakan mekanisme polling dengan interval yang wajar, 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 | Hasil Tugas KueriGanti
|
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 berhasilURL gambar hanya berlaku selama 24 jam lalu secara otomatis dihapus. Segera simpan gambar yang dihasilkan. Tugas gagalSaat tugas gagal, Kegagalan tugas sebagianModel dapat menghasilkan beberapa gambar per tugas. Jika setidaknya satu berhasil, status tugas adalah Kueri tugas kedaluwarsa
|
output Informasi output tugas. | |
usage Statistik penggunaan untuk permintaan. Hanya hasil yang berhasil yang dihitung. | |
request_id Identifikasi permintaan unik untuk pelacakan dan troubleshooting. |
SDK Python DashScope
Nama parameter SDK sesuai dengan API HTTP, dengan struktur yang disesuaikan untuk Python.
Karena tugas text-to-image dapat memakan waktu signifikan, SDK membungkus proses panggilan asinkron HTTP dan mendukung panggilan sinkron maupun asinkron.
Waktu pemrosesan bergantung pada antrian tugas dan status layanan.
wan2.6
Penting
- Kode berikut hanya untuk model wan2.6.
- Pastikan versi SDK Python DashScope Anda minimal 1.25.7 sebelum menjalankan kode berikut. Untuk memperbarui, lihat Instal SDK.
base_url dan Kunci API bersifat spesifik wilayah. Contoh berikut menunjukkan panggilan di wilayah Singapura:
Singapura
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1
Saat memanggil, ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya.
AS (Virginia)
https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/api/v1
China (Beijing)
https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1
Saat memanggil, 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 panggilan asinkron.
Panggilan sinkron
Contoh permintaan
import os
import dashscope
from dashscope.aigc.image_generation import ImageGeneration
from dashscope.api_entities.dashscope_response import Message
# URL berikut untuk wilayah Singapura. Saat memanggil, ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya. URL bervariasi berdasarkan wilayah.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.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 bersifat spesifik wilayah. Untuk mendapatkan Kunci API: https://www.alibabacloud.com/help/en/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("----Panggilan sinkron, mohon tunggu sebentar----")
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 tersebut.
{
"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
}
}
Panggilan 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
# URL berikut untuk wilayah Singapura. Saat memanggil, ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya. URL bervariasi berdasarkan wilayah.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.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 bersifat spesifik wilayah. Untuk mendapatkan 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("Membuat tugas asinkron...")
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("Tugas berhasil dibuat:", response)
return response
else:
raise Exception(f"Gagal membuat tugas: {response.code} - {response.message}")
# Tunggu hingga tugas selesai
def wait_for_completion(task_response):
print("Menunggu penyelesaian tugas...")
status = ImageGeneration.wait(task=task_response, api_key=api_key)
if status.output.task_status == "SUCCEEDED":
print("Tugas berhasil!")
print("Respons:", status)
else:
raise Exception(f"Tugas gagal dengan status: {status.output.task_status}")
# Ambil informasi tugas asinkron
def fetch_task_status(task):
print("Mengambil status tugas...")
status = ImageGeneration.fetch(task=task, api_key=api_key)
if status.status_code == HTTPStatus.OK:
print("Status tugas:", status.output.task_status)
print("Detail respons:", status)
else:
print(f"Gagal mengambil status: {status.code} - {status.message}")
# Batalkan tugas asinkron
def cancel_task(task):
print("Membatalkan tugas...")
response = ImageGeneration.cancel(task=task, api_key=api_key)
if response.status_code == HTTPStatus.OK:
print("Tugas berhasil dibatalkan:", response.output.task_status)
else:
print(f"Gagal membatalkan tugas: {response.code} - {response.message}")
# Alur eksekusi utama
if __name__ == "__main__":
task = create_async_task()
wait_for_completion(task)
Contoh respons
- 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
}
}
-
Contoh respons untuk menanyakan hasil tugas
URL berlaku selama 24 jam. Anda harus segera mengunduh gambar tersebut.
{
"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 sebelumnya
Penting
-
Kode berikut hanya untuk model wan2.5 dan sebelumnya.
-
Pastikan versi SDK Python DashScope Anda minimal 1.25.2 sebelum menjalankan kode berikut.
Jika versinya terlalu lama, kesalahan seperti "url error, please check url!" mungkin terjadi. Untuk memperbarui, lihat Instal SDK.
base_url dan Kunci API bersifat spesifik wilayah. Contoh berikut menunjukkan panggilan di wilayah Singapura:
Singapura
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1
Saat memanggil, ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya.
China (Beijing)
https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1
Saat memanggil, ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya.
Panggilan 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
# URL berikut untuk wilayah Singapura. Saat memanggil, ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya. URL bervariasi berdasarkan wilayah.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.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: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
print('----Panggilan sinkron, mohon tunggu sebentar----')
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 di 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 tersebut.
{
"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 elegant carvings on the windows and a beautiful wooden door with a brass handle. Inside, a variety of colorful flowers such as roses, tulips, and lilies are displayed. The background is a warm indoor scene with soft light, creating a peaceful 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 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
# URL berikut untuk wilayah Singapura. Saat memanggil, ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya. URL bervariasi berdasarkan wilayah.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.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: https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key = os.getenv("DASHSCOPE_API_KEY")
def async_call():
print('----Buat tugas----')
task_info = create_async_task()
print('----Tunggu tugas selesai, lalu simpan gambar----')
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('Gagal, status_code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
return rsp
# Tunggu 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('Gagal, status_code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
# Ambil 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('Gagal, 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('Gagal, status_code: %s, code: %s, message: %s' %
(rsp.status_code, rsp.code, rsp.message))
if __name__ == '__main__':
async_call()
Contoh respons
- 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
}
-
Contoh respons untuk menanyakan hasil tugas
URL berlaku selama 24 jam. Anda harus segera mengunduh gambar tersebut.
{
"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 elegant carvings on the windows and a beautiful wooden door with a brass handle. Inside, a variety of colorful flowers such as roses, tulips, and lilies are displayed. The background is a warm indoor scene with soft light, creating a peaceful 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
}
}
SDK Java DashScope
Nama parameter SDK sesuai dengan API HTTP, dengan struktur yang disesuaikan untuk Java.
Tugas text-to-image dapat memakan waktu signifikan. SDK membungkus alur panggilan asinkron HTTP dan mendukung panggilan sinkron maupun asinkron.
Waktu pemrosesan bergantung pada antrian tugas dan status layanan.
wan2.6
Penting
- Kode berikut hanya berlaku untuk model wan2.6-t2i.
- Pastikan versi SDK Java DashScope Anda 2.22.6 atau lebih baru sebelum menjalankan kode berikut.
base_url dan Kunci API spesifik untuk setiap wilayah dan tidak dapat saling dipertukarkan. Contoh berikut menunjukkan cara melakukan panggilan di wilayah Singapura:
Singapura
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1
Saat memanggil, ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya.
AS (Virginia)
https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/api/v1
China (Beijing)
https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1
Saat memanggil, 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 panggilan asinkron.
Panggilan 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 {
// URL berikut untuk wilayah Singapura. Saat memanggil, ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya. URL bervariasi berdasarkan wilayah.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: apiKey="sk-xxx"
// Kunci API berbeda untuk setiap wilayah. Untuk mendapatkan 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 {
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("---panggilan sinkron, mohon tunggu sebentar----");
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 tersebut.
{
"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
}
}
Panggilan 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 {
// URL berikut untuk wilayah Singapura. Saat memanggil, ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya. URL bervariasi berdasarkan wilayah.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: apiKey="sk-xxx"
// Kunci API berbeda untuk setiap wilayah. Untuk mendapatkan 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", "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("---panggilan asinkron, membuat tugas----");
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
- 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
}
-
Contoh respons untuk menanyakan hasil tugas
URL berlaku selama 24 jam. Anda harus segera mengunduh gambar tersebut.
{
"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 sebelumnya
Penting
-
Kode berikut hanya berlaku untuk model wan2.5 dan sebelumnya.
-
Pastikan versi SDK Java DashScope Anda 2.22.2 atau lebih baru sebelum menjalankan kode berikut.
Jika versi Anda terlalu lama, kesalahan seperti "url error, please check url!" mungkin terjadi. Lihat Instal SDK untuk memperbarui.
base_url dan Kunci API spesifik untuk setiap wilayah dan tidak dapat saling dipertukarkan. Contoh berikut menunjukkan cara melakukan panggilan di wilayah Singapura:
Singapura
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1
Saat memanggil, ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya.
China (Beijing)
https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1
Saat memanggil, ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya.
Panggilan 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 {
// URL berikut untuk wilayah Singapura. Saat memanggil, ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya. URL bervariasi berdasarkan wilayah.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.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: 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 {
// 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("---panggilan sinkron, mohon tunggu sebentar----");
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 variabel lingkungan DASHSCOPE_API_KEY diatur, Anda dapat mengatur apiKey ke 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 tersebut.
{
"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. A variety of fresh flowers, including roses, lilies, and sunflowers, are on display inside, vibrant in color and fragrant. The background is a cozy indoor scene with soft light streaming through the windows onto the flowers. 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
}
}
Panggilan 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 {
// URL berikut untuk wilayah Singapura. Saat memanggil, ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya. URL bervariasi berdasarkan wilayah.
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.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: https://www.alibabacloud.com/help/en/model-studio/get-api-key
static String apiKey = System.getenv("DASHSCOPE_API_KEY");
public void asyncCall() {
System.out.println("---buat tugas----");
String taskId = this.createAsyncTask();
System.out.println("---tunggu tugas selesai lalu kembalikan URL gambar----");
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
- Contoh respons untuk membuat tugas
{
"request_id": "5dbf9dc5-4f4c-9605-85ea-542f97709ba8",
"output": {
"task_id": "7277e20e-aa01-4709-xxxxxxxx",
"task_status": "PENDING"
}
}
- 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. A variety of fresh flowers, including roses, lilies, and sunflowers, are on display inside, vibrant in color and fragrant. The background is a cozy indoor scene with soft light streaming through the windows onto the flowers. 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_idtugas danurlgambar hanya disimpan selama 24 jam. Setelah periode ini, data tersebut tidak dapat dikueri atau diunduh. - Moderasi konten: Baik
promptinput maupun gambar output menjalani moderasi konten. Konten yang tidak sesuai mengembalikan kesalahanIPInfringementSuspectatauDataInspectionFailed. Lihat Kode kesalahan.
Penagihan dan pembatasan laju
- Periksa kuota gratis dan harga di konsol.
- Untuk pembatasan laju model, lihat Seri Wan.
- Penagihan didasarkan pada jumlah gambar yang berhasil dihasilkan. Panggilan yang gagal tidak dikenai biaya dan tidak mengurangi kuota gratis pengguna baru.
Kode kesalahan
Jika panggilan model gagal dan mengembalikan pesan kesalahan, lihat Kode kesalahan untuk penyelesaian.
FAQ
T: Bagaimana cara melihat biaya inferensi dan volume panggilan model?J: Lihat Pertanyaan tagihan dan manajemen biaya.