Tutorial
Qwen Image 2.0 and 2.0 Pro API: Prices, Real Outputs, Code
Both Qwen Image 2.0 tiers in one guide: bilingual text tests, product shots, the fixed size values, and how 2.0 compares with 2.1 and 3.0.
- 2.0 / image
- $0.0422
- 2.0 Pro / image
- $0.107
- Sizes
- 5 fixed
TL;DR
- Qwen Image 2.0 is Alibaba's text-to-image model, strong at Chinese and English text inside the picture. On HiAPI there are two tiers:
qwen-image-2.0at $0.0422 per image andqwen-image-2.0-proat $0.107. - Both take the same request:
promptplus one of five fixedsizevalues. There's noaspect_ratiofield and no image input. - If you're starting a new project, look at the newer versions first: Qwen Image 3.0 is $0.0358 per image and 2.1 Turbo is $0.02, both cheaper than 2.0 and both accept reference images. The comparison is at the end. Open the Qwen Image 2.0 Pro model page to try it; new accounts get 200 free credits.
2.0 or 2.0 Pro
qwen-image-2.0 |
qwen-image-2.0-pro |
|
|---|---|---|
| Price per image | $0.0422 | $0.107 |
| Input | prompt + size |
same |
| Sizes | 5 fixed values, up to 2688×1536 | same |
| Reference images | No | No |
| Good for | Drafts, bilingual posters, signs | Final product shots and banners |
Live HiAPI prices, checked October 20, 2026. Failed tasks aren't charged.
The request is identical, so switching tier means changing one word in model. Write and test the prompt on 2.0, then render the final on Pro with the same seed.
Real outputs
Bilingual sign (2.0)
A small Tokyo-style ramen shop at night, photoreal, soft drizzle on the pavement, warm interior light spilling out, customers visible through a frosted window. Above the door, a hand-painted wooden sign with two clean lines of text: the top line in large Chinese characters reads "幸福拉面", the bottom line in smaller English reads "Lucky Noodles · Since 2019". A small red paper lantern hangs to the left. 35mm street photography, shallow depth of field, cinematic colour grade.

qwen-image-2.0, size 1728*2368, $0.0422 at today's price.
Both lines on the sign match the prompt, including the middle dot. The lantern, which the prompt didn't give any text, picked up a few stray characters. Check every small surface before you ship an image with text.
Poster with three text blocks (2.0)
A modern minimalist promotional poster for a specialty coffee shop, cream background with a subtle paper grain. Centred composition: Top half: a large flat-illustration espresso cup with steam, terracotta-and-cream palette. Middle: large bilingual headline. Chinese line on top reads "夏日新品", English line directly below reads "SUMMER MENU 2026". Both lines are perfectly centred. Lower third: a short body line in smaller Chinese reads "全场买二赠一", and an English line beneath reads "Buy two, get one free". Bottom footer: a single small line of English reads "Through August 31". Clean geometric sans-serif typography, generous whitespace, magazine-quality layout.

qwen-image-2.0, size 1728*2368, $0.0422 at today's price.
All five strings are there and spelled right. The headline broke "SUMMER MENU 2026" across two lines, which the prompt didn't ask for.
Product hero shot (2.0 Pro)
Studio product photograph of a single amber glass skincare dropper bottle with a blank matte white label, standing centered on a round travertine stone pedestal, seamless warm off-white studio background, soft diffused key light from the upper left, a subtle soft shadow falling to the right, hyper-detailed macro texture on the glass and brushed-metal dropper cap, photorealistic, catalog-ready e-commerce hero shot, no text, no logos, no props

qwen-image-2.0-pro, size 2048*2048, $0.107.
Leave product labels blank and add the label text afterwards. Small type on a small curved surface is the hardest place for any model to get letters right, and a blank label is easier to update when the copy changes.
Sale banner (2.0 Pro)
Flat-lay e-commerce promo banner photograph: three amber glass skincare dropper bottles arranged diagonally on a warm terracotta backdrop with dried eucalyptus sprigs, soft overhead studio lighting with gentle shadows, in the upper right corner bold clean white sans-serif text reading SUMMER GLOW SALE, directly beneath it smaller white text reading SAVE 20% TODAY, no other text anywhere, photorealistic commercial photography, sharp focus

qwen-image-2.0-pro, size 2688*1536, $0.107.
The copy and its position match the prompt. This one came back with a thin black band along the bottom edge, so plan to crop banners before you publish them.
curl
curl -s -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-image-2.0-pro",
"input": {
"prompt": "A storefront window sign that reads \"GRAND OPENING\" in bold red letters, photorealistic, golden-hour light",
"size": "2688*1536",
"seed": 42
}
}'
You get a taskId back. Poll GET https://api.hiapi.ai/v1/tasks/{taskId} until data.status is success, then download data.output[0].url. The link expires about 7 days after the task finishes, so save the file.
Python: one prompt, both tiers
# pip install requests; export HIAPI_KEY=your-key first
import os, time, requests
API = "https://api.hiapi.ai/v1/tasks"
H = {"Authorization": f"Bearer {os.environ['HIAPI_KEY']}"}
def generate(model, timeout_s=300, **inp):
r = requests.post(API, json={"model": model, "input": inp}, headers=H, timeout=30).json()
if r.get("code") != 200:
raise RuntimeError(r) # a 400 names every invalid field
task_id = r["data"]["taskId"]
deadline = time.time() + timeout_s
while time.time() < deadline:
d = requests.get(f"{API}/{task_id}", headers=H, timeout=30).json()["data"]
if d["status"] == "success":
return d["output"][0]["url"]
if d["status"] == "fail":
raise RuntimeError(d.get("error"))
time.sleep(4)
raise TimeoutError(task_id)
prompt = 'A bakery chalkboard that reads "FRESH BREAD" in white chalk, morning light'
draft = generate("qwen-image-2.0", prompt=prompt, size="2048*2048", seed=7)
final = generate("qwen-image-2.0-pro", prompt=prompt, size="2048*2048", seed=7)
for name, url in [("draft.png", draft), ("final.png", final)]:
with open(name, "wb") as f:
f.write(requests.get(url, timeout=120).content)
Parameters
| Field | Required | Values | Notes |
|---|---|---|---|
prompt |
Yes | text | Put the exact text you want in quotes |
size |
No | 2688*1536, 2368*1728, 2048*2048 (default), 1728*2368, 1536*2688 |
Uses *, not x |
negative_prompt |
No | text | What to avoid |
seed |
No | 0–2147483647 | Same seed and prompt give a stable starting point across tiers |
prompt_extend |
No | true (default) / false |
Turn off when the wording must stay exactly as written |
watermark |
No | false (default) / true |
The five sizes are roughly 16:9, 4:3, 1:1, 3:4 and 9:16. For 21:9 or 4:5, render the nearest size and crop.
Errors you'll hit
All of these return HTTP 400 when you submit, so nothing is created or billed:
size: value must be one of '2688*1536', ...: you sent2048x2048or a custom size. Use one of the five values with*.additional properties 'aspect_ratio' not allowed: 2.0 usessize. Qwen Image 3.0 and 2.1 useaspect_ratioinstead.additional properties 'image_urls' not allowed: 2.0 can't take a reference image. Use 2.1 or 3.0 for editing.additional properties 'n' not allowed: one task makes one image. Submit several tasks in parallel.
Qwen Image 2.0, 2.1 or 3.0
| Model | Price per image | Reference images | Size control |
|---|---|---|---|
qwen-image-2.1-turbo |
$0.02 | 1–10, optional | aspect_ratio (5 values) |
qwen-image-3.0/text-to-image |
$0.0358 | Separate image-to-image endpoint, 1–3 | aspect_ratio (8 values) + resolution 1K/2K |
qwen-image-2.0 |
$0.0422 | No | size (5 values) |
qwen-image-2.1-pro |
$0.05 | 1–10, optional | aspect_ratio (5 values) |
qwen-image-3.0-pro/text-to-image |
$0.0497 (1K) / $0.0993 (2K) | Separate image-to-image endpoint, 1–3 | aspect_ratio (8 values) + resolution |
qwen-image-2.0-pro |
$0.107 | No | size (5 values) |
- Already running 2.0 in production: nothing breaks; it's still available. Switching to 3.0 costs less, but you'll need to replace
sizewithaspect_ratioandresolution. - New project: start on Qwen Image 3.0 or 2.1 Turbo. They're cheaper, and they can edit an existing image.
- Highest-quality Qwen output: 3.0 Pro at 1K is under half the price of 2.0 Pro.
Usage for 3.0 is in the Qwen Image 3.0 API guide.
FAQ
Can Qwen Image 2.0 edit an existing image?
No. Neither 2.0 tier accepts an image. Qwen Image 3.0 has an image-to-image endpoint, and 2.1 Pro and Turbo accept up to 10 reference images in the same request.
Does it render Chinese text?
Yes, that's its strength. In the examples above, every Chinese and English string we asked for came out spelled correctly. Unrequested text, such as the lantern on the ramen shop, can still appear as stray characters.
How do I get the same image again?
Pass the same seed, prompt and size. That also lets you move a prompt from 2.0 to Pro and keep a similar layout.
Why is 2.0 more expensive than 3.0?
Each model has its own price. At today's prices, 3.0 is $0.0358 per image and 2.0 is $0.0422. If price matters, compare the two on your own prompts before you commit.
To try a prompt without code, open the Qwen Image 2.0 model page.
Related articles
View all articles →-
Tutorial
How to Call hailuo-2.3-fast/image-to-video via the HiAPI API: curl and Python
A first working request for the fast, low-cost image-to-video tier — from model ID to downloaded MP4
9 min read -
Tutorial
How to Use hailuo-2.3/text-to-video via the HiAPI API: curl, Python, and a Working Request
11 min read -
Tutorial
Kandinsky 6.0 Pro Text-to-Video on HiAPI: curl and Python Tutorial
A request-first walkthrough: build the prompt-to-clip call, submit it, poll for completion, and download the result
11 min read