Qwen Image API:版本、价格和代码
Alibaba 的 Qwen Image 模型是生成多语言文字图片和按指令编辑的低成本选择。本指南介绍 Revana 上的七个版本、各自的费用以及如何调用。
目录中的所有 Qwen Image 模型
Qwen Image 是 Alibaba 的图像模型系列。它以在图片中渲染文字(中文和英文都行)以及紧密遵循编辑指令而著称。Revana 提供七个版本,均使用同一种请求格式:
| 模型 | 模型 id | 功能 | 尺寸 | 参考图 | 起价 | 线路 |
|---|---|---|---|---|---|---|
| Qwen Image 3.0 | qwen-image-3.0 | 文生图、编辑 | 1K, 2K | 最多 3 张 | $0.03 | 两条线路 |
| Qwen Image 3.0 Pro | qwen-image-3.0-pro | 文生图、编辑 | 1K, 2K | 最多 3 张 | $0.04 | 两条线路 |
| Qwen Image 2.1 | qwen-image-2.1 | 文生图、编辑 | 1K, 2K | 一张图片 | $0.03 | 一条线路 |
| Qwen Image 2.0 | qwen-image-2.0 | 文生图、编辑 | 1K, 2K | 一张图片 | $0.03 | 两条线路 |
| Qwen Image 2.0 Pro | qwen-image-2.0-pro | 文生图、编辑 | 1K, 2K | 一张图片 | $0.07 | 一条线路 |
| Qwen Image | qwen-image | 文生图、编辑 | 模型默认值 | 一张图片 | $0.03 | 一条线路 |
| Qwen Image Edit | qwen-image-edit | 仅编辑 | 模型默认值 | 一张图片 | $0.04 | 一条线路 |
价格按每张图片计算。新项目请从 Qwen Image 3.0 开始:它是最新的标准档,最多支持三张参考图,2K 和 1K 一样都是 $0.03。如果标准档漏掉了你需要的细节,就升级到 3.0 Pro,较早的版本则留给你已经调好的提示词。
Qwen Image 价格(2026 年 10 月)
| 模型 | 尺寸 | 每张图片 | 100 张图片 | 1,000 张图片 |
|---|---|---|---|---|
| Qwen Image 3.0 | 1K 或 2K | $0.03 | $3.00 | $30.00 |
| Qwen Image 3.0 Pro | 1K | $0.04 | $4.00 | $40.00 |
| Qwen Image 3.0 Pro | 2K | $0.08 | $8.00 | $80.00 |
| Qwen Image 2.1 | 1K | $0.03 | $3.00 | $30.00 |
| Qwen Image 2.1 | 2K | $0.05 | $5.00 | $50.00 |
| Qwen Image 2.0 | 1K 或 2K | $0.03 | $3.00 | $30.00 |
| Qwen Image 2.0 Pro | 1K 或 2K | $0.07 | $7.00 | $70.00 |
| Qwen Image | 单一尺寸 | $0.03 | $3.00 | $30.00 |
| Qwen Image Edit | 单一尺寸 | $0.04 | $4.00 | $40.00 |
有两个价格细节容易被忽略。Qwen Image 3.0 在 1K 和 2K 下价格相同,所以没有理由选更小的尺寸。Qwen Image 3.0 Pro 从 1K 到 2K 价格翻倍,所以请用 1K 出草稿,用 2K 渲染满意的图片。失败的图片从不收费。
Qwen Image 适合做什么
- 非英文语言的文字。中文的店铺招牌、菜单、标签和海报,或者同一张图里同时有中文和英文。
- 按指令编辑。“把夹克改成红色”“去掉左边的人”“把招牌上的文字换成 OPEN”。Qwen Image Edit 只做这件事;较新的版本除了文生图,也能做到这些。
- 每张图片成本低。每张 $0.03,Qwen Image 3.0 是批量制作营销变体较便宜的方式之一。
我们不发布画质评分。对于以英文为主的文字密集版式,在投入之前,请用你自己的提示词与 GPT Image 2 和 Nano Banana Pro 对比。
生成一张 Qwen Image 3.0 图片
发送 POST /v1/generations,带上模型 id 和 input,然后轮询该生成任务。这张 2K 图片的费用为 $0.03。
export REVANA_API_KEY="sr_live_..."
# 1. Submit the job (returns 202 with the generation id)
curl https://api.revana.si/v1/generations \
-H "Authorization: Bearer $REVANA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-image-3.0",
"input": {
"prompt": "A night street in Shanghai, a small noodle shop with a red paper lantern. The wooden sign above the door reads 老街面馆 in brush calligraphy. Light rain, reflections on the pavement.",
"resolution": "2K"
},
"max_cost_usd": 0.1
}'
# 2. Poll with the id from step 1 until status is "succeeded" or "failed"
curl https://api.revana.si/v1/generations/gen_01JC2V8K5T \
-H "Authorization: Bearer $REVANA_API_KEY"import os
import time
import requests
API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}
resp = requests.post(f"{API}/generations", headers=HEADERS, json={
"model": "qwen-image-3.0",
"input": {
"prompt": "A night street in Shanghai, a small noodle shop with a red paper lantern. The wooden sign above the door reads 老街面馆 in brush calligraphy. Light rain, reflections on the pavement.",
"resolution": "2K",
},
"max_cost_usd": 0.1,
})
resp.raise_for_status()
job = resp.json()
while job["status"] in ("queued", "running"):
time.sleep(3)
job = requests.get(f"{API}/generations/{job['id']}", headers=HEADERS).json()
if job["status"] == "succeeded":
print(job["output"]["urls"], job["cost_usd"])
else:
print("Failed:", job["error"])// Node 18 or later. Save as generate.mjs and run: node generate.mjs
const API = "https://api.revana.si/v1";
const headers = {
Authorization: `Bearer ${process.env.REVANA_API_KEY}`,
"Content-Type": "application/json",
};
const res = await fetch(`${API}/generations`, {
method: "POST",
headers,
body: JSON.stringify({
model: "qwen-image-3.0",
input: {
prompt: "A night street in Shanghai, a small noodle shop with a red paper lantern. The wooden sign above the door reads 老街面馆 in brush calligraphy. Light rain, reflections on the pavement.",
resolution: "2K",
},
max_cost_usd: 0.1,
}),
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
let job = await res.json();
while (job.status === "queued" || job.status === "running") {
await new Promise((r) => setTimeout(r, 3000));
job = await (await fetch(`${API}/generations/${job.id}`, { headers })).json();
}
if (job.status === "succeeded") console.log(job.output.urls, job.cost_usd);
else console.error("Failed:", job.error);{
"id": "gen_01JC2V8K5T",
"model": "qwen-image-3.0",
"status": "succeeded",
"output": {
"urls": [
"https://cdn.revana.si/g/gen_01JC2V8K5T/0.png"
]
},
"cost_usd": 0.03,
"attempts": 1,
"error": null,
"created_at": "2026-10-28T10:14:02Z",
"completed_at": "2026-10-28T10:15:31Z"
}按指令编辑图片
编辑时,发送图片并说明要改什么。Qwen Image 3.0 和 3.0 Pro 通过 image_urls 最多接受三张图片;其他版本只接受一张,通过 image_url 传入。Qwen Image Edit 上的这次编辑费用为 $0.04:
{
"model": "qwen-image-edit",
"input": {
"prompt": "Replace the text on the shop sign with FRESH BREAD DAILY, in the same font and colour. Change nothing else.",
"image_url": "https://example.com/bakery-front.jpg"
},
"max_cost_usd": 0.1
}发送的图片超过模型接受的数量,会立刻被拒绝,并返回 422 invalid_input,错误信息会说明上限。被拒绝的请求不收费。
所有 Qwen 版本都在模型页面上,请求参考见文档,额度包见价格页面。获取 API 密钥即可运行这些示例。
常见问题
Qwen Image API 的价格是多少?
2026 年 10 月,Qwen Image 3.0 在 1K 或 2K 下每张 $0.03,Qwen Image 3.0 Pro 在 1K 下 $0.04、2K 下 $0.08,Qwen Image Edit 每次编辑 $0.04。
我应该用哪个 Qwen Image 版本?
先从 Qwen Image 3.0 开始。它是最新的标准档,最多支持三张参考图,1K 和 2K 价格相同。需要更多细节时,再试 3.0 Pro。
Qwen Image 能渲染中文文字吗?
能。渲染中文和英文文字正是 Qwen Image 系列所著称的。请把确切的字符写进提示词,并在发布之前检查结果。
Qwen Image 和 Qwen Image Edit 有什么区别?
Qwen Image Edit 只能编辑你发送的图片。其他 Qwen Image 版本既能根据提示词生成图片,也能编辑。
我可以向 Qwen Image 3.0 发送多少张图片?
最多三张,通过 image_urls 传入。较早的版本只接受一张图片,通过 image_url 传入。