Gunakan API teks-ke-gambar untuk menghasilkan gambar baru berdasarkan deskripsi teks. Alibaba Cloud Model Studio menyediakan dua keluarga model:
Qwen-Image: unggul dalam rendering teks kompleks berbahasa Tiongkok dan Inggris.
Seri Wan: menghasilkan gambar realistis dan efek visual berkualitas fotografi.
Coba secara online: Singapura | Beijing
Kinerja model
Qwen-Image
Teks kompleks
| Paragraf panjang
| Tata letak kompleks
|
Pembuatan poster
| Desain ilustrasi
| Fotografi fotorealistik
|
Wan
Fotografi potret
| Fotorealistik
| Gaya artistik
|
Rendering teks
| Desain poster
| Generasi multi-gambar
|
Model yang didukung
Pemilihan model
Rendering teks kompleks (misalnya, poster, couplet): Gunakan
qwen-image-2.0-proatauwan2.6-t2i.Adegan realistis dan gaya fotografi (penggunaan umum): Pilih model Wan seperti
wan2.6-t2iatauwan2.5-t2i-preview.Resolusi gambar output khusus: Gunakan seri
qwen-image-2.0atau model Wan. Seri qwen-image-2.0 mendukung lebar dan tinggi khusus. Total piksel harus antara 512*512 dan 2048*2048. Model Wan sepertiwan2.6-t2imendukung total piksel antara 1280*1280 dan 1440*1440.Seri qwen-image-max dan qwen-image-plus hanya mendukung lima ukuran tetap: 1664*928 (16:9), 928*1664 (9:16), 1328*1328 (1:1), 1472*1104 (4:3), dan 1104*1472 (3:4).
Mulai
Prasyarat
Sebelum memanggil API, dapatkan Kunci API Anda. Kemudian tetapkan Kunci API Anda sebagai Variabel lingkungan. Jika Anda menggunakan SDK DashScope, juga instal SDK.
Kode contoh
Metode pemanggilan:
Semua model teks-ke-gambar Qwen mendukung panggilan sinkron. Model qwen-image-plus dan qwen-image juga mendukung panggilan asinkron. Untuk detailnya, lihat Qwen - teks-ke-gambar.
Semua model teks-ke-gambar Wan mendukung panggilan asinkron. Model wan2.6-t2i juga mendukung panggilan sinkron. Untuk detailnya, lihat Wan - teks-ke-gambar V2.
Sinkron
Python
Contoh permintaan
import json
import os
import dashscope
from dashscope import MultiModalConversation
# Gunakan URL ini untuk wilayah Singapura. Untuk wilayah Beijing, ganti dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
{
"role": "user",
"content": [
{"text": "Healing-style hand-drawn poster featuring three puppies playing with a ball on lush green grass, adorned with decorative elements such as birds and stars. The main title “Come Play Ball!” is prominently displayed at the top in bold, blue cartoon font. Below it, the subtitle “Come [Show Off Your Skills]!” appears in green font. A speech bubble adds playful charm with the text: “Hehe, watch me amaze my little friends next!” At the bottom, supplementary text reads: “We get to play ball with our friends again!” The color palette centers on fresh greens and blues, accented with bright pink and yellow tones to highlight a cheerful, childlike atmosphere."}
]
}
]
# Kunci API berbeda antara wilayah Beijing dan Singapura. Dapatkan Kunci API Anda: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# Jika Anda belum menyetel variabel lingkungan, ganti baris di bawah ini dengan: api_key="sk-xxx"
api_key = os.getenv("DASHSCOPE_API_KEY")
response = MultiModalConversation.call(
api_key=api_key,
model="qwen-image-2.0-pro",
messages=messages,
result_format='message',
stream=False,
watermark=False,
prompt_extend=True,
negative_prompt="Low resolution, low quality, distorted limbs, malformed fingers, oversaturated colors, wax-figure appearance, lack of facial detail, excessive smoothness, AI-looking artifacts, chaotic composition, blurry or warped text.",
size='2048*2048'
)
if response.status_code == 200:
print(json.dumps(response, ensure_ascii=False))
else:
print(f"HTTP status code: {response.status_code}")
print(f"Error code: {response.code}")
print(f"Error message: {response.message}")
print("See documentation: https://www.alibabacloud.com/help/zh/model-studio/error-code")
Contoh respons
URL gambar kedaluwarsa setelah 24 jam. Unduh gambar segera.
{
"status_code": 200,
"request_id": "d2d1a8c0-325f-9b9d-8b90-xxxxxx",
"code": "",
"message": "",
"output": {
"text": null,
"finish_reason": null,
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": [
{
"image": "https://dashscope-result-wlcb.oss-cn-wulanchabu.aliyuncs.com/xxx.png?Expires=xxx"
}
]
}
}
]
},
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"width": 2048,
"image_count": 1,
"height": 2048
}
}Java
Contoh permintaan
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.JsonUtils;
import com.alibaba.dashscope.utils.Constants;
import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class QwenImage {
static {
// Gunakan URL ini untuk wilayah Singapura. Untuk wilayah Beijing, ganti dengan: https://dashscope.aliyuncs.com/api/v1
Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
}
// Kunci API berbeda antara wilayah Beijing dan Singapura. Dapatkan Kunci API Anda: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
// Jika Anda belum menyetel variabel lingkungan, ganti baris di bawah ini dengan: static String apiKey="sk-xxx"
static String apiKey = System.getenv("DASHSCOPE_API_KEY");
public static void call() throws ApiException, NoApiKeyException, UploadFileException, IOException {
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(
Collections.singletonMap("text", "Healing-style hand-drawn poster featuring three puppies playing with a ball on lush green grass, adorned with decorative elements such as birds and stars. The main title “Come Play Ball!” is prominently displayed at the top in bold, blue cartoon font. Below it, the subtitle “Come [Show Off Your Skills]!” appears in green font. A speech bubble adds playful charm with the text: “Hehe, watch me amaze my little friends next!” At the bottom, supplementary text reads: “We get to play ball with our friends again!” The color palette centers on fresh greens and blues, accented with bright pink and yellow tones to highlight a cheerful, childlike atmosphere.")
)).build();
Map<String, Object> parameters = new HashMap<>();
parameters.put("watermark", false);
parameters.put("prompt_extend", true);
parameters.put("negative_prompt", "Low resolution, low quality, distorted limbs, malformed fingers, oversaturated colors, wax-figure appearance, lack of facial detail, excessive smoothness, AI-looking artifacts, chaotic composition, blurry or warped text.");
parameters.put("size", "2048*2048");
MultiModalConversationParam param = MultiModalConversationParam.builder()
.apiKey(apiKey)
.model("qwen-image-2.0-pro")
.messages(Collections.singletonList(userMessage))
.parameters(parameters)
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
call();
} catch (ApiException | NoApiKeyException | UploadFileException | IOException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
Contoh respons
URL gambar kedaluwarsa setelah 24 jam. Unduh gambar segera.
{
"requestId": "5b6f2d04-b019-40db-a5cc-xxxxxx",
"usage": {
"image_count": 1,
"width": 2048,
"height": 2048
},
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": [
{
"image": "https://dashscope-result-wlcb.oss-cn-wulanchabu.aliyuncs.com/xxx.png?Expires=xxx"
}
]
}
}
]
}
}curl
Contoh permintaan
curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--data '{
"model": "qwen-image-2.0-pro",
"input": {
"messages": [
{
"role": "user",
"content": [
{
"text": "A winter street scene in Beijing featuring two adjacent traditional Chinese shops with gray-tiled roofs and vermilion-red exterior walls standing side by side. Warm-glow lanterns adorned with paper-cut horse motifs hang beneath the eaves, casting soft halos under overcast diffused light that gently reflects off the damp cobblestone pavement. On the left is a calligraphy shop: an aged indigo signboard bears the bold running-script characters “Text Rendering.” A vertical scroll on the storefront glass reads from top to bottom in Tian Yingzhang’s hard-pen style: “Professional Slides, Bilingual Posters, Advanced Infographics,” stamped with a cinnabar seal reading “1k token.” Inside, three vertically mounted calligraphy works are faintly visible on the wall—the first says “Alibaba,” the second “Qwen,” and the third “Image Generation.” An elderly white-haired man stands with his back to the camera, admiring the art. On the right is a flower shop whose sign spells out “Realistic Texture” using fresh blooms. Multi-tiered shelves inside display red roses, pink peonies, and greenery. A circular floral-patterned badge on the door reads “2k resolution,” and a colorful neon sign at the entrance displays the text “Detailed Depiction: People, Nature, Architecture.” Between the two shops sits a snowman holding an old-fashioned chalkboard with the words “Qwen-Image-2.0 Officially Released” scrawled in chalk. On the left side of the street, a young couple leans close together—the woman has a slender face, wears a beige cashmere coat and nude-toned sheer tights, and holds a transparent heart-shaped balloon printed with white text: “Image Generation and Editing in One.” Inside the balloon is a fluffy capybara plush toy. The man wears a well-tailored dark gray wool overcoat layered over a light turtleneck sweater. On the right side of the street, a delivery rider speeds past with “Smaller Model, Faster Speed” written across his back. The entire street blends dynamic motion with serene stillness through interwoven light and shadow."
}
]
}
]
},
"parameters": {
"negative_prompt": "Low resolution, low quality, distorted limbs, malformed fingers, oversaturated colors, wax-figure appearance, lack of facial detail, excessive smoothness, AI-looking artifacts, chaotic composition, blurry or warped text.",
"prompt_extend": true,
"watermark": false,
"size": "2048*2048"
}
}'curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--data '{
"model": "qwen-image-2.0-pro",
"input": {
"messages": [
{
"role": "user",
"content": [
{
"text": "Healing-style hand-drawn poster featuring three puppies playing with a ball on lush green grass, adorned with decorative elements such as birds and stars. The main title “Come Play Ball!” is prominently displayed at the top in bold, blue cartoon font. Below it, the subtitle “Come [Show Off Your Skills]!” appears in green font. A speech bubble adds playful charm with the text: “Hehe, watch me amaze my little friends next!” At the bottom, supplementary text reads: “We get to play ball with our friends again!” The color palette centers on fresh greens and blues, accented with bright pink and yellow tones to highlight a cheerful, childlike atmosphere."
}
]
}
]
},
"parameters": {
"negative_prompt": "Low resolution, low quality, distorted limbs, malformed fingers, oversaturated colors, wax-figure appearance, lack of facial detail, excessive smoothness, AI-looking artifacts, chaotic composition, blurry or warped text.",
"prompt_extend": true,
"watermark": false,
"size": "2048*2048"
}
}'Contoh respons
{
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"content": [
{
"image": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/xxx.png?Expires=xxx"
}
],
"role": "assistant"
}
}
]
},
"usage": {
"height": 2048,
"image_count": 1,
"width": 2048
},
"request_id": "d0250a3d-b07f-49e1-bdc8-6793f4929xxx"
}Asinkron
SDK membungkus logika asinkron di tingkat bawah. Antarmuka tingkat atasnya berperilaku seperti panggilan sinkron (permintaan tunggal, tunggu hasil akhir). Contoh curl menggunakan dua API asinkron terpisah: satu untuk mengirimkan tugas, lainnya untuk mengkueri hasil.
Python
Contoh permintaan
import os
import dashscope
from dashscope.aigc.image_generation import ImageGeneration
from dashscope.api_entities.dashscope_response import Message
# URL wilayah Singapura. base_url berbeda berdasarkan wilayah.
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# Jika DASHSCOPE_API_KEY tidak disetel, ganti dengan: api_key="sk-xxx"
# Kunci API berbeda berdasarkan wilayah. Lihat 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("----sync call, please wait a moment----")
rsp = ImageGeneration.call(
model="wan2.6-t2i",
api_key=api_key,
messages=[message],
negative_prompt="",
prompt_extend=True,
watermark=False,
n=1,
size="1280*1280"
)
print(rsp)
Contoh respons
URL berlaku selama 24 jam. Unduh segera.
{
"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
}
}Java
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 wilayah Singapura. base_url berbeda berdasarkan wilayah.
Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
}
// Jika DASHSCOPE_API_KEY tidak disetel, ganti dengan: apiKey="sk-xxx"
// Kunci API berbeda berdasarkan wilayah. Lihat 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("---sync call, please wait a moment----");
result = imageGeneration.call(param);
} catch (ApiException | NoApiKeyException | UploadFileException e) {
throw new RuntimeException(e.getMessage());
}
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
basicCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
}
}Contoh respons
URL berlaku selama 24 jam. Unduh segera.
{
"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
}
}curl
Setel parameter header
X-DashScope-Asynckeenableuntuk panggilan asinkron.task_iduntuk tugas asinkron kedaluwarsa setelah 24 jam. Setelah kedaluwarsa, status tugas menjadiUNKNOWN.
Langkah 1: Kirim tugas
Permintaan ini mengembalikan ID tugas (task_id).
curl --location 'https://dashscope-intl.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"
}
}'Langkah 2: Kueri hasil menggunakan ID tugas
Gunakan task_id dari Langkah 1. Poll status tugas hingga task_status menjadi SUCCEEDED atau FAILED.
Ganti {task_id} dengan nilai task_id yang dikembalikan oleh panggilan API sebelumnya. task_id berlaku untuk kueri dalam waktu 24 jam.
curl -X GET https://dashscope-intl.aliyuncs.com/api/v1/tasks/{task_id} \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"Kemampuan utama
1. Mengikuti instruksi (prompt)
Parameter: input.prompt (wajib) dan input.negative_prompt (opsional).
Prompt (positive prompt): Menggambarkan apa yang Anda inginkan dalam gambar—subjek, adegan, gaya, pencahayaan, dan komposisi. Ini adalah parameter kontrol utama untuk teks-ke-gambar.
Negative prompt: Menggambarkan apa yang tidak Anda inginkan dalam gambar, seperti “blurry” atau “extra fingers”. Digunakan hanya untuk membantu menyempurnakan kualitas output.
Kiat penulisan: Prompt terstruktur sering menghasilkan hasil lebih baik. Lihat Panduan prompt teks-ke-gambar untuk praktik terbaik.
2. Aktifkan penulisan ulang prompt
Parameter: parameters.prompt_extend (boolean, bawaan: true).
Fitur ini secara otomatis memperluas dan menyempurnakan prompt pendek untuk meningkatkan kualitas gambar. Mengaktifkannya menambahkan latensi 3–5 detik—waktu yang dibutuhkan model bahasa besar untuk menulis ulang teks.
Saran praktis:
Aktifkan saat prompt input Anda singkat atau umum. Ini secara signifikan meningkatkan kualitas gambar.
Nonaktifkan saat Anda membutuhkan kendali ketat atas detail, sudah memberikan deskripsi terperinci, atau memerlukan latensi rendah. Setel
prompt_extendkefalse.
3. Atur resolusi gambar output
Parameter: parameters.size (string), format: "width*height".
seri qwen-image-2.0: Mendukung lebar dan tinggi khusus. Total piksel harus antara 512*512 dan 2048*2048. Resolusi bawaan adalah 2048*2048. Resolusi yang direkomendasikan:
2688*1536: 16:91536*2688: 9:162048*2048(bawaan): 1:12368*1728: 4:31728*2368: 3:4
seri qwen-image-max dan qwen-image-plus: Hanya mendukung lima resolusi tetap berikut:
1664*928(bawaan): 16:91472*1104: 4:31328*1328: 1:11104*1472: 3:4928*1664: 9:16
Model Wan V2 (versi 2.0 dan seterusnya): mendukung lebar dan tinggi dalam rentang [512, 1440] piksel, dengan jumlah total piksel tidak melebihi 1440*1440. Resolusi umum:
1024*1024(bawaan): 1:11440*810: 16:9810*1440: 9:161440*1080: 4:31080*1440: 3:4
Peluncuran
Toleransi kesalahan
Atasi pembatasan laju: Saat API mengembalikan kode kesalahan
Throttlingatau kode status HTTP 429, permintaan dibatasi lajunya. Lihat Pembatasan laju untuk detailnya.Poll tugas asinkron: Saat melakukan polling untuk hasil tugas asinkron, gunakan strategi yang masuk akal—seperti setiap 3 detik selama 30 detik pertama, lalu interval meningkat—untuk menghindari pemicuan pembatasan laju. Tetapkan timeout akhir (misalnya, 2 menit). Tandai tugas sebagai gagal jika melebihi waktu.
Pencegahan risiko
Penyimpanan persisten: URL gambar dari API kedaluwarsa setelah 24 jam. Sistem produksi harus segera mengunduh gambar setelah menerima URL dan menyimpannya di Penyimpanan persisten (misalnya, Alibaba Cloud Object Storage Service).
Moderasi konten: Semua input
promptdannegative_promptdimoderasi. Jika konten melanggar kebijakan, permintaan diblokir dan mengembalikan kesalahanDataInspectionFailed.Risiko hak cipta dan kepatuhan: Pastikan prompt Anda mematuhi hukum dan peraturan yang berlaku. Menghasilkan konten dengan merek dagang, kemiripan selebriti, atau IP berhak cipta dapat menimbulkan risiko pelanggaran. Anda bertanggung jawab atas risiko tersebut.
Referensi API
Penagihan dan pembatasan laju
Untuk kuota gratis dan harga, lihat Harga model.
Untuk batas laju, lihat Pembuatan gambar.
Catatan penagihan: Dikenakan biaya per gambar yang berhasil dihasilkan. Panggilan gagal tidak dikenai biaya dan tidak mengonsumsi kuota percobaan gratis.
Kode kesalahan
Jika pemanggilan model gagal dan mengembalikan pesan kesalahan, lihat Pesan kesalahan untuk penyelesaian.
FAQ
T: Berapa lama URL gambar berlaku? Bagaimana cara menyimpan gambar secara permanen?
J: URL gambar kedaluwarsa setelah 24 jam. Unduh gambar segera setelah menerima URL dan simpan ke Penyimpanan persisten—seperti server lokal atau Alibaba Cloud Object Storage Service.
T: Panggilan API saya mengembalikan DataInspectionFailed. Bagaimana cara memperbaikinya?
J: Kesalahan ini berarti teks input Anda memicu moderasi konten. Tinjau dan revisi prompt atau negative_prompt Anda untuk menghapus konten yang berpotensi tidak sesuai, lalu coba lagi.
T: Haruskah saya mengaktifkan atau menonaktifkan parameter prompt_extend?
J: Biarkan diaktifkan (bawaan) saat prompt Anda singkat atau Anda ingin model menambahkan detail kreatif. Nonaktifkan dengan menyetel ke false saat prompt Anda sudah terperinci—atau saat Anda membutuhkan kendali latensi ketat.
T: Bagaimana cara meningkatkan rendering teks dalam gambar?
J: Gunakan model qwen-image-2.0-pro. Model ini unggul dalam rendering teks.











