
Geen overeenkomsten. Probeer “video”, “FLUX” of “webhooks”.
Modellen laden…
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/nl/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."
}
}
Roep het Qwen Image 3 Text to Image-model (alibaba/qwen-image-3/text-to-image) aan via de Doitong API. Documentatie voor agents: https://doitong.com/nl/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."
}
Als de responsstatus "queued" of "running" is, poll dan GET https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20 totdat deze "succeeded" is; de bestanden staan in outputs[].url. POST https://api.doitong.ru/v1/quote/alibaba/qwen-image-3/text-to-image met dezelfde body retourneert de exacte prijs vóór de uitvoering.
Deze request: $ 0,04 40 API-tegoed · ≈ ₽ 4,29 Op deze pagina uitvoeren
Je nieuwe API-sleutel. Deze wordt alleen nu getoond en staat al in de code en in het onderstaande API-sleutelveld. Houd deze geheim: zet deze nooit in code die in een browser wordt uitgevoerd.
Besturingselementen worden gegenereerd op basis van het modelschema. De code en de prijs worden bijgewerkt terwijl je ze wijzigt.
/run/alibaba/qwen-image-3/text-to-image?wait=20
prijsopgave → $ 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
}
}
}
Je sleutel blijft in deze browser: hij wordt alleen naar de Doitong API verzonden en alleen in localStorage opgeslagen als je Onthouden aanvinkt. API-sleutel ophalen
Qwen Image 3 is bijzonder geschikt voor leesbare Engelse en Chinese tekst in afbeeldingen: borden, labels, dia's en memes. Het accepteert een negatieve prompt, optionele automatische promptuitbreiding en een seed, en rendert van 512x512 tot 2048x2048 pixels. Maximaal zes afbeeldingen per aanvraag in PNG, JPEG of WebP.
Stuur de canonieke naam of de oorspronkelijke naam, niet beide. Canonieke namen
promptverplicht
negative_promptoptioneel
image_sizeoptioneel
enable_prompt_expansionoptioneel
seedoptioneel
num_imagesoptioneel
num_outputs
output_formatoptioneel
{
"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"
}
}
Voor AI-agents: deze pagina als Markdown staat op https://doitong.com/nl/developers/models/alibaba/qwen-image-3/text-to-image.md. Alle modellen en handleidingen: https://doitong.com/developers/llms.txt