Qwen Image 3.0 Pro is the upper tier of Alibaba's July 2026 Qwen Image 3.0. It takes the same inputs as the standard version but is tuned for the hardest kind of picture: a page crammed with lines of small text. Pick it when a menu, a quiz sheet or a front page must be readable line by line.
What you can make
- Restaurant menus with dish names, short descriptions and prices.
- Worksheets, quizzes and pages styled like exam papers.
- Newspaper front pages and editorial mockups.
- Storyboards with a line of dialogue under every panel.
Settings that matter
- Prompt: about 4.5k tokens. Write out the full text of every section, because the model only renders words you supply.
- Resolution: 1K or 2K. 2K costs twice as much as 1K, so draft small and render the final page at 2K.
- Images per request: 1 to 4 with
num_images. - References: 1 to 3 images, useful for copying the grid of a layout you already have.
- Negative prompt: list what to avoid, such as "watermark, blurred letters, extra columns".
Starter prompt
Bistro menu, two columns. Left "Starters": "Tomato soup 6", "Beet salad 8". Right "Mains": "Roast chicken 16", "Mushroom risotto 14". Black serif type on cream paperFill in your real dishes and prices; keep the column headers in quotes so they are rendered as titles.
Questions
How much does a Qwen Image 3.0 Pro page cost?
from $0.0857 per image, with 2K at double the 1K rate. A failed render costs nothing.
When is the standard Qwen Image 3.0 enough?
When the text is not that dense. Qwen Image 3.0 has the same inputs and limits and charges one price for 1K and 2K.
Can I get several layouts in one go?
Yes, set num_images to anything from 1 to 4.
Qwen Image 3.0 Pro in your code
curl https://kadraris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $KADRARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-image-3.0-pro",
"input": {
"prompt": "Packshot of a white linen sneaker on a concrete block, hard midday sun, crisp shadow, 85mm",
"aspect_ratio": "1:1",
"resolution": "1K"
}
}'import os, time, requests
API = "https://kadraris.com/v1"
H = {"Authorization": f"Bearer {os.environ['KADRARIS_API_KEY']}"}
task = requests.post(f"{API}/generate", headers=H, json={
"model": "qwen-image-3.0-pro",
"input": {
"prompt": "Packshot of a white linen sneaker on a concrete block, hard midday sun, crisp shadow, 85mm",
"aspect_ratio": "1:1",
"resolution": "1K"
}
}).json()
while task["status"] in ("queued", "running"):
time.sleep(3)
task = requests.get(f"{API}/tasks/{task['id']}", headers=H).json()
print(task["status"], task["cost"], [o["url"] for o in task["output"]])const API = "https://kadraris.com/v1";
const headers = { Authorization: `Bearer ${process.env.KADRARIS_API_KEY}`, "Content-Type": "application/json" };
let task = await (await fetch(`${API}/generate`, {
method: "POST",
headers,
body: JSON.stringify({
"model": "qwen-image-3.0-pro",
"input": {
"prompt": "Packshot of a white linen sneaker on a concrete block, hard midday sun, crisp shadow, 85mm",
"aspect_ratio": "1:1",
"resolution": "1K"
}
}),
})).json();
while (task.status === "queued" || task.status === "running") {
await new Promise((r) => setTimeout(r, 3000));
task = await (await fetch(`${API}/tasks/${task.id}`, { headers })).json();
}
console.log(task.status, task.cost, task.output.map((o) => o.url));
Input fields
| Parameter | Type | Allowed | Default |
|---|---|---|---|
prompt * | string | ||
negative_prompt | string | ||
aspect_ratio | string | 1:1 4:3 3:4 16:9 9:16 3:2 2:3 | 1:1 |
resolution | string | 1K 2K | 1K |
num_images | integer | 1-4 | 1 |
image_urls | array | max 3 |
Fetch this list as JSON with GET /v1/models/qwen-image-3.0-pro.























