All Products
Search
Document Center

Alibaba Cloud Model Studio:Referensi API Wan text-to-image V2

Last Updated:Sep 09, 2026

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

curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
    --header 'Content-Type: application/json' \
    --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
    --data '{
        "model": "wan2.6-t2i",
        "input": {
            "messages": [
                {
                    "role": "user",
                    "content": [
                        {
                            "text": "A flower shop with exquisite windows, a beautiful wooden door, and flowers on display"
                        }
                    ]
                }
            ]
        },
        "parameters": {
            "prompt_extend": true,
            "watermark": false,
            "n": 1,
            "negative_prompt": "",
            "size": "1280*1280"
        }
    }'
Header permintaan

Content-Type string (Wajib)

Tipe konten permintaan. Harus application/json.

Authorization string (Wajib)

Mengotentikasi permintaan dengan Kunci API Model Studio. Contoh: Bearer sk-xxxx.

Body permintaan

model string (Wajib)

Nama model. Contoh: wan2.6-t2i.

CatatanUntuk model wan2.5 dan sebelumnya, lihat panggilan asinkron HTTP untuk panggilan HTTP.

input object (Wajib)

Objek input.

Properti

messages array (Wajib)

Pesan permintaan. Saat ini, hanya percakapan satu giliran yang didukung: kirim satu set parameter role dan content.

Properti

role string (Wajib)

Peran pesan. Harus diatur ke user.

content array (Wajib)

Array konten pesan.

Properti

text string(Wajib)

Petunjuk positif yang menjelaskan konten, gaya, dan komposisi yang diinginkan dari gambar yang dihasilkan.

Mendukung bahasa Mandarin dan Inggris, dengan panjang maksimum 2.100 karakter. Setiap karakter Mandarin, huruf, angka, atau simbol dihitung sebagai satu karakter. Karakter berlebih dipotong secara otomatis.

Contoh: Seekor kucing oranye duduk, bahagia, lincah, dan lucu, realistis dan akurat.

Catatan: Hanya satu input teks yang didukung. Kesalahan akan terjadi jika Anda tidak memberikan input teks atau memberikan beberapa input teks.

parameters object (Opsional)

Parameter pembuatan gambar.

Properti

negative_prompt string (opsional)

Prompt negatif yang menjelaskan hal yang tidak Anda inginkan dalam gambar.

Mendukung bahasa Mandarin dan Inggris. Panjang maksimum 500 karakter. Karakter berlebih dipotong secara otomatis.

Contoh: Resolusi rendah, kualitas rendah, anggota tubuh terdistorsi, jari cacat, warna terlalu jenuh, penampilan seperti lilin, tanpa detail wajah, permukaan terlalu halus, tampilan buatan AI. Komposisi kacau. Teks buram atau terdistorsi.

size string (Opsional)

Resolusi gambar output, dalam format width*height.

  • Nilai default adalah 1280*1280.
  • Total piksel harus antara 1280×1280 dan 1440×1440, dengan rasio aspek antara 1:4 dan 4:1. Misalnya, 768×2700 adalah resolusi yang valid.

Contoh: 1280*1280.

Resolusi yang direkomendasikan untuk rasio aspek umum

  • 1:1: 1280×1280
  • 3:4: 1104×1472
  • 4:3: 1472×1104
  • 9:16: 960×1696
  • 16:9: 1696×960

n integer (Opsional)

PentingNilai n secara langsung memengaruhi biaya. Biaya = Harga Satuan × Jumlah Gambar. Sebelum memanggil API, konfirmasi harga model.

Jumlah gambar yang akan dihasilkan. Nilainya harus bilangan bulat dari 1 hingga 4. Default-nya adalah 4.

Penagihan didasarkan pada jumlah gambar yang dihasilkan. Atur ke 1 untuk pengujian.

prompt_extend bool (Opsional)

Mengaktifkan penulisan ulang prompt. LLM mengoptimalkan prompt positif untuk meningkatkan hasil, terutama untuk prompt yang lebih pendek. Menambahkan waktu pemrosesan 3–4 detik.

  • true (default)
  • false

CatatanSaat penulisan ulang prompt diaktifkan, prompt yang ditulis ulang mungkin memperkenalkan konten berhak cipta dan memicu moderasi konten, yang mengembalikan kesalahan IPInfringementSuspect atau DataInspectionFailed. Jika Anda menerima salah satu kesalahan tersebut, atur prompt_extend ke false dan coba lagi. Jika prompt itu sendiri secara eksplisit menyebutkan karakter atau karya berhak cipta, menonaktifkan penulisan ulang prompt tidak menyelesaikan masalah dan Anda harus merevisi prompt tersebut.

watermark bool (Opsional)

Menambahkan watermark "AI Generated" di pojok kanan bawah gambar.

  • false (default)
  • true

seed integer (opsional)

Bibit angka acak. Rentang valid: [0,2147483647].

Menggunakan seed yang sama menghasilkan output serupa. Jika dihilangkan, algoritma menggunakan seed acak.

Catatan: Pembuatan gambar bersifat probabilistik. Bahkan dengan seed yang sama, hasilnya mungkin berbeda.

Parameter respons

Eksekusi tugas berhasil

Data tugas (status tugas dan URL gambar) hanya disimpan selama 24 jam lalu secara otomatis dihapus. Segera simpan gambar yang dihasilkan.

{
    "output": {
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "content": [
                        {
                            "image": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxxx.png?Expires=xxx",
                            "type": "image"
                        }
                    ],
                    "role": "assistant"
                }
            }
        ],
        "finished": true
    },
    "usage": {
        "image_count": 1,
        "input_tokens": 0,
        "output_tokens": 0,
        "size": "1280*1280",
        "total_tokens": 0
    },
    "request_id": "815505c6-7c3d-49d7-b197-xxxxx"
}

Eksekusi tugas gagal

Jika tugas gagal, API mengembalikan informasi kesalahan. Identifikasi penyebab dari bidang kode dan pesan. Lihat Kode kesalahan.

{
    "request_id": "a4d78a5f-655f-9639-8437-xxxxxx",
    "code": "InvalidParameter",
    "message": "num_images_per_prompt must be 1"
}

output object

Objek output.

Properti

choices array

Konten output yang dihasilkan oleh model.

Properti

finish_reason string

Alasan tugas dihentikan. stop menunjukkan penyelesaian normal.

message object

Pesan yang dikembalikan oleh model.

Properti

role string

Peran pesan, tetap sebagai assistant.

content array

Properti

image string

URL gambar yang dihasilkan dalam format PNG. Berlaku selama 24 jam. Unduh dan simpan gambar segera.

type string

Tipe output, tetap sebagai image.

finished boolean

Apakah tugas telah selesai.

  • true
  • false

usage object

Statistik penggunaan untuk permintaan. Hanya hasil yang berhasil yang dihitung.

Properti

image_count integer

Jumlah gambar yang dihasilkan.

size string

Resolusi gambar yang dihasilkan. Contoh: 1280*1280.

input_tokens integer

Jumlah token input. Untuk text-to-image, penagihan didasarkan pada jumlah gambar, sehingga nilai ini tetap 0.

output_tokens integer

Jumlah token output. Untuk text-to-image, penagihan didasarkan pada jumlah gambar, sehingga nilai ini tetap 0.

total_tokens integer

Jumlah total token. Untuk text-to-image, penagihan didasarkan pada jumlah gambar, sehingga nilai ini tetap 0.

request_id string

Identifikasi permintaan unik untuk pelacakan dan troubleshooting.

code string

Kode kesalahan. Dikembalikan hanya untuk permintaan yang gagal. Lihat Kode kesalahan.

message string

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_id yang dikembalikan untuk menanyakan hasilnya. task_id berlaku 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

curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/image-generation/generation' \
    --header 'Content-Type: application/json' \
    --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
    --header 'X-DashScope-Async: enable' \
    --data '{
        "model": "wan2.6-t2i",
        "input": {
            "messages": [
                {
                    "role": "user",
                    "content": [
                        {
                            "text": "A flower shop with exquisite windows, a beautiful wooden door, and flowers on display"
                        }
                    ]
                }
            ]
        },
        "parameters": {
            "prompt_extend": true,
            "watermark": false,
            "n": 1,
            "negative_prompt": "",
            "size": "1280*1280"
        }
    }'
Header permintaan

Content-Type string (Wajib)

Tipe konten permintaan. Harus application/json.

Authorization string (Wajib)

Mengotentikasi permintaan dengan Kunci API Model Studio. Contoh: Bearer sk-xxxx.

X-DashScope-Async string (Wajib)

Mengaktifkan pemrosesan asinkron. Permintaan HTTP hanya mendukung panggilan asinkron. Harus enable.

PentingJika header permintaan ini tidak ada, kesalahan "current user api does not support synchronous calls" dikembalikan.

Body permintaan

model string (Wajib)

Nama model. Contoh: wan2.6-t2i.

CatatanUntuk model wan2.5 dan sebelumnya, lihat panggilan asinkron HTTP.

input object (Wajib)

Objek input.

Properti

messages array (Wajib)

Pesan permintaan. Saat ini, hanya percakapan satu giliran yang didukung: kirim satu set parameter role dan content.

Properti

role string (Wajib)

Peran pesan. Harus diatur ke user.

content array (Wajib)

Array konten pesan.

Properti

text string(Wajib)

Petunjuk positif yang menggambarkan konten, gaya, dan komposisi yang diinginkan dari gambar yang dihasilkan.

Mendukung bahasa Mandarin dan Inggris, dengan panjang maksimum 2.100 karakter. Setiap karakter Mandarin, huruf, angka, atau simbol dihitung sebagai satu karakter. Karakter berlebih dipotong secara otomatis.

Contoh: Toko bunga dengan jendela indah, pintu kayu cantik, dan bunga-bunga yang dipajang.

Catatan: Hanya satu input teks yang didukung. Kesalahan akan terjadi jika Anda tidak memberikan input teks atau memberikan beberapa input teks.

parameters object (Opsional)

Parameter pembuatan gambar.

Properti

negative_prompt string (opsional)

Prompt negatif yang menjelaskan hal yang tidak Anda inginkan dalam gambar.

Mendukung bahasa Mandarin dan Inggris. Panjang maksimum 500 karakter. Karakter berlebih dipotong secara otomatis.

Contoh: Resolusi rendah, kualitas rendah, anggota tubuh terdistorsi, jari cacat, warna terlalu jenuh, penampilan seperti lilin, tanpa detail wajah, permukaan terlalu halus, tampilan buatan AI. Komposisi kacau. Teks buram atau terdistorsi.

size string (Opsional)

Resolusi gambar output, dalam format width*height.

  • Nilai default adalah 1280*1280.
  • Total piksel harus antara 1280×1280 dan 1440×1440, dengan rasio aspek antara 1:4 dan 4:1. Misalnya, 768×2700 adalah resolusi yang valid.

Contoh: 1280*1280.

Resolusi yang direkomendasikan untuk rasio aspek umum

  • 1:1: 1280×1280
  • 3:4: 1104×1472
  • 4:3: 1472×1104
  • 9:16: 960×1696
  • 16:9: 1696×960

n integer (Opsional)

PentingNilai n secara langsung memengaruhi biaya. Biaya = Harga Satuan × Jumlah Gambar. Sebelum memanggil API, konfirmasi harga model.

Jumlah gambar yang akan dihasilkan. Nilainya harus bilangan bulat dari 1 hingga 4. Default-nya adalah 4.

Penagihan didasarkan pada jumlah gambar yang dihasilkan. Atur ke 1 untuk pengujian.

prompt_extend bool (Opsional)

Mengaktifkan penulisan ulang prompt. LLM mengoptimalkan prompt positif untuk meningkatkan hasil, terutama untuk prompt yang lebih pendek. Menambahkan waktu pemrosesan 3–4 detik.

  • true (default)
  • false

CatatanSaat penulisan ulang prompt diaktifkan, prompt yang ditulis ulang mungkin memperkenalkan konten berhak cipta dan memicu moderasi konten, yang mengembalikan kesalahan IPInfringementSuspect atau DataInspectionFailed. Jika Anda menerima salah satu kesalahan tersebut, atur prompt_extend ke false dan coba lagi. Jika prompt itu sendiri secara eksplisit menyebutkan karakter atau karya berhak cipta, menonaktifkan penulisan ulang prompt tidak menyelesaikan masalah dan Anda harus merevisi prompt tersebut.

watermark bool (Opsional)

Menambahkan watermark "AI Generated" di pojok kanan bawah gambar.

  • false (default)
  • true

seed integer (opsional)

Bibit angka acak. Rentang valid: [0,2147483647].

Menggunakan seed yang sama menghasilkan output serupa. Jika dihilangkan, algoritma menggunakan seed acak.

Catatan: Pembuatan gambar bersifat probabilistik. Bahkan dengan seed yang sama, hasilnya mungkin berbeda.

Parameter respons

Respons berhasil

Simpan task_id untuk menanyakan status dan hasil tugas.

{
    "output": {
        "task_status": "PENDING",
        "task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx"
    },
    "request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
}

Respons kesalahan

Pembuatan tugas gagal. Lihat Kode kesalahan.

{
    "code": "InvalidApiKey",
    "message": "Invalid API-key provided.",
    "request_id": "7438d53d-6eb8-4596-8835-xxxxxx"
}

output object

Objek output.

Properti

task_id string

ID tugas. Berlaku untuk kueri selama 24 jam.

task_status string

Status tugas.

Nilai enumerasi

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN: Tugas tidak ada atau statusnya tidak diketahui.

request_id string

Identifikasi permintaan unik untuk pelacakan dan troubleshooting.

code string

Kode kesalahan. Dikembalikan hanya untuk permintaan yang gagal. Lihat Kode kesalahan.

message string

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 tugas

Ganti {task_id} dengan nilai task_id yang dikembalikan oleh panggilan API sebelumnya. task_id berlaku untuk kueri selama 24 jam, Ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya.

curl -X GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/{task_id} \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Header permintaan

Authorization string (Wajib)

Mengotentikasi permintaan dengan Kunci API Model Studio. Contoh: Bearer sk-xxxx.

Parameter path URL

task_id string (Wajib)

ID tugas.

Parameter respons

Eksekusi tugas berhasil

Data tugas (status tugas dan URL gambar) hanya disimpan selama 24 jam lalu secara otomatis dihapus. Segera simpan gambar yang dihasilkan.

{
    "request_id": "2ddf53fa-699a-4267-9446-xxxxxx",
    "output": {
        "task_id": "3cd3fa4e-53ee-4136-9cab-xxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2025-12-18 20:03:01.802",
        "scheduled_time": "2025-12-18 20:03:01.834",
        "end_time": "2025-12-18 20:03:29.260",
        "finished": true,
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "role": "assistant",
                    "content": [
                        {
                            "image": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx.png?Expires=xxx",
                            "type": "image"
                        }
                    ]
                }
            }
        ]
    },
    "usage": {
        "size": "1280*1280",
        "total_tokens": 0,
        "image_count": 1,
        "output_tokens": 0,
        "input_tokens": 0
    }
}

Eksekusi tugas gagal

Jika tugas gagal, API mengembalikan informasi kesalahan. Identifikasi penyebab dari bidang kode dan pesan. Lihat Kode kesalahan.

{
    "code": "InvalidApiKey",
    "message": "Invalid API-key provided.",
    "request_id": "7438d53d-6eb8-4596-8835-xxxxxx"
}

output object

Informasi output tugas.

Properti

task_id string

ID tugas. Berlaku untuk kueri selama 24 jam.

task_status string

Status tugas.

Nilai enumerasi

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN: Tugas tidak ada atau statusnya tidak diketahui.
Transisi status selama polling:
  • PENDING → RUNNING → SUCCEEDED atau FAILED.
  • Status kueri awal biasanya PENDING atau RUNNING.
  • Saat status berubah menjadi SUCCEEDED, respons berisi URL gambar yang dihasilkan.
  • Jika statusnya FAILED, periksa pesan kesalahan dan coba ulang tugas tersebut.

submit_time string

Waktu saat tugas dikirim. Waktu dalam UTC+8 dan formatnya YYYY-MM-DD HH:mm:ss.SSS.

scheduled_time string

Waktu saat tugas dieksekusi. Waktu dalam UTC+8 dan formatnya YYYY-MM-DD HH:mm:ss.SSS.

end_time string

Waktu saat tugas selesai. Waktu dalam UTC+8 dan formatnya YYYY-MM-DD HH:mm:ss.SSS.

finished boolean

Menunjukkan apakah tugas telah selesai.

  • true
  • false

choices array

Konten output yang dihasilkan oleh model.

Properti

finish_reason string

Alasan tugas dihentikan. stop menunjukkan penyelesaian normal.

message object

Pesan yang dikembalikan oleh model.

Properti

role string

Peran pesan, yang tetap sebagai assistant.

content array

Properti

image string

URL gambar yang dihasilkan dalam format PNG.

Tautan berlaku selama 24 jam. Anda harus segera mengunduh dan menyimpan gambar tersebut.

type string

Tipe output, yang tetap sebagai image.

usage object

Statistik penggunaan untuk permintaan. Hanya hasil yang berhasil yang dihitung.

Properti

image_count integer

Jumlah gambar yang dihasilkan.

size string

Resolusi gambar yang dihasilkan. Contoh: 1280*1280.

input_tokens integer

Jumlah token input. Nilai ini saat ini tetap 0.

output_tokens integer

Jumlah token output. Nilai ini saat ini tetap 0.

total_tokens integer

Jumlah total token. Nilai ini saat ini tetap 0.

request_id string

Identifikasi permintaan unik untuk pelacakan dan troubleshooting.

code string

Kode kesalahan. Dikembalikan hanya untuk permintaan yang gagal. Lihat Kode kesalahan.

message string

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_id yang dikembalikan untuk menanyakan hasilnya. task_id berlaku 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

Kunci API untuk wilayah Singapura dan Beijing berbeda. Dapatkan Kunci API

Berikut adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/text2image/image-synthesis

Ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya.

curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text2image/image-synthesis \
    -H 'X-DashScope-Async: enable' \
    -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
    -H 'Content-Type: application/json' \
    -d '{
    "model": "wan2.5-t2i-preview",
    "input": {
        "prompt": "A flower shop with exquisite windows, a beautiful wooden door, and flowers on display"
    },
    "parameters": {
        "size": "1280*1280",
        "n": 1
    }
}'

Text-to-image (dengan prompt negatif)

Gunakan negative_prompt untuk mencegah "orang" muncul dalam gambar yang dihasilkan.

Kunci API untuk wilayah Singapura dan Beijing berbeda. Dapatkan Kunci API

Berikut adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/text2image/image-synthesis

Ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya.

curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text2image/image-synthesis \
    -H 'X-DashScope-Async: enable' \
    -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
    -H 'Content-Type: application/json' \
    -d '{
    "model": "wan2.2-t2i-flash",
    "input": {
        "prompt": "Snowy ground, a small white chapel, aurora borealis, winter scene, soft light.",
        "negative_prompt": "people"
    },
    "parameters": {
        "size": "1024*1024",
        "n": 1
    }
}'
Header permintaan

Content-Type string (Wajib)

Tipe konten permintaan. Harus application/json.

Authorization string (Wajib)

Mengotentikasi permintaan dengan Kunci API Model Studio. Contoh: Bearer sk-xxxx.

X-DashScope-Async string (Wajib)

Mengaktifkan pemrosesan asinkron. Permintaan HTTP hanya mendukung panggilan asinkron. Harus enable.

PentingJika header permintaan ini tidak ada, kesalahan "current user api does not support synchronous calls" dikembalikan.

Body permintaan

model string (Wajib)

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 object (Wajib)

Objek input yang berisi prompt.

Properti

prompt string (Wajib)

Prompt positif yang menjelaskan konten dan gaya gambar yang dihasilkan.

Parameter ini mendukung bahasa Mandarin dan Inggris. Setiap karakter Mandarin, huruf, atau tanda baca dihitung sebagai satu karakter. Karakter berlebih dipotong secara otomatis. Batas panjang bervariasi tergantung versi model:

  • wan2.5-t2i-preview: Panjang maksimum 2.000 karakter.
  • seri model wan2.2 dan wan2.1: Panjang maksimum 500 karakter.
  • wanx2.0-t2i-turbo: Panjang maksimum 800 karakter.

Contoh: Seekor kucing oranye duduk, bahagia, lincah, dan lucu, realistis dan akurat.

Untuk tips penggunaan prompt, lihat Panduan Prompt Text-to-image.

negative_prompt string (Opsional)

Prompt negatif yang menentukan konten yang harus dikecualikan dari gambar. Gunakan ini untuk membatasi output.

Parameter ini mendukung bahasa Mandarin dan Inggris, dengan panjang maksimum 500 karakter. Karakter berlebih dipotong secara otomatis.

Contoh: resolusi rendah, kesalahan, kualitas terburuk, kualitas rendah, mutilasi, jari ekstra, proporsi buruk, dll.

parameters object (Opsional)

Parameter pembuatan gambar.

Properti

size string (Opsional)

Resolusi gambar output, dalam format width*height. Nilai default dan batasan bervariasi tergantung versi model:

  • wan2.5-t2i-preview: Nilai default adalah 1280*1280. Total piksel harus antara 1280×1280 dan 1440×1440, dengan rasio aspek antara 1:4 dan 4:1. Misalnya, 768×2700 adalah resolusi yang valid.
  • model wan2.2 dan sebelumnya: Nilai default adalah 1024*1024. Lebar dan tinggi gambar harus antara 512 dan 1440, dengan resolusi maksimum 1440×1440. Misalnya, 768×2700 melebihi batas sisi tunggal dan tidak didukung.

Contoh: 1280*1280.

Resolusi yang direkomendasikan untuk rasio aspek umum

Resolusi berikut berlaku untuk wan2.5-t2i-preview:

  • 1:1: 1280×1280
  • 3:4: 1104×1472
  • 4:3 (1472 × 1104)
  • 9:16: 960×1696
  • 16:9: 1696×960

n integer (Opsional)

PentingNilai n secara langsung memengaruhi biaya. Biaya = Harga Satuan × Jumlah Gambar. Sebelum memanggil API, konfirmasi harga model.

Jumlah gambar yang akan dihasilkan. Nilainya harus bilangan bulat dari 1 hingga 4. Default-nya adalah 4. Atur ke 1 untuk pengujian.

prompt_extend boolean (Opsional)

Mengaktifkan penulisan ulang prompt. LLM menulis ulang prompt input untuk meningkatkan hasil, terutama untuk prompt yang lebih pendek. Meningkatkan waktu pemrosesan.

  • true (default)
  • false

CatatanSaat penulisan ulang prompt diaktifkan, prompt yang ditulis ulang mungkin memperkenalkan konten berhak cipta dan memicu moderasi konten, yang mengembalikan kesalahan IPInfringementSuspect atau DataInspectionFailed. Jika Anda menerima salah satu kesalahan tersebut, atur prompt_extend ke false dan coba lagi. Jika prompt itu sendiri secara eksplisit menyebutkan karakter atau karya berhak cipta, menonaktifkan penulisan ulang prompt tidak menyelesaikan masalah dan Anda harus merevisi prompt tersebut.

watermark boolean (Opsional)

Menambahkan watermark "AI Generated" di pojok kanan bawah gambar.

  • false (default)
  • true

seed integer (opsional)

Bibit angka acak. Rentang valid: [0,2147483647].

Menggunakan seed yang sama menghasilkan output serupa. Jika dihilangkan, algoritma menggunakan seed acak.

Catatan: Pembuatan gambar bersifat probabilistik. Bahkan dengan seed yang sama, hasilnya mungkin berbeda.

Parameter respons

Respons berhasil

Simpan task_id untuk menanyakan status dan hasil tugas.

{
    "output": {
        "task_status": "PENDING",
        "task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx"
    },
    "request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
}

Respons kesalahan

Pembuatan tugas gagal. Lihat Kode kesalahan.

{
    "code": "InvalidApiKey",
    "message": "Invalid API-key provided.",
    "request_id": "7438d53d-6eb8-4596-8835-xxxxxx"
}

output object

Informasi output tugas.

Properti

task_id string

ID tugas. Berlaku untuk kueri selama 24 jam.

task_status string

Status tugas.

Nilai enumerasi

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN: Tugas tidak ada atau statusnya tidak diketahui.

request_id string

Identifikasi permintaan unik untuk pelacakan dan troubleshooting.

code string

Kode kesalahan. Dikembalikan hanya untuk permintaan yang gagal. Lihat Kode kesalahan.

message string

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 Kueri

Ganti 86ecf553-d340-4e21-xxxxxxxxx dengan task_id Anda yang sebenarnya.

Kunci API berbeda untuk setiap wilayah. Untuk informasi selengkapnya, lihat Dapatkan Kunci API.

Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/tasks/86ecf553-d340-4e21-xxxxxxxxx, di mana {WorkspaceId} adalah ID ruang kerja Anda yang sebenarnya.

curl -X GET https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/tasks/86ecf553-d340-4e21-xxxxxxxxx \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Header permintaan

Authorization string (Wajib)

Mengotentikasi permintaan dengan Kunci API Model Studio. Contoh: Bearer sk-xxxx.

Parameter path URL

task_id string (Wajib)

ID tugas.

Parameter respons

Eksekusi tugas berhasil

URL gambar hanya berlaku selama 24 jam lalu secara otomatis dihapus. Segera simpan gambar yang dihasilkan.

{
    "request_id": "f767d108-7d50-908b-a6d9-xxxxxx",
    "output": {
        "task_id": "d492bffd-10b5-4169-b639-xxxxxx",
        "task_status": "SUCCEEDED",
        "submit_time": "2025-01-08 16:03:59.840",
        "scheduled_time": "2025-01-08 16:03:59.863",
        "end_time": "2025-01-08 16:04:10.660",
        "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 with a brass handle. Inside, various flowers are displayed, including roses, lilies, and sunflowers, which are colorful and vibrant. The background is a warm indoor scene, with light visible from the street 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
    }
}

Tugas gagal

Saat tugas gagal, task_status adalah FAILED dengan kode dan pesan kesalahan. Lihat Kode kesalahan.

{
    "request_id": "e5d70b02-ebd3-98ce-9fe8-759d7d7b107d",
    "output": {
        "task_id": "86ecf553-d340-4e21-af6e-xxxxxx",
        "task_status": "FAILED",
        "code": "InvalidParameter",
        "message": "xxxxxx",
        "task_metrics": {
            "TOTAL": 4,
            "SUCCEEDED": 0,
            "FAILED": 4
        }
    }
}

Kegagalan tugas sebagian

Model dapat menghasilkan beberapa gambar per tugas. Jika setidaknya satu berhasil, status tugas adalah SUCCEEDED dan URL gambar yang berhasil dikembalikan. Gambar yang gagal menyertakan alasan kegagalan. Statistik penggunaan hanya menghitung hasil yang berhasil. Lihat Kode kesalahan.

{
    "request_id": "85eaba38-0185-99d7-8d16-xxxxxx",
    "output": {
        "task_id": "86ecf553-d340-4e21-af6e-xxxxxx",
        "task_status": "SUCCEEDED",
        "results": [
            {
                "url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/123/a1.png"
            },
            {
                "code": "InternalError.Timeout",
                "message": "An internal timeout error has occurred during execution, please try again later or contact service support."
            }
        ],
        "task_metrics": {
            "TOTAL": 2,
            "SUCCEEDED": 1,
            "FAILED": 1
        }
    },
    "usage": {
        "image_count": 1
    }
}

Kueri tugas kedaluwarsa

task_id berlaku selama 24 jam. Setelah periode ini, kueri mengembalikan kesalahan berikut.

{
    "request_id": "a4de7c32-7057-9f82-8581-xxxxxx",
    "output": {
        "task_id": "502a00b1-19d9-4839-a82f-xxxxxx",
        "task_status": "UNKNOWN"
    }
}

output object

Informasi output tugas.

Properti

task_id string

ID tugas. Berlaku untuk kueri selama 24 jam.

task_status string

Status tugas.

Nilai enumerasi

  • PENDING
  • RUNNING
  • SUCCEEDED
  • FAILED
  • CANCELED
  • UNKNOWN: Tugas tidak ada atau statusnya tidak diketahui.
Transisi status selama polling:
  • PENDING → RUNNING → SUCCEEDED atau FAILED.
  • Status kueri awal biasanya PENDING atau RUNNING.
  • Saat status berubah menjadi SUCCEEDED, respons berisi URL gambar yang dihasilkan.
  • Jika statusnya FAILED, periksa pesan kesalahan dan coba ulang tugas tersebut.

submit_time string

Waktu saat tugas dikirim. Waktu dalam UTC+8 dan formatnya YYYY-MM-DD HH:mm:ss.SSS.

scheduled_time string

Waktu saat tugas dieksekusi. Waktu dalam UTC+8 dan formatnya YYYY-MM-DD HH:mm:ss.SSS.

end_time string

Waktu saat tugas selesai. Waktu dalam UTC+8 dan formatnya YYYY-MM-DD HH:mm:ss.SSS.

results array of object

Daftar hasil tugas. Ini mencakup URL gambar, prompt, dan pesan kesalahan untuk tugas yang sebagian gagal.

Struktur data

{
    "results": [
        {
            "orig_prompt": "",
            "actual_prompt": "",
            "url": ""
        },
        {
            "code": "",
            "message": ""
        }
    ]
}

Properti

orig_prompt string

Prompt input asli, sesuai dengan parameter permintaan prompt.

actual_prompt string

Prompt yang dioptimalkan yang digunakan saat penulisan ulang prompt diaktifkan. Tidak dikembalikan saat dinonaktifkan.

url string

URL gambar. Ini dikembalikan hanya saat task_status adalah SUCCEEDED. Tautan berlaku selama 24 jam dan dapat digunakan untuk mengunduh gambar.

code string

Kode kesalahan. Dikembalikan hanya untuk permintaan yang gagal. Lihat Kode kesalahan.

message string

Pesan kesalahan terperinci. Dikembalikan hanya untuk permintaan yang gagal. Lihat Kode kesalahan.

task_metrics object

Statistik untuk hasil tugas.

Properti

TOTAL integer

Jumlah total tugas.

SUCCEEDED integer

Jumlah tugas yang berhasil.

FAILED integer

Jumlah tugas yang gagal.

code string

Kode kesalahan. Dikembalikan hanya untuk permintaan yang gagal. Lihat Kode kesalahan.

message string

Pesan kesalahan terperinci. Dikembalikan hanya untuk permintaan yang gagal. Lihat Kode kesalahan.

usage object

Statistik penggunaan untuk permintaan. Hanya hasil yang berhasil yang dihitung.

Properti

image_count integer

Jumlah gambar yang berhasil dihasilkan. Penagihan: Biaya = Jumlah gambar × Harga satuan.

request_id string

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
  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
    }
}
  1. 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
  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
}
  1. 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
  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
}
  1. 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
  1. Contoh respons untuk membuat tugas
{
	"request_id": "5dbf9dc5-4f4c-9605-85ea-542f97709ba8",
	"output": {
		"task_id": "7277e20e-aa01-4709-xxxxxxxx",
		"task_status": "PENDING"
	}
}
  1. 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_id tugas dan url gambar hanya disimpan selama 24 jam. Setelah periode ini, data tersebut tidak dapat dikueri atau diunduh.
  • Moderasi konten: Baik prompt input maupun gambar output menjalani moderasi konten. Konten yang tidak sesuai mengembalikan kesalahan IPInfringementSuspect atau DataInspectionFailed. 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.