Qwen · 生成

根据提示词生成图片;请求参数和输出因模型而异。

POST/v1/images/generations

OpenAI 兼容

查看候选模型 ID
模型 ID厂商类型说明上下文窗口最大输出 Token媒体规格价格状态
qwen-image-2.0
Qwen图片文生图、图生图和图像编辑——
查看规格

型号:qwen-image-2.0

生成方式:文生图、图生图、图片编辑;提示词上限:4.5K tokens

查看价格

型号:qwen-image-2.0

$0.0290

币种:USD;计价单位:次;页面折扣:10折;资料日期:2026-09-28

登录页面参考价

登录模型广场展示价,含页面折扣;以当前账户价格和账单为准。

—
qwen-image-2.0-pro
Qwen图片文生图、图生图和图像编辑——
查看规格

型号:qwen-image-2.0-pro

生成方式:文生图、图生图、图片编辑;提示词上限:4.5K tokens

查看价格

型号:qwen-image-2.0-pro

$0.0725

币种:USD;计价单位:次;页面折扣:10折;资料日期:2026-09-28

登录页面参考价

登录模型广场展示价,含页面折扣;以当前账户价格和账单为准。

—
qwen-image-3.0-pro
Qwen图片文生图、图生图和图像编辑——
查看规格

型号:qwen-image-3.0-pro

生成方式:文生图、图生图、图片编辑;提示词上限:4.5K tokens

查看价格

型号:qwen-image-3.0-pro

$0.0346

币种:USD;计价单位:次;页面折扣:9.6折;资料日期:2026-09-28

登录页面参考价

登录模型广场展示价,含页面折扣;以当前账户价格和账单为准。

—
Qwen-Image-Max
Qwen图片千问图像生成模型Max系列,在各类生成任务中表现出色,相较Plus系列大幅度降低生成图片的AI感,提升图像真实性;具备更真实的人物质感、更细腻的自然纹理、更美观的文字渲染。—————
qwen-image-max
Qwen图片文生图和参考图融合生成——
查看规格

型号:qwen-image-max

生成方式:文生图、图生图

查看价格

型号:qwen-image-max

$0.0720

币种:USD;计价单位:次;页面折扣:10折;资料日期:2026-09-28

登录页面参考价

登录模型广场展示价,含页面折扣;以当前账户价格和账单为准。

—
wan2.6-t2i
Qwen图片万相2.6-文生图,画面质感、美学表现、指令遵循升级,在艺术风格精准控制、真实感人像、长文本生图及广泛历史文化IP覆盖上均表现出卓越能力,可生成高质量且富有表现力的视觉内容。—————

按公开标签归类,并补充模型广场资料;— 表示暂无明确资料。左右滑动查看完整表格。

进阶用法与完整流程 · 参数与透传

Headers请求头

左右滑动查看完整参数表

请求头
参数名类型必填说明默认值 / 示例
Authorizationstring必填

平台 API Key,使用 Bearer 认证。

示例
Bearer YOUR_API_KEY
Content-Typestring必填

请求体编码格式。

示例
application/json

Request Body请求体

application/json

左右滑动查看完整参数表

请求体
参数名类型必填说明默认值 / 示例
modelstring必填

模型 ID;请替换为账户可用且支持当前接口的模型。

示例
MODEL_ID
promptstring必填

描述要生成的图像;文本长度限制因模型而异。

—
ninteger可选

生成图片的数量,支持范围由模型决定。示例为 1 张。

—
sizestring可选

图像尺寸,支持范围由模型决定。例如 qwen-image-3.0-pro 可填写 512x512,Doubao-Seedream-5.0-pro 的标准方图可填写 1024x1024。

—
qualitystring可选

图像质量档位,支持取值因模型而异;image-2 可使用 low。

—
backgroundstring可选

背景设置;仅部分模型支持,透明背景需选支持透明度的输出格式。

可选值autotransparentopaque
—
moderationstring可选

模型支持的图像审核设置。

可选值autolow
—
response_formatstring可选

输出图片的表示形式,需所选模型支持。url 返回图片地址,b64_json 返回 Base64 数据;部分模型使用默认返回格式,可省略此字段。

可选值urlb64_json
—
output_formatstring可选

输出文件格式;需模型支持。

可选值pngjpegwebp
—
output_compressioninteger可选

JPEG/WebP 输出压缩设置;需模型支持。

—
streamboolean可选

是否流式返回图片事件;仅部分模型支持。

—
partial_imagesinteger可选

流式返回中间图片的数量;需同时开启 stream 且模型支持。

—
stylestring可选

图像风格;支持取值由模型决定。

—
userstring可选

应用内终端用户标识。

—

使用说明

  • 尺寸、数量、质量、透明背景、输出格式和流式能力按所选图像模型开放。
  • Seedream 5.0 pro 支持 1K、1.5K、2K,1K 标准方图为 1024x1024;自定义尺寸需符合模型和平台的规格要求。
  • 从 data[].url 读取图片地址,或解码 data[].b64_json 获取图片。示例中的链接和 BASE64_IMAGE_DATA 为占位内容。

生成与编辑

用途请求格式输入
生成 /v1/images/generationsapplication/json以 prompt 描述新图片
编辑 /v1/images/editsmultipart/form-data上传 image 文件,并用 prompt 描述修改

编辑接口的 mask、透明区域规则、多图字段及文件规格由具体模型决定。使用 multipart 时让客户端生成 Content-Type 和 boundary。图片数量、尺寸、格式和单文件大小按所选模型的说明填写。

保存 URL 或 Base64 图片结果

读取 data[].url 下载图片,或将 data[].b64_json 解码为二进制。URL 可能有有效期,收到后及时保存。下方示例按文件头识别 PNG、JPEG、WebP,其他编码保存为 .bin;完整写入临时文件后再替换目标文件。

展开 Python:提交请求并保存图片
Python
# 安装依赖:python -m pip install requests
import base64
import json
import os
from pathlib import Path
from urllib.parse import quote
import requests

BASE_URL = "https://ai.kedang.net"
MODEL_ID = "MODEL_ID"  # 替换为账户可用、支持当前能力的模型


def request_json(path, body, extra_headers=None):
    headers = {"Authorization": "Bearer " + os.environ["KEDANG_API_KEY"]}
    headers.update(extra_headers or {})
    response = requests.post(BASE_URL + path, headers=headers, json=body, timeout=120)
    response.raise_for_status()
    result = response.json()
    if result.get("error"):
        raise RuntimeError(result["error"])
    return result

import tempfile
from urllib.parse import urlsplit


def image_extension(content):
    if content.startswith(b"\x89PNG\r\n\x1a\n"):
        return ".png"
    if content.startswith(b"\xff\xd8\xff"):
        return ".jpg"
    if content[:4] == b"RIFF" and content[8:12] == b"WEBP":
        return ".webp"
    return ".bin"  # 其他编码先按原始字节保存,再按实际格式命名。


def save_images(result, directory="generated-images"):
    items = result.get("data")
    if not isinstance(items, list) or not items:
        raise ValueError("响应没有 data 图片列表")
    folder = Path(directory)
    folder.mkdir(parents=True, exist_ok=True)
    paths = []
    for index, item in enumerate(items, 1):
        if item.get("b64_json"):
            content = base64.b64decode(item["b64_json"], validate=True)
        elif item.get("url"):
            url = item["url"]
            parsed = urlsplit(url)
            if parsed.scheme != "https" or not parsed.netloc:
                raise ValueError("图片结果需为有效 HTTPS 地址")
            # 媒体地址可能在独立域名;这里不携带平台 API Key。
            response = requests.get(url, timeout=120)
            response.raise_for_status()
            mime = response.headers.get("Content-Type", "").split(";", 1)[0].lower()
            if mime and not (mime.startswith("image/") or mime == "application/octet-stream"):
                raise ValueError("下载响应不是图片或二进制文件")
            content = response.content
        else:
            raise ValueError("图片项缺少 url 或 b64_json")
        if not content:
            raise ValueError("图片内容为空")
        target = folder / ("image-" + str(index) + image_extension(content))
        temporary = None
        try:
            with tempfile.NamedTemporaryFile(dir=folder, delete=False) as file:
                temporary = Path(file.name)
                file.write(content)
            temporary.replace(target)
        finally:
            if temporary is not None:
                temporary.unlink(missing_ok=True)
        paths.append(target)
    return paths

def main():
    result = request_json("/v1/images/generations", {
        "model": MODEL_ID, "prompt": "一只橘猫坐在窗边,柔和自然光。", "n": 1})
    for path in save_images(result):
        print(path)

if __name__ == "__main__":
    main()