主题
Qwen-Image 千问图片生成
星算云千问图片网关提供 qwen-image-3.0 / qwen-image-3.0-pro 图片生成与编辑模型(阿里云百炼 DashScope)——文生图(T2I)与图生图(I2I)走同一接口,支持中英文提示词、智能改写与多图输出,适用于设计素材、营销配图、图像编辑等场景。
请求/响应原样透传 DashScope 官方接口(路径、字段名、错误结构 1:1 一致),平台仅做鉴权、模型校验、计费与落账。端点路径与 DashScope 官方完全相同,官方 SDK / 示例代码只改两处即可接入:
- 地址
base_http_api_url = https://xingsuan.cloud(SDK 直接指平台域名即可;HTTP 直调用下方完整接入地址)- 鉴权
Authorization: Bearer xsk_...(平台 API Key,xsk_开头)即:把下文示例里的 DashScope 地址 /
DASHSCOPE_API_KEY换成平台地址 / 平台 API Key 即可,请求体协议不变(model填平台 model_code)。
基础信息
| 项目 | 内容 |
|---|---|
| 接入地址 | POST https://xingsuan.cloud/api/v1/services/aigc/multimodal-generation/generation(与 DashScope 官方路径完全一致) |
| 协议 | HTTP 同步(一次请求返回整包结果;无任务轮询、无流式) |
| 鉴权 | Authorization: Bearer xsk_... |
| 模型 | qwen-image-3.0、qwen-image-3.0-pro(model_code 以控制台模型列表为准) |
| 调用模式 | T2I(文生图)/ I2I(图生图,1-3 张参考图)同一端点 |
| 计费 | 按张四档计费(输入/输出 × 1K/2K),成功响应返回前一次性结算 |
| 输出格式 | png,图片 URL 24 小时有效 |
API Key 安全
只在服务端保存 API Key,不要在浏览器 / 客户端代码中明文嵌入。
概述
- 文生图 + 图生图同接口:
input.messages[].content[]里只放{text}即文生图;加入 1-3 个{image}项即图生图(编辑 / 改写 / 融合参考图) - 支持中英文提示词;
prompt_extend提示词智能改写默认开启(direct/agent两种模式) - 输出尺寸 512×512 至 2048×2048,宽高比 1:8 至 8:1;
size用星号分隔写作"1024*1024" - 单次最多生成 6 张(
parameters.n),支持负向提示词negative_prompt与随机种子seed - 生成图带水印开关
watermark(默认关闭)
工作原理
网关为同步调用:客户端发起一次 POST,平台完成鉴权与模型校验后,将请求体(仅重写 model 为上游模型名,其余字段原样)转发 DashScope,等待整包结果返回后原样透传给客户端,并在响应前按 usage 完成计费落账。无任务登记、无需轮询。
上游错误(参数不合法、内容安全拦截、限流等)以 HTTP 4xx/5xx + DashScope 错误体 {code, message, request_id} 原样透传,失败不计费。
前提条件
- 已在星算云控制台获取 API Key(
xsk_开头)。 - 已知悉计费口径:I2I 的每张参考图也计费(详见计费),高分辨率多图请求成本线性增长。
快速开始
curl(文生图)
bash
curl -X POST "https://xingsuan.cloud/api/v1/services/aigc/multimodal-generation/generation" \
-H "Authorization: Bearer xsk_..." \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-image-3.0",
"input": {
"messages": [
{ "role": "user", "content": [{ "text": "一只戴墨镜的橘猫,像素风格,明快配色" }] }
]
},
"parameters": { "size": "1024*1024", "n": 1 }
}'Python(DashScope SDK)
DashScope 官方 SDK 设置 base_http_api_url 指向平台即可,模型名与 Key 换为平台的:
python
import os
import dashscope
from dashscope import MultiModalConversation
# 星算云平台:SDK 只改 base_http_api_url + api_key
dashscope.base_http_api_url = "https://xingsuan.cloud"
dashscope.api_key = os.environ["XINGSUAN_API_KEY"]
result = MultiModalConversation.call(
model="qwen-image-3.0", # 平台 model_code
messages=[{
"role": "user",
"content": [{"text": "一只戴墨镜的橘猫,像素风格,明快配色"}],
}],
size="1024*1024",
n=1,
)
# 输出结构与官方一致
image_url = result.output.choices[0].message.content[0]["image"]
print(image_url)
print(result.usage) # 计费口径见下文「计费」
print(result.request_id) # 幂等键(同 request_id 不重复计费)图生图(I2I)
content 中在 {text} 之外加入 1-3 个 {image} 项(公网 URL)即图生图:
python
result = MultiModalConversation.call(
model="qwen-image-3.0-pro",
messages=[{
"role": "user",
"content": [
{"image": "https://example.com/cat.png"}, # 参考图 1(每张计费)
# {"image": "https://example.com/bg.png"}, # 参考图 2(可选,最多 3 张)
{"text": "把背景换成雪山,保持猫的姿态"},
],
}],
size="2048*2048",
n=1,
)参考图也计费
I2I 模式下每张参考图按输入档位(INPUT_1K/2K)计费:3 张参考图 + n=4 输出 = 7 个计费基数。请按需控制参考图张数与输出张数。
请求参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 平台 model_code,如 qwen-image-3.0 |
input.messages[] | array | 是 | 有且只有一个 role:"user" 消息对象(上游约束) |
input.messages[].content[] | array | 是 | T2I:仅一个 {text};I2I:1-3 个 {image} + 一个 {text} |
parameters.prompt_extend | boolean | 否 | 提示词智能改写,默认 true |
parameters.prompt_extend_mode | string | 否 | direct / agent(agent 仅 T2I) |
parameters.n | integer | 否 | 输出张数,1-6,默认 1 |
parameters.size | string | 否 | "宽*高",星号分隔(如 "1024*1024");缺省由模型自荐 |
parameters.negative_prompt | string | 否 | 反向提示词 |
parameters.seed | integer | 否 | 随机种子,[0, 2147483647] |
parameters.watermark | boolean | 否 | 结果图水印,默认 false |
messages结构、text唯一性、n范围、size合法性、参考图张数等细粒度校验由上游裁决,不合法请求会原样返回上游 400 错误体。
响应
json
{
"request_id": "54bb0f03-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": [{ "image": "https://dashscope-result-xxx.oss-cn-beijing.aliyuncs.com/xxx.png?Expires=..." }]
}
}
]
},
"usage": {
"output_width": 1024,
"output_height": 1024,
"input_image_count": 0,
"input_image_type": "qima_input_1k",
"output_image_count": 1,
"output_image_type": "qima_output_1k"
}
}| 字段 | 说明 |
|---|---|
output.choices[].finish_reason | 自然停止为 stop |
output.choices[].message.content[].image | 生成图 URL(png) |
usage.input_image_count / input_image_type | 输入(参考)图张数与档位——计费读取 |
usage.output_image_count / output_image_type | 输出图张数与档位——计费读取 |
usage.output_width / output_height | 输出像素 |
request_id | 请求唯一 ID(幂等键) |
图片 URL 有效期
生成图 URL 由上游 OSS 提供,24 小时有效,请及时下载转存。
仅支持同步调用
本接口仅支持同步调用;X-DashScope-Async 异步任务模式(/tasks/{id} 轮询)暂未开放,携带该头的请求平台按同步转发。
计费
按张四档计费(USD/张),档位由上游 usage.*_image_type 判定(单图面积 ≤ 2,250,000 像素 → 1K 档,否则 2K 档,由上游计算,平台采信):
| 档位 | 计费对象 |
|---|---|
INPUT_1K / INPUT_2K | I2I 参考图,每张按其档位计费(T2I 不产生输入费) |
OUTPUT_1K / OUTPUT_2K | 生成图,每张按其档位计费(n=4 即 4 张) |
费用 = INPUT_档 单价 × 参考图张数 + OUTPUT_档 单价 × 生成图张数- 计费时点:成功响应返回前一次性结算;请求失败(4xx/5xx)不计费。
- 幂等:同一次生成的
request_id不重复计费;客户端重试产生的新请求正常计费。 - 具体单价以控制台模型详情页为准。
错误
错误体为 DashScope 风格信封(顶层三字段,各语言官方 SDK 可原生解析):
json
{ "code": "InvalidApiKey", "message": "...", "request_id": "e5c2xxxx..." }| HTTP | code | 场景 |
|---|---|---|
| 400 | InvalidParameter | 请求体非法 / 非图片模型 / 非 DashScope 通道模型 |
| 401 | InvalidApiKey | API Key 缺失 / 无效 / 过期 |
| 402 | Arrearage | 企业钱包余额不足 |
| 403 | AccessDenied | Key 未授权该模型 / IP 不允许 / 企业禁用 |
| 404 | ModelNotFound | 模型不存在或未启用 |
| 429 | Throttling.Quota | API Key 额度超限 |
| 502 | InternalError | 上游网络错误 |
| 504 | InternalError.TimeOut | 上游超时 |
上游 DashScope 返回的业务错误(如参数不合法、内容安全拦截)状态码与错误体原样透传,code 为上游错误码。
详见 错误码。
支持的模型
qwen-image-3.0qwen-image-3.0-pro
(model_code 以控制台模型列表为准)