
Tiada padanan. Cuba “video”, “FLUX” atau “webhooks”.
Memuatkan model…
alibaba/qwen-image-3/text-to-image
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.ru/v1/run/alibaba/qwen-image-3/text-to-image?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A cozy bookstore window at dusk with a hand-painted wooden sign that reads \"Moonlight Books · 月光书店\", stacks of books, warm string lights, light rain on the glass, photorealistic."
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.ru/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/alibaba/qwen-image-3/text-to-image?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "A cozy bookstore window at dusk with a hand-painted wooden sign that reads \"Moonlight Books · 月光书店\", stacks of books, warm string lights, light rain on the glass, photorealistic."
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.ru/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"prompt": "A cozy bookstore window at dusk with a hand-painted wooden sign that reads \"Moonlight Books · 月光书店\", stacks of books, warm string lights, light rain on the glass, photorealistic.",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/alibaba/qwen-image-3/text-to-image", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
# 1. Connect once (Claude Code; Cursor, VS Code, Claude Desktop: https://doitong.com/ms/developers/docs/mcp)
claude mcp add --transport http doitong-models https://api.doitong.ru/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "alibaba/qwen-image-3/text-to-image",
"input": {
"prompt": "A cozy bookstore window at dusk with a hand-painted wooden sign that reads \"Moonlight Books · 月光书店\", stacks of books, warm string lights, light rain on the glass, photorealistic."
}
}
Panggil model Qwen Image 3 Text to Image (alibaba/qwen-image-3/text-to-image) melalui Doitong API. Dokumentasi untuk ejen: https://doitong.com/ms/developers/models/alibaba/qwen-image-3/text-to-image.md
POST https://api.doitong.ru/v1/run/alibaba/qwen-image-3/text-to-image?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"prompt": "A cozy bookstore window at dusk with a hand-painted wooden sign that reads \"Moonlight Books · 月光书店\", stacks of books, warm string lights, light rain on the glass, photorealistic."
}
Jika status respons ialah "queued" atau "running", tinjau GET https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20 sehingga statusnya menjadi "succeeded"; fail berada dalam outputs[].url. POST https://api.doitong.ru/v1/quote/alibaba/qwen-image-3/text-to-image dengan badan yang sama mengembalikan harga tepat sebelum dijalankan.
Permintaan ini: $0.04 40 kredit API · ≈ ₽4.29 Jalankan pada halaman ini
Kunci API baharu anda. Ia hanya dipaparkan sekarang dan sudah dimasukkan dalam kod serta medan kunci API di bawah. Simpan secara rahsia: jangan sekali-kali letakkannya dalam kod yang berjalan dalam pelayar.
Kawalan dijana daripada skema model. Kod dan harga dikemas kini apabila anda mengubahnya.
/run/alibaba/qwen-image-3/text-to-image?wait=20
sebut harga → $0.04
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.ru/v1/run/alibaba/qwen-image-3/text-to-image?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A cozy bookstore window at dusk with a hand-painted wooden sign that reads \"Moonlight Books · 月光书店\", stacks of books, warm string lights, light rain on the glass, photorealistic."
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.ru/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/alibaba/qwen-image-3/text-to-image?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "A cozy bookstore window at dusk with a hand-painted wooden sign that reads \"Moonlight Books · 月光书店\", stacks of books, warm string lights, light rain on the glass, photorealistic."
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.ru/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"prompt": "A cozy bookstore window at dusk with a hand-painted wooden sign that reads \"Moonlight Books · 月光书店\", stacks of books, warm string lights, light rain on the glass, photorealistic.",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/alibaba/qwen-image-3/text-to-image", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "run",
"arguments": {
"model_id": "alibaba/qwen-image-3/text-to-image",
"input": {
"prompt": "A cozy bookstore window at dusk with a hand-painted wooden sign that reads \"Moonlight Books · 月光书店\", stacks of books, warm string lights, light rain on the glass, photorealistic."
},
"wait_seconds": 20
}
}
}
Kunci anda kekal dalam pelayar ini: ia hanya dihantar kepada Doitong API dan disimpan (localStorage) hanya jika anda menanda Ingat. Dapatkan kunci API
Qwen Image 3 amat baik untuk meletakkan teks English dan Chinese yang jelas ke dalam gambar: papan tanda, label, slide dan meme. Ia menerima prompt negatif, pengembangan prompt automatik pilihan serta seed, dan menghasilkan imej dari 512x512 hingga 2048x2048 piksel. Sehingga enam imej bagi setiap permintaan dalam PNG, JPEG atau WebP.
Hantar sama ada nama kanonik atau nama natif, bukan kedua-duanya. Nama kanonik
promptdiperlukan
negative_promptpilihan
image_sizepilihan
enable_prompt_expansionpilihan
seedpilihan
num_imagespilihan
num_outputs
output_formatpilihan
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "alibaba/qwen-image-3/text-to-image",
"status": "succeeded",
"created_at": "2026-10-20T12:00:00Z",
"started_at": "2026-10-20T12:00:02Z",
"completed_at": "2026-10-20T12:00:09Z",
"queue_position": null,
"cost": {
"credits": 40,
"usd": "0.04",
"charged": 40,
"refunded": 0
},
"input": {
"prompt": "A cute baby koala on a water slide holding a card that says \"Summer starts now\", bright afternoon light",
"negative_prompt": "low resolution, blurry, deformed",
"image_size": "square_hd"
},
"output": {
"images": [
{
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_name": "0-output.jpeg",
"file_size": 1843200
}
],
"seed": 42
},
"outputs": [
{
"type": "image",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_size": 1843200,
"width": 1024,
"height": 768,
"stored": true
}
],
"error": null,
"metrics": {
"inference_seconds": 6.8
},
"urls": {
"self": "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
Untuk ejen AI: halaman ini dalam Markdown tersedia di https://doitong.com/ms/developers/models/alibaba/qwen-image-3/text-to-image.md. Semua model dan panduan: https://doitong.com/developers/llms.txt