Introduction
What this endpoint does
Qwen Image 2.1 Pro Image Editing revises your source images against a written instruction and returns one to six new frames with Alibaba's hosted Pro tier of Qwen Image 2.1. Our edits took 39 to 48 seconds end to end.
Inputs
image_urls carries one to ten references, in the order you call them Image 1, Image 2 and so on. prompt is the instruction. Leave aspect_ratio out to keep the source's shape at about 2K, or set it with resolution for a fixed size. num_outputs asks for one to six results, enable_prompt_expansion (off by default) and enable_thinking control Alibaba's rewrite, and seed steadies a series.
Content
No platform filter. With expansion off, every edit we tested came back as asked, at all five intensity levels from Mild to Maximum.
| Field | Value |
|---|---|
| Input | Image |
| Output | Image |
| Status on SpicyAPI | Live: text-to-image and image editing |
| Built on | Qwen Image 2.1, as Alibaba's hosted Pro tier |
| 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 | 14 to 43 seconds for text-to-image, 39 to 48 seconds for edits, across our runs |
| Content policy | Uncensored: no platform filter, no maturity flag |
| Weights | Not published; Alibaba offers Pro as a hosted API |
Key features & highlights
A masthead spelled right the first time
Quote the words and say where they go. "AFTER DARK" across the top and the small cover line beneath it came back letter for letter, in both images of the request.
Two portraits, one candlelit table
A man and a woman photographed separately, named as Image 1 and Image 2, end up at one table on a vineyard terrace, both faces still recognisable and her dress changed as asked.
Pro or Turbo, without rewriting a line
Pro and Turbo read the same fields on SpicyAPI, so a prompt that works on one can be sent to the other unchanged. Draft quickly on Turbo and keep the frames that matter on Pro, or the other way round.
Request parameters
| Parameter | Required | Description |
|---|---|---|
prompt | Yes | The edit instruction, up to 5,000 characters. Say what changes first, then what must stay: face, hair, pose, light. at least 1 characters · at most 5000 characters |
image_urls | Yes | One to ten source images, in the order you refer to them. The number of references does not change the price. at least 1 items · at most 10 items |
aspect_ratio | No | Leave it out and the result keeps the shape of your source at about 2K. Set one of fifteen shapes when you want a fixed frame, for example 3:2 for two people at one table. |
resolution | No | 1k, 1.5k or 2k, used only when you set an aspect ratio. Every tier costs the same per image. |
num_outputs | No | One to six results from the same instruction in one request. Each image returned is billed. |
enable_prompt_expansion | No | Off by default, so your instruction reaches the model as written. On, Alibaba rewrites it first, which can soften a bolder request. Default: |
enable_thinking | No | Spends extra reasoning on the rewrite, at the cost of a longer wait. Only works while prompt expansion is on. Default: |
seed | No | Steadies a draw so you can compare one change at a time. It does not guarantee a pixel-identical image. |
Pricing
$0.036 / image
Use cases
Uncensored image work
SpicyAPI puts no content filter in front of Pro. With prompt expansion off, our tests came back as written at every intensity level we ran, from Mild up to Maximum, with female and male subjects alike.
Covers and posters with exact wording
Alibaba lists improved typography for Pro. Quote the masthead and the cover line, say where each sits, and describe the photograph: our magazine cover came back with both lines spelled exactly, in both images of the request.
One character across a set
Generate a character, then send the frame back as a reference and change the outfit, 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 at one candlelit table on a vineyard terrace, both still recognisable.
Moody portraits and lighting
Alibaba points to portrait lighting and fine detail as Pro's strengths. Name one light source and where it falls, a storm lamp, a high window, a sconce, and the frame is built around it.
Many drafts before one keeper
Up to six images a call at one flat price 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.
Prompt guide & pro tips
Leave prompt expansion off when wording matters
Expansion hands your prompt to Alibaba's rewriter before the image is drawn, and that rewrite can tone a bold brief down. It is off by default here, and every content test we ran with it off came back as written. In our one Pro run with it on, a prompt the official app would block still came through, but keep it off whenever the exact wording matters.
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 velvet dress into an ivory evening 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" at a candlelit table 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 magazine cover, "AFTER DARK" across the top and "THE SILK ISSUE · NO. 07" in small letters below, 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 oil lamp on the left, a rotating beam behind her) rather than a mood word. With expansion off, Pro draws what you write and does not fill gaps for you.
Introduction
Qwen Image 2.1 Pro Image Editing changes an existing image from a plain-language instruction. Pro is the hosted tier of Alibaba's Qwen Image 2.1, which unifies generation and editing in one model; Alibaba lists editing with up to ten references, local edits that keep people and products intact, and improved portrait lighting and fine detail.
On SpicyAPI it is live. One request takes one to ten references and returns one to six results at one flat price per image, with no content filter in front of the model. Every example on this page was generated on Pro with the prompt shown.
Choose a mode by what you have
| Starting material | Mode |
|---|---|
| One or more images to change | Qwen Image 2.1 Pro Image Editing |
| A written brief and nothing else | Qwen Image 2.1 Pro Text to Image |
What we measured
Speed
39 to 48 seconds per edit end to end across our runs, including two results from two references in one call.
Shape
Without an aspect ratio, a 2:3 portrait came back as a 2:3 frame at about 2K (1664 × 2496). Set an aspect ratio when you need a fixed size.
Content
With prompt expansion off, the default, every edit we tested came back as asked, at all five intensity levels from Mild to Maximum. Not one edit was refused.
Two references
A man and a woman photographed separately came back side by side at one candlelit table, both recognisable, with her outfit changed as asked.
Pro or Turbo editing
| Pro | Turbo | |
|---|---|---|
| What it is | Alibaba's hosted Pro tier | 8-step checkpoint |
| Weights | Not published | Open, Qwen Research License |
| Results per request | 1 to 6 | 1 to 6 |
| Price per extra reference | None | None |
| Price per image | Higher | Lower |
| Content filter | None | None |
The request is the same, so you can run one instruction on both and keep the result you prefer.
Prompt guide & Pro tips
Change first, keep second
"Change her velvet dress into an ivory evening gown; keep her face, hair and expression" is an edit. "Make it better" is a reroll.
Name every reference
The model does not assign roles to references on its own. Say which image is the person, which is the garment and which is the place.
Leave expansion off
The rewrite can soften your instruction before the model sees it. Off, the instruction reaches the model as written.
One change per pass
A single change is easy to judge. Five at once make it hard to tell which instruction moved the face or the hands.
Go back to the original after a few edits
Faces can drift over a long chain of edits. Return to your first approved frame when details start to move.
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-pro/edit",
"input": {
"image_urls": [
"https://example.com/reference.png"
],
"num_outputs": 1,
"prompt": "A ceramic teapot on a linen cloth, soft window light, muted palette",
"resolution": "2k"
}
}'
# 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.
















