图片生成
图片生成API用于根据给定的文本提示词同步生成图像。其业务逻辑为接收包含模型名称、文本提示词以及图片生成参数(如图像尺寸、随机数种子等)的请求,调用相应模型进行图片生成,并返回生成结果的URL以及相关状态和使用信息。
前提条件
已在“在线推理 > 预置服务”页面开通SDXL、Qwen_Image或Qwen-Image-Edit模型的商用服务,或者至少为其中一个模型创建了自定义接入点。具体操作,请参见在ModelArts Studio(MaaS)预置服务中开通商用服务和在ModelArts Studio(MaaS)预置服务中创建自定义接入点。
接口信息
名称 |
说明 |
取值 |
---|---|---|
API地址 |
调用图片生成的API地址。 |
https://api.modelarts-maas.com/v1/images/generations |
model参数 |
model参数调用名称。 |
您可以通过任选以下方式获取model参数值。
|
请求参数说明
- 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 }'
- Python示例:
- 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 }'
- Python示例:
- 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 }