Qwen Image 2512 API 快速开始指南:几分钟内生成图像 (2026)

Qwen Image 2512 API 快速开始指南:几分钟内生成图像 (2026)

你好,我是Dora。我曾经花很多时间为产品创建图像:寻找资源、调整大小、重命名文件、整理文件夹…… 每一步都无休止地重复。这没什么难的,但很繁琐。后来,我尝试了Qwen Image 2512 API,发现我可以用仅几行代码自动化所有这些。

这不是广告。我只是分享当我尝试它时实际发生的事情 — 什么顺利进行了,我在哪里遇到困难,以及我如何让它变得可靠且有用。

WaveSpeed 快捷方式(如果你只想要结果)

如果你只想快速生成图像,而不想自己处理所有细节:

  • WaveSpeed 已经提供了现成的 Qwen Image 2512 REST API(没有冷启动)。
  • 使用 WaveSpeed 端点 + API 密钥 → 完成。
  • 如果你想了解官方 DashScope 流程(以及常见的陷阱),继续阅读。

这个 API 实际能做什么?

简单来说:你输入文本描述,它给你一个图像。

例如,如果你写:

“一个整洁的桌子,上面有一个笔记本和一株植物,柔和的光线照射”

几秒钟后,你得到一个与你的描述相匹配的图像 — 你可以自动将其保存到你的计算机。

它擅长的事情:

  • 制作灵感板
  • 快速生成缩略图
  • 在文档中添加占位符图像
  • 为产品创建原型视觉效果

我注意到的:

第一次使用时,它似乎并不比手动查找图像快多少。但运行两三次后,我意识到我不再需要为”这个大小应该是多少?“或”我应该如何命名这个文件?“而烦恼。它为我节省的不仅是时间,还有精力。


图像格式和存储

  • 格式: PNG,默认自动生成
  • 图像存储位置:
    • API 返回一个指向图像的链接(URL)
    • 该链接指向阿里云服务器
    • 重要提示:链接仅在 24 小时内有效;之后,它将过期
    • 所以你需要及时将其下载到你的计算机

注意: API 不直接给你图像文件。如果你想在本地保存它,你需要在代码中添加一个下载步骤(稍后解释)。


开始前:你需要什么

步骤 1:获取帐户和 API 密钥

  1. 注册阿里云账户
  2. 前往模型工作室控制台
  3. 生成 API 密钥(就像证明你身份的密钥)
  4. 将密钥保存为名为 DASHSCOPE_API_KEY 的环境变量
    环境变量:
    把它想象成计算机上的一个特殊位置,你的密钥存放在那里,这样你的代码可以自动找到它,而无需每次都复制粘贴。

提示:

  • 对于测试,你可以将其存储在 .env 文件中
  • 对于实际使用,使用安全的密钥管理工具更安全
  • 北京和新加坡地区有不同的密钥 — 不要混淆它们

步骤 2:选择一个工具

有三种主要方式,从最简单到最复杂:

  1. cURL(最简单)

    • 适合快速测试 API 是否有效
    • 不需要编程,只需粘贴命令
    • 建议首次尝试
  2. Python(最常见)

    • 适合为重复使用构建小工具
    • 我使用官方的 DashScope SDK 来自动处理许多细节
    • 一些基本的 Python 知识会有帮助
  3. Node.js(对前端开发者友好)

    • 如果你是前端开发者,这也可以
    • 原理相同,虽然我不会在这里涵盖

先尝试游乐场:
如果你只想快速测试结果,Wavespeed 游乐场让你在浏览器中生成图像。非常适合偶尔使用。对于批量生成或自动化,继续阅读以学习如何使用 API。


快速入门:使用 cURL 测试

打开你的终端(Mac)或命令提示符(Windows)并粘贴以下内容:

curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
  --header 'Content-Type: application/json' \
  --header "Authorization: Bearer $DASHSCOPE_API_KEY" \
  --data '{
    "model": "qwen-image-max",
    "input": {
      "messages": [
        {
          "role": "user",
          "content": [
            {"text": "一个整洁的桌子,上面有一个笔记本和一株植物,柔和的光线照射"}
          ]
        }
      ]
    },
    "parameters": {
      "size": "1024*1024"
    }
  }'

按 Enter,等待几秒钟,你将看到一个 JSON 响应,其中包含一个指向你的图像的链接。

我遇到的陷阱

  1. 模型名称必须是 qwen-image-max,而不是 qwen-image-2512 或其他任何名称。
  2. 大小格式使用星号 1024*1024,而不是 1024x1024
  3. 对于新加坡地区,将 URL 更改为:https://dashscope-intl.aliyuncs.com/api/v1/...

如果你正在构建类似生产的东西,官方 DashScope 流程完全可行 — 但它带有运营细节(地区、URL 生命周期、重试)。这正是我喜欢使用 WaveSpeed 进行日常工作的原因:它在现成的 REST API 后面给我 Qwen Image 2512,所以我可以专注于提示和输出管理,而不是管道工作。

参数说明

必需

  1. model

    • "qwen-image-max" 是 Qwen-Image-2512 的官方名称
    • 还有 "qwen-image-plus",类似但更便宜
  2. input.messages

    • 一个包含一个元素的数组
    • text 是你的描述
    • 最多 800 个字符(大约 400 个中文字符)

可选(如果省略则使用默认值)

  1. parameters.size

    • 1664*928(16:9 横向)
    • 1472*1104(4:3)
    • 1328*1328(1:1 正方形,默认值)
    • 1104*1472(3:4 纵向)
    • 928*1664(9:16 纵向)
  2. parameters.negative_prompt

    • 你不想要的东西:例如,"低分辨率、模糊、扭曲、过度饱和"
    • 最多 500 个字符
  3. parameters.prompt_extend

    • 默认为 true
    • 自动丰富你的描述
    • 如果你想严格控制,将其关闭
  4. parameters.watermark

    • 默认 false
    • 如果为 true,添加”Qwen-Image”水印
  5. parameters.seed

    • 范围 0–2147483647
    • 相同的种子 + 相同的描述 = 相同的图像
    • 用于测试和比较结果

API 响应示例

{
  "output": {
    "choices": [
      {
        "finish_reason": "stop",
        "message": {
          "role": "assistant",
          "content": [
            {
              "image": "https://dashscope-result-sz.oss-cn-shenzhen.aliyuncs.com/xxx.png?Expires=xxxx"
            }
          ]
        }
      }
    ]
  },
  "usage": {
    "width": 1328,
    "image_count": 1,
    "height": 1328
  },
  "request_id": "xxx"
}

关键要点

  • 图像 URL:output.choices[0].message.content[0].image
  • 检查 finish_reason 是否为 "stop" 以确认成功
  • 链接持续 24 小时 — 及时下载

使用 Python 自动化

如果你想进行批量生成或构建小工具:

import os
import time
import requests
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath

API_KEY = os.getenv("DASHSCOPE_API_KEY")
ENDPOINT = "https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation"

HEADERS = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {API_KEY}",
}

def generate_image(prompt: str, size="1328*1328"):
    payload = {
        "model": "qwen-image-max",
        "input": {
            "messages": [{"role": "user", "content": [{"text": prompt}]}]
        },
        "parameters": {"size": size, "prompt_extend": True, "watermark": False}
    }
    r = requests.post(ENDPOINT, headers=HEADERS, json=payload, timeout=120)
    r.raise_for_status()
    data = r.json()
    choices = data.get("output", {}).get("choices", [])
    if not choices:
        raise ValueError(f"没有生成图像:\n{data}")
    content = choices[0].get("message", {}).get("content", [])
    if not content:
        raise ValueError(f"内容为空:\n{data}")
    image_url = content[0].get("image")
    if not image_url:
        raise ValueError(f"没有图像 URL:\n{data}")

    img_response = requests.get(image_url)
    img_response.raise_for_status()

    file_name = PurePosixPath(unquote(urlparse(image_url).path)).parts[-1]
    ts = int(time.time())
    path = f"qwen_image_{ts}_{file_name}"
    with open(path, "wb") as f:
        f.write(img_response.content)
    return path

if __name__ == "__main__":
    output_path = generate_image("一个整洁的桌子,上面有一个笔记本和一株植物,柔和的光线照射")
    print("图像保存在:", output_path)

我在测试中学到的

  • 错误的模型名称会导致失败(qwen-image-plusqwen-image-max
  • 错误的大小格式(1328x1328 而不是 1328*1328
  • 响应结构与文档略有不同;检查图像 URL
  • 忘记下载图像会导致链接在 24 小时后过期

使用官方 SDK

import os
import json
from dashscope import MultiModalConversation

api_key = os.getenv("DASHSCOPE_API_KEY")
messages = [{"role": "user", "content": [{"text": "一个整洁的桌子,上面有一个笔记本和一株植物,柔和的光线照射"}]}]

response = MultiModalConversation.call(
    api_key=api_key,
    model="qwen-image-max",
    messages=messages,
    result_format='message',
    stream=False,
    watermark=False,
    prompt_extend=True,
    size='1328*1328'
)

if response.status_code == 200:
    print(json.dumps(response, ensure_ascii=False))
    image_url = response.output.choices[0].message.content[0]['image']
    print(f"图像 URL:{image_url}")
else:
    print(f"错误:{response.code} - {response.message}")

快速参数参考

参数建议值注释
size1328*1328正方形,速度和质量平衡
prompt_extendTRUE让 AI 丰富你的描述
seed固定数字用于测试以比较结果
negative_prompt根据需要例如,“模糊、低质量、扭曲”

何时更改种子

  • 固定种子 → 比较提示变化
  • 不同的种子 → 生成多个不同的图像

常见错误和修复

  • 401 未授权 → 错误的 API 密钥、错误的地区或缺少图像权限
  • 429 速率限制 → 请求过多;添加延迟或升级配额
  • 超时/网络问题 → 增加超时,立即下载

我添加的小改进

  1. 用于测试提示的固定种子 → 更容易比较结果
  2. 一致的文件命名:{keyword}-{size}-{seed}.png
  3. 配置文件管理:YAML 以避免硬编码参数

这适合谁

游乐场

  • 偶尔生成图像
  • 快速提示测试
  • 不需要自动化

API

  • 批量生成
  • 工具或产品集成
  • 计划或基于系统的使用

最终路径(选择适合你的)

路径 A — 快速和实用

路径 B — 完全控制

  • 如果你需要深度阿里云集成,直接使用 DashScope

我喜欢在后台悄悄工作的工具。为了学习和理解,官方流程很好。对于日常工作和更快地发货,WaveSpeed 为我节省了很多麻烦。