Qwen-Image-3.0

Qwen-Image-3.0 is a unified image model from Alibaba for both text-to-image generation and prompt-guided image editing. It supports one to three reference images for editing, automatic prompt expansion, negative prompts, reproducible seeded generation, and adaptive or user-specified output sizes. It supports text-to-image resolutions from 512x512 up to 2048x2048 and image editing resolutions up to 1440x1440, making it a strong fit for high-quality visual creation, controlled edits, and multi-image reference workflows.

Complete technical specification for integration
Ready-to-use code snippets for common workflows
Step-by-step tutorials for advanced use cases
← All GuidesPrompting Qwen Image 3.0
How to prompt Qwen Image 3.0, from sizing inside its pixel budget to layering a scene description, steering with negativePrompt, and locking a result with a seed.
Qwen Image 3.0 is a unified image model from Alibaba, where the same request generates from a prompt or edits from reference images depending on what you pass. Two properties shape how you write for it. Output size is a pixel budget rather than a preset list, so you name any width and height whose area fits. And an LLM rewrites your prompt before the model sees it unless you switch that off.

A Nordic restaurant dining room photographed at blue hour from a low corner angle. Long pale ash timber tables run toward a wall of tall steel-framed windows, each table set with a single stem of dried grass in a small glass bottle. Rows of hand-blown glass pendants hang low over the tables, their filaments glowing warm amber against the cool blue light outside. A dark plastered wall on the left carries a single long shelf of ceramic vessels. Polished concrete floor with soft reflections of the pendants. Editorial interiors photography, wide angle, warm-to-cool colour contrast, no people, no text.
Every example in this guide sets promptExtend to false, so the prompt you read is the prompt the model received. Leaving it on is a different way to work and has its own guide.
Request shape
A generation needs a positivePrompt. Everything else is optional: width and height default to 1024, and negativePrompt and seed are there when you want them.
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'alibaba:qwen-image@3.0',
positivePrompt: 'A Nordic restaurant dining room photographed at blue hour from a low corner angle. Long pale ash timber tables run toward a wall of tall steel-framed windows. Rows of hand-blown glass pendants hang low over the tables, their filaments glowing warm amber against the cool blue light outside. Editorial interiors photography, wide angle, no people, no text.',
width: 3072,
height: 2048,
providerSettings: {
alibaba: {
promptExtend: false
}
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "alibaba:qwen-image@3.0",
"positivePrompt": "A Nordic restaurant dining room photographed at blue hour from a low corner angle. Long pale ash timber tables run toward a wall of tall steel-framed windows. Rows of hand-blown glass pendants hang low over the tables, their filaments glowing warm amber against the cool blue light outside. Editorial interiors photography, wide angle, no people, no text.",
"width": 3072,
"height": 2048,
"providerSettings": {
"alibaba": {
"promptExtend": False
}
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "imageInference",
"taskUUID": "b2c3d4e5-6f70-4812-9a3b-4c5d6e7f8091",
"model": "alibaba:qwen-image@3.0",
"positivePrompt": "A Nordic restaurant dining room photographed at blue hour from a low corner angle. Long pale ash timber tables run toward a wall of tall steel-framed windows. Rows of hand-blown glass pendants hang low over the tables, their filaments glowing warm amber against the cool blue light outside. Editorial interiors photography, wide angle, no people, no text.",
"width": 3072,
"height": 2048,
"providerSettings": {
"alibaba": {
"promptExtend": false
}
}
}
]'runware run alibaba:qwen-image@3.0 \
positivePrompt="A Nordic restaurant dining room photographed at blue hour from a low corner angle. Long pale ash timber tables run toward a wall of tall steel-framed windows. Rows of hand-blown glass pendants hang low over the tables, their filaments glowing warm amber against the cool blue light outside. Editorial interiors photography, wide angle, no people, no text." \
width=3072 \
height=2048 \
providerSettings.alibaba.promptExtend=false{
"taskType": "imageInference",
"taskUUID": "b2c3d4e5-6f70-4812-9a3b-4c5d6e7f8091",
"model": "alibaba:qwen-image@3.0",
"positivePrompt": "A Nordic restaurant dining room photographed at blue hour from a low corner angle. Long pale ash timber tables run toward a wall of tall steel-framed windows. Rows of hand-blown glass pendants hang low over the tables, their filaments glowing warm amber against the cool blue light outside. Editorial interiors photography, wide angle, no people, no text.",
"width": 3072,
"height": 2048,
"providerSettings": {
"alibaba": {
"promptExtend": false
}
}
}[
{
"taskType": "imageInference",
"taskUUID": "b2c3d4e5-6f70-4812-9a3b-4c5d6e7f8091",
"imageUUID": "7a1f3c92-5b8d-4e60-a2c7-9d0e1f2a3b4c",
"imageURL": "https://im.runware.ai/image/os/a14d18/ws/2/ii/7a1f3c92-5b8d-4e60-a2c7-9d0e1f2a3b4c.jpg"
}
]Sizing inside the pixel budget
Most models hand you a menu of sizes. Qwen Image 3.0 gives you a total pixel count to spend, and any width and height are valid as long as their product lands inside it. Text-to-image runs from 262,144 up to 6,553,600 pixels, which is 2560 × 2560 square, 3200 × 2048 landscape, or anything else that multiplies out under the ceiling.
The three renders below are one prompt at three shapes. The aspect ratio is not a crop, it changes what the model composes into the frame:

A corner florist shop on a European city street in late afternoon. Deep green painted timber shopfront with a wide open doorway, tiered wooden stands outside crowded with buckets of eucalyptus, white ranunculus, and trailing ivy. A hand-lettered slate board leans against the lowest stand. Warm low sun rakes across the pavement from the right, throwing long soft shadows. Photoreal editorial street photography, no people, no readable text.

A corner florist shop on a European city street in late afternoon. Deep green painted timber shopfront with a wide open doorway, tiered wooden stands outside crowded with buckets of eucalyptus, white ranunculus, and trailing ivy. A hand-lettered slate board leans against the lowest stand. Warm low sun rakes across the pavement from the right, throwing long soft shadows. Photoreal editorial street photography, no people, no readable text.

A corner florist shop on a European city street in late afternoon. Deep green painted timber shopfront with a wide open doorway, tiered wooden stands outside crowded with buckets of eucalyptus, white ranunculus, and trailing ivy. A hand-lettered slate board leans against the lowest stand. Warm low sun rakes across the pavement from the right, throwing long soft shadows. Photoreal editorial street photography, no people, no readable text.
The square render gives the shopfront the whole frame. The landscape version pulls back far enough for the pavement and the street to matter. The portrait version keeps the stands and gains the storey above them. Pick the shape before you write the prompt, because the composition language you choose ("wide", "from further back", "the building above") only pays off if the canvas has room for it.
The budget drops to 2,250,000 pixels as soon as the request carries inputs.referenceImages. A 3072 × 2048 call that works for text-to-image fails the moment you add a reference, with Invalid image pixels. Total pixels (width x height) must be between 262144 and 2250000. Reference images covers sizing for that mode.
Layering a prompt
A short prompt is a valid prompt. It just leaves every decision to the model:

a bakery counter

A neighbourhood bakery counter shot from customer height at opening time. A long marble-topped counter runs diagonally across the frame, stacked with woven baskets of sourdough boules, a tray of glossy laminated pastries under a glass dome, and a slim brass cake stand holding a single tall canele tower. Behind the counter, open oak shelving carries rows of unlabelled paper bags and a warm brass scale. Morning daylight enters from a window on the left, catching the flour dust in the air. Photoreal editorial food photography, shallow depth of field on the pastries, warm neutral palette, no people, no readable text.
Three words returned a competent stock photograph of a display case. The second prompt got the counter, the props, and the light that were asked for, because each of those was named. The difference is not prompt length, it is which decisions you kept.
The longer prompt is built in layers:
Lead with the subject. Opening on style ("a beautifully lit editorial photograph of...") tunes the treatment before the model knows what it is composing, and the subject ends up serving the adjectives. Naming the object first anchors everything after it.
Counts and positions are honored when you state them. "A tray under a glass dome" and "shelving behind the counter" both landed where the prompt put them. Vague quantities ("some pastries", "various baskets") give the model licence it will use.
Steering with negativePrompt
negativePrompt names what to keep out. It trims a render rather than redirecting it, so treat it as a cleanup pass over a prompt that already works:

A quiet hotel room interior in the late morning. A low platform bed with crisp white linen sits against a warm limewash wall, a slim black reading lamp arcs over one side, and a rounded travertine side table holds a single glass of water. A tall window on the right frames a soft view of green treetops. Wide interiors photograph, natural daylight, calm neutral palette.

A quiet hotel room interior in the late morning. A low platform bed with crisp white linen sits against a warm limewash wall, a slim black reading lamp arcs over one side, and a rounded travertine side table holds a single glass of water. A tall window on the right frames a soft view of green treetops. Wide interiors photograph, natural daylight, calm neutral palette.
Both renders answer the prompt. The second one holds the surfaces bare and drops the window reflections that the first let in. The shift is real but modest, which is what to expect: when the positive prompt is already specific, there is little left for a negative to remove.
"negativePrompt": "people, reflections in the window, clutter on surfaces, patterned wallpaper, visible text, signage, watermark, harsh contrast"Name categories of failure, not subjects you never mentioned. Listing "cars" in a negative prompt for a hotel room spends words on something that was never going to appear.
Seeds and repeatability
seed is new in 3.0, and it fixes the noise the render starts from. Same prompt, same seed, same image. Change the seed and you get another take on the same description:

A ceramicist's workbench in a daylit studio. A half-finished stoneware vase sits centred on a spattered wooden wheel head, surrounded by wire tools laid in a row, a shallow bowl of grey slip, and a stack of bisque test tiles glazed in muted blues. Dust and clay marks across the bench surface. Overhead north light, documentary craft photography, muted earth palette, no people, no text.

A ceramicist's workbench in a daylit studio. A half-finished stoneware vase sits centred on a spattered wooden wheel head, surrounded by wire tools laid in a row, a shallow bowl of grey slip, and a stack of bisque test tiles glazed in muted blues. Dust and clay marks across the bench surface. Overhead north light, documentary craft photography, muted earth palette, no people, no text.

A ceramicist's workbench in a daylit studio. A half-finished stoneware vase sits centred on a spattered wooden wheel head, surrounded by wire tools laid in a row, a shallow bowl of grey slip, and a stack of bisque test tiles glazed in muted blues. Dust and clay marks across the bench surface. Overhead north light, documentary craft photography, muted earth palette, no people, no text.
Every element the prompt named is in all three. What moves is everything it left open: the camera height, where the tools lie, what fills the background. A seed is how you keep a render you liked while you edit the wording around it, and how you hand a colleague the exact image rather than a description of it.
Reproducibility needs promptExtend set to false. With extension on, the same seed and the same prompt produce a different image on every call, because the rewrite that runs first is not itself seeded.
Tips
-
Set
promptExtendtofalsewhile you iterate. Otherwise you are tuning a prompt the model never sees, and two runs of the same wording will not match. -
Choose the canvas before the wording. The aspect ratio decides what fits, so a prompt written for a landscape banner wastes its composition language on a square.
-
Spend the budget where detail is visible. Fine texture and small type need pixels, so push toward the 6,553,600 ceiling for print and hero work and stay near 1024 × 1024 while exploring.
-
Say "no text" when you don't want any. The model renders lettering readily, which is a strength elsewhere and noise on a plain product or interior shot.
-
Keep a seed with every render you might need again. It costs nothing to send and it is the only way back to a specific image.