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

图片生成

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

前提条件

已在“在线推理 > 预置服务”页面开通SDXL、Qwen_ImageQwen-Image-Edit模型的商用服务,或者至少为其中一个模型创建了自定义接入点。具体操作,请参见在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

文字生成图像

Qwen-Image-Edit

qwen_image_edit

西南-贵阳一

qwen_image_edit

图像编辑

请求参数说明

  • 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

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

    参数名称

    参数类型

    是否必填

    默认值

    说明

    示例值

    model

    string

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

    qwen_image_edit

    prompt

    string

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

    A running cat

    size

    string

    生成图像尺寸,需要介于[512x512, 2048x2048]之间,height和width需要被16整除,否则会向下兼容。推荐值如下:
    • 2048x2048
    • 1024x1024
    • 1328x1328
    • 1472x1104
    • 1584x1056
    • 1664x936
    • 2016x864

    1024x1024

    image

    string

    返回格式,仅支持base64。图片尺寸最大支持1024x1024,最小支持512x512,base64编码最大长度限制3145728(即1024x1024x3)。

    base64

    seed

    int

    随机值

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

    333

响应参数说明

状态码:200

参数

参数类型

说明

model

string

本次请求使用的模型。

created

int

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

data

list[dict]

图像数据列表,与输入image的格式一致

error

error结构

固定返回null

usage

usage结构

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

{

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

stable-diffusion-xl请求示例

  • 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)

Qwen-Image-Edit请求示例

  • Rest API请求示例:
    • Python示例:
      import requests
      import json
      import base64
      
      
      #  Base64 编码格式
      def encode_image(image_path):
          with open(image_path, "rb") as image_file:
              return base64.b64encode(image_file.read()).decode("utf-8")
      
      
      base64_image = encode_image("test.jpg")
      
      if __name__ == '__main__':
          url = "https://api.modelarts-maas.com/v1/images/generations"  # API地址
          api_key = "MAAS_API_KEY"  # 把MAAS_API_KEY替换成已获取的API Key
          # Send request.
          headers = {
              'Content-Type': 'application/json',
              'Authorization': f'Bearer {api_key}'
          }
          data = {
              "model": "qwen_image_edit",  # model参数
              "prompt": "将湖面颜色修改为蓝色",  # 支持中英文
              "size": "1024x1024",
              # 生成图像尺寸qwen_image_edit要求介于[512x512,2048x2048]。
              # 推荐:2048x2048,1536x1536,1024x1024, 512x512,其中height和width需要被16整除,否则会向下兼容。
              "image": f"data:image/jpeg;base64,{base64_image}",  # 支持图片格式,仅支持b64_json。
              "seed": 44  # 取值范围在[0, 2147483648], 随机种子。
          }
          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": "qwen_image_edit",
          "prompt": "将湖面颜色修改为蓝色",
          "size": "1024x1024",
          "image": f"data:image/jpeg;base64,$BASE64_IMAGE",
          "seed": 44
      }'
  • OpenAI SDK请求示例:
    import base64
    from openai import OpenAI
    
    #  Base64 编码格式
    def encode_image(image_path):
        with open(image_path, "rb") as image_file:
            return base64.b64encode(image_file.read()).decode("utf-8")
    
    
    base64_image = encode_image("test.jpg")
    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="qwen_image_edit",
        prompt="将湖面颜色修改为蓝色",
        size="1024x1024",
        extra_body={
            "image": f"data:image/jpeg;base64,{base64_image}",
            "seed": 44
        }
    )
    
    print(response.data[0].b64_json)

stable-diffusion-xl响应示例

{
    "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
}

Qwen-Image-Edit响应示例

{
    "model": "qwen_image_edit",
    "created": 1757948064800,
    "data":
    [
        {
            "url": null,
            "b64_json": "data:image/jpeg;base64,/9j/4AAQSkZJ....JtSWh//2Q=="
        }
    ],
    "usage":
    {
        "model_latency": 17509,
        "prompt_tokens": 0,
        "completion_tokens": 0,
        "total_tokens": 0
    },
    "error": null
}

相关文档