更新时间:2025-09-12 GMT+08:00
分享

图片生成

图片生成API用于根据给定的文本提示词同步生成图像。其业务逻辑为接收包含模型名称、文本提示词以及图片生成参数(如图像尺寸、随机数种子等)的请求,调用相应模型进行图片生成,并返回生成结果的URL以及相关状态和使用信息。

前提条件

已在“在线推理 > 预置服务”页面开通SDXL或Qwen_Image模型的商用服务,或者至少为其中一个模型创建了自定义接入点。具体操作,请参见在ModelArts Studio(MaaS)预置服务中开通商用服务在ModelArts Studio(MaaS)预置服务中创建自定义接入点

接口信息

表1 接口信息

名称

说明

取值

API地址

调用图片生成的API地址。

https://api.modelarts-maas.com/v1/images/generations

model参数

model参数调用名称。

您可以通过任选以下方式获取model参数值。

支持模型列表

表2 支持模型列表

模型

模型版本

支持地域

model参数值

应用场景

SDXL

stable-diffusion-xl

西南-贵阳一

stable-diffusion-xl

文字生成图像

Qwen_Image

qwen-image

西南-贵阳一

qwen-image

文字生成图像

请求参数说明

  • SDXL模型
    表3 请求body参数(body体需要小于8M)

    参数名称

    参数类型

    是否必填

    默认值

    说明

    示例值

    model

    string

    模型名称,具体请参见支持模型列表的“model参数值”列。

    stable-diffusion-xl

    prompt

    string

    文本提示词,用于引导模型生成图像。长度支持75 tokens以下(每个单词和标点都算一个token)。SDXL模型当前仅支持英文。

    A cartoon-style cat that is skiing.

    size

    string

    生成图像尺寸。用户可以自定义图像的尺寸,但是MaaS平台会对图像输出的尺寸进行调整,即用户输入的任意尺寸(如宽/高)会被除以8后向下取整,再乘以8得到最终输出的尺寸。

    SDXL模型需要介于[512x512, 1024x1024]之间。推荐值如下:
    • 1024x1024
    • 768x1024
    • 1024x768
    • 768x768
    • 768x512
    • 512x768
    • 512x512

    1024x1024

    guidance_scale

    float

    2.5

    生成自由度控制(数值越高越严格),取值范围为[1, 10],保留一位小数。

    说明:

    仅SDXL模型支持该参数。

    2.5

    response_format

    string

    b64_json

    返回格式,可取值为[url, b64_json],目前仅支持b64_json。

    b64_json

    seed

    int

    1

    随机种子,取值范围为[0, 2147483648],默认值为1。

    333

  • Qwen-Image模型
    表4 请求body参数(body体需要小于8M)

    参数名称

    参数类型

    是否必填

    默认值

    说明

    示例值

    model

    string

    模型名称,具体请参见支持模型列表的“model参数值”列。

    qwen-image

    prompt

    string

    文本提示词,用于引导模型生成图像,支持中英文。长度支持2000 tokens以下(每个单词和标点都算一个token)。如果长度超过800,会自动截断为800 tokens。

    A running cat

    size

    string

    生成图像尺寸,需要介于[512x512, 2048x2048]之间,height和width需要被8整除,否则会向下兼容。推荐值如下:
    • 2048x2048
    • 1536x1536
    • 1024x1024
    • 512x512

    1024x1024

    response_format

    string

    b64_json

    返回格式,可取值为[url, b64_json],目前仅支持b64_json。

    b64_json

    seed

    int

    1

    随机种子,取值范围为[0, 2147483648],默认值为1。

    333

响应参数说明

状态码:200

参数

参数类型

说明

model

string

本次请求使用的模型。

created

int

任务创建时间的Unix时间戳(毫秒)。

data

list[dict]

图像数据列表,格式为png,数据格式:[{"url": null, "b64_json": "Base64字符串"}]。

error

error结构

已弃用,返回为空。

usage

usage结构

结构内容为json结构体,KV值可自定义,例如:

{

    "model_latency":6000,
    "prompt_tokens": 0,
    "completion_tokens": 1024,
    "total_tokens": 1024
  }

请求示例

  • Rest API请求示例:
    • Python示例:
      import requests 
      import json
      
      if __name__ == '__main__': 
          url = "https://api.modelarts-maas.com/v1/images/generations" # API地址 
          api_key = "MAAS_API_KEY"  # 把yourApiKey替换成已获取的API Key  
      
          # Send request. 
          headers = { 
              'Content-Type': 'application/json', 
              'Authorization': f'Bearer {api_key}'  
          } 
          data = {
              "model": "stable-diffusion-xl",  # model参数 
              "prompt": "A cartoon-style cat that is skiing.",  # SDXL模型当前仅支持英文
              "size": "1024x1024",
              "guidance_scale": 3
          }    
          response = requests.post(url, headers=headers, data=json.dumps(data), verify=False)
      
          # Print result. 
          print(response.status_code) 
          print(response.text)
    • cURL示例:
      curl -X POST https://api.modelarts-maas.com/v1/images/generations \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $MAAS_API_KEY" \
        -d '{
          "model": "stable-diffusion-xl",
          "prompt": "A cartoon-style cat that is skiing.",
          "size": "1024x1024",
          "guidance_scale": 3
      }'
  • OpenAI SDK请求示例:
    from openai import OpenAI
    
    base_url = "https://api.modelarts-maas.com/v1/"  # API地址
    api_key = "MAAS_API_KEY"  # 把MAAS_API_KEY替换成已获取的API Key
    
    client = OpenAI(api_key=api_key, base_url=base_url)
    
    response = client.images.generate(
        model="stable-diffusion-xl",
        prompt="A cartoon-style cat that is skiing.",
        size="1024x1024",
        extra_body= {
            "guidance_scale": 3
        }
    )
    
    print(response.data[0].b64_json)

响应示例

{
    "model": "stable-diffusion-xl",
    "created": 1753704897984,
    "data": [
        {
            "url": null,
            "b64_json": "data:image/png;base64,xxxx"
        }
    ],
    "usage": {
        "model_latency": 2324,
        "prompt_tokens": 0,
        "completion_tokens": 0,
        "total_tokens": 0
    },
    "error": null
}

相关文档