Introduction
What this endpoint does
Qwen Image 2.1 Turbo Text to Image renders a written brief into one to six images per request with Alibaba's 8-step checkpoint of Qwen Image 2.1. Our requests took 13 to 39 seconds end to end.
Inputs
prompt carries the whole brief, up to 5,000 characters. num_outputs asks for one to six images. aspect_ratio picks one of fifteen shapes and resolution the 1k, 1.5k or 2k tier, all at the same price per image. enable_prompt_expansion (off by default) lets Alibaba rewrite the prompt first, with prompt_optimization_mode and enable_thinking shaping that rewrite. seed steadies a series.
Content
No platform filter. With expansion off, our content tests came back as written; with it on, the rewrite tones unfiltered prompts down.
| Field | Value |
|---|---|
| Input | Text |
| Output | Image |
| Status on SpicyAPI | Live: text-to-image and image editing |
| Built on | Qwen Image 2.1, as an 8-step accelerated checkpoint of the same 7B model |
| Images per request | 1 to 6, billed per image returned |
| Price | One flat price per image at the 1k, 1.5k and 2k tiers; the live quote is on this page |
| Aspect ratios | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21, 2:1, 1:2, 3:1, 1:3, 5:4, 4:5 |
| 2K sizes | 1:1 2048 × 2048, 16:9 2688 × 1536, 9:16 1536 × 2688, 4:3 2368 × 1760, 3:2 2496 × 1664, 2:3 1664 × 2496 |
| Editing | 1 to 10 reference images; without an aspect ratio the output follows the source at about 2K |
| Prompt | Up to 5,000 characters; no negative prompt, so write exclusions into the prompt |
| Prompt expansion | Off by default; direct or agent rewrite when on, with an optional thinking pass |
| Measured wait | 13 to 39 seconds for text-to-image, 26 to 59 seconds for edits, across our runs |
| Content policy | Uncensored: no platform filter, no maturity flag |
| Open weights | Qwen/Qwen-Image-2.1-Turbo under the Qwen Research License Agreement |
Request parameters
| Parameter | Required | Description |
|---|---|---|
prompt | Yes | The whole brief, up to 5,000 characters. Write subject, wardrobe, pose, light and lens in plain sentences. at least 1 characters · at most 5000 characters |
aspect_ratio | No | Fifteen shapes, from 3:1 and 21:9 strips to 1:3 and 9:21 columns. The frame is composed at that shape, not cropped from a square. |
resolution | No | 1k, 1.5k or 2k. Every tier costs the same per image, so 2k is the default. |
num_outputs | No | One to six images from the same prompt in one request. Each image returned is billed, so six images cost six times one. |
enable_prompt_expansion | No | Off by default, so your wording is drawn as written. Default: |
enable_thinking | No | Spends extra reasoning on the rewrite for a better image, at the cost of a longer wait. Only works while prompt expansion is on. Default: |
prompt_optimization_mode | No | How expansion rewrites the brief when it is on: direct is a single pass that suits most prompts, agent a multi-step rewrite with finer detail. Ignored while expansion is off. |
seed | No | Steadies a draw so you can change one thing at a time and compare fairly. It does not guarantee a pixel-identical image. |
Pricing
$0.014 / image
Use cases
Uncensored image work
SpicyAPI puts no content filter in front of Turbo. With prompt expansion off, our tests came back as written at every content level we run, from Mild to Maximum, for women and men alike. At the Very strong level one of two runs came through; the other stopped short of the request.
Many drafts before one keeper
Eight steps and up to six images a call make a cheap spread of options. Explore wardrobe, pose and light in one request, keep the frame that works, and spend your edits on that one.
One character across a set
Generate a character, then send the frame back as a reference and change the dress, the room or the light in separate passes. Each edit starts from your approved frame instead of a fresh roll, so the face carries across the set.
Couples from two portraits
Send two portraits as Image 1 and Image 2 and describe the scene they share. In our test a man and a woman photographed separately ended up laughing side by side on a rooftop at dusk, both still recognisable.
Posters and typography
Turbo sets short headlines cleanly. Quote the wording, say where it sits, and describe the poster style: our cabaret poster came back with both lines spelled exactly.
Product shots and covers
Flat pricing up to 2K and six images a call suit thumbnails, covers and product shots, where you want several crops of one idea and a full-size master you can cut down.
Prompt guide & pro tips
Leave prompt expansion off for adult work
Expansion hands your prompt to Alibaba's rewriter before the image is drawn, and the rewriter tones unfiltered briefs down: in our tests it softened a Strong-level image, turned a Very strong scene into one that only implied it, and returned an edit that asked to go further without changing anything. With expansion off, the same prompts came back as written. It is off by default here; keep it that way unless you want the rewrite.
Turn it on for short everyday prompts
A six-word brief gets a fuller scene when expansion is on. direct rewrites in one pass and suits most prompts; agent rewrites in several steps for a finer result. Thinking mode spends extra reasoning on that rewrite and adds time; it does nothing while expansion is off.
Use 2K, it costs the same
Every tier is the same price per image, so 2K is the default and the sensible choice. Drop to 1k only when you want a smaller file or a slightly quicker return.
Ask for several images at once
Set
num_outputsfrom 1 to 6 to get variations of one prompt in one call. Each image that comes back is billed, so six images cost six times one. It is the cheapest way to find a pose or a composition you like before you start editing.Edit with the change first and the keep list second
Write the one thing that changes, then everything that must stay: "Change her dark velvet dress into a backless crimson satin gown; keep her face, hair and expression." Name references by number. In our two-portrait test, "the man from Image 1 and the woman from Image 2" kept both faces recognisable in one frame.
Quote the words that must appear
Put exact wording in quotation marks and say where it goes. Our poster test, "VELVET HOUR" at the top and "LATE SHOW · FRIDAYS 11 PM" at the bottom, came back letter for letter. Keep each line short and check it at full size before you publish.
Write the prompt in a fixed order
Subject, wardrobe, pose, light, lens and palette, in plain sentences. Name the light source and its direction (one warm lamp on the left, rain-streaked glass behind her) rather than a mood word. With expansion off, Turbo draws what you write and does not fill gaps for you.
Introduction
Qwen Image 2.1 Turbo Text to Image turns a written brief into images. Alibaba's Qwen team released Turbo with open weights on 9 October 2026 as an accelerated checkpoint of Qwen Image 2.1: the same 7B visual generation architecture, sampled in 8 denoising steps where Alibaba's own 2.1 examples use 40.
On SpicyAPI it is live. One request returns one to six images, the 1k, 1.5k and 2k tiers cost the same per image, and there is no content filter in front of the model. Every image on this page was generated on Turbo with the prompt shown.
Choose a mode by what you have
| Starting material | Mode |
|---|---|
| A written brief and nothing else | Qwen Image 2.1 Turbo Text to Image |
| One or more images to change | Qwen Image 2.1 Turbo Image Editing |
What we measured
Speed
13 to 39 seconds per request end to end across our runs, including two 2K images in one call in 28 seconds. Prompt expansion and thinking mode add time when they are on.
Content
With prompt expansion off, the default, our content tests came back as written at the Mild, Moderate, Strong and Maximum levels, for women and men. The Very strong test came through fully once in two runs; the other stopped short of the request. With expansion on, Alibaba's rewrite toned those prompts down. Not one request was refused.
Text in the image
Our cabaret poster asked for "VELVET HOUR" and "LATE SHOW · FRIDAYS 11 PM" and got both, letter for letter.
Sizes at 2K
| Ratio | Output size |
|---|---|
| 1:1 | 2048 × 2048 |
| 16:9 | 2688 × 1536 |
| 9:16 | 1536 × 2688 |
| 4:3 | 2368 × 1760 |
| 3:2 | 2496 × 1664 |
| 2:3 | 1664 × 2496 |
Fifteen ratios in all, from 3:1 to 1:3, at 1k, 1.5k and 2k. Output is PNG.
Turbo or Qwen Image 2.1
| Turbo | Qwen Image 2.1 | |
|---|---|---|
| Denoising steps | 8 | 40 |
| Images per request | 1 to 6 | 1 |
| Price by tier | Flat | Rises with the tier |
| Output format | PNG | JPEG, PNG or WebP |
| Transparent background | By asking in the prompt | A dedicated switch |
| Content filter | None | None |
Pick Turbo for volume and quick variations. Pick Qwen Image 2.1 when you need its format and background controls.
Prompt guide & Pro tips
Keep expansion off for adult work
The rewrite softens adult briefs. Off, Turbo draws what you write.
Turn expansion on for short everyday prompts
A six-word idea gets a fuller scene. direct suits most prompts, agent rewrites in more detail, and thinking mode spends extra time on a better rewrite.
Write in a fixed order
Subject, wardrobe, pose, light, lens and palette, in plain sentences. Name the light source and its direction instead of a mood word.
Quote the words that must appear
Put exact wording in quotation marks, keep each line short and say where it sits.
Ask for six, keep one
Variations cost the same each, so a six-image request is the quickest way to find the pose or composition worth editing.
API quick start
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "alibaba/qwen-image-2.1-turbo/text-to-image",
"input": {
"prompt": "A ceramic teapot on a linen cloth, soft window light, muted palette",
"resolution": "2k",
"num_outputs": 1,
"aspect_ratio": "1:1",
"prompt_optimization_mode": "direct"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
See the API reference for authentication, the complete schema, polling, and error handling.


















