图片生成
在内容创作场景中,用户需要根据文本描述快速生成符合要求的图像(如电商商品图、社交媒体配图等)。传统方法依赖人工设计,存在创作周期长、风格一致性差等问题。图片生成模型作为生成式人工智能(AIGC)的重要分支,通过深度学习技术学习文本与图像的关联规律,如何实现从文字指令到高质量图像的自动化生成。
通过调用图片生成模型API,用户可输入文本、单图或多图,实现多图融合创作、图像编辑等多样化玩法。API通过接收包含模型名称、文本提示词及参数的请求,调用预训练模型进行图像生成,并返回结果URL及状态信息,有效解决提示词适配和参数优化问题,提升图像生成效率和准确性。
前提条件
- 已在页签开通预置服务。详情请见开通MaaS预置服务。
- (可选)如果需要控制服务调用流量,可提前创建自定义接入点,详情请参见MaaS创建自定义接入点。
- 已获取API Key。详情请见在MaaS管理API Key。
- 已获取模型服务的model参数值。详情请见图片生成。
使用限制
- 图片传入时支持格式:png、jpeg、jpg、webp、bmp、tiff
- Qwen-Image-Edit模型的图片限制如下:
- 20251028版本:上传的图片文件总大小≤20MB。
- 20250913版本:上传的单个图片文件大小≤15MB。
支持模型
支持图片生成的模型请参见图片生成。
文生图(纯文本输入单图输出)-Qwen_Image(20250821版本)
通过给模型提供清晰准确的文字指令,即可快速获得符合描述的高质量单张图片。
以下为文生图示例代码,可通过model参数替换模型,model参数详情请参见图片生成。
import requests
import json
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", # model参数
"prompt": "A running cat.", # 支持中英文
"size": "1024x1024",
"response_format": "b64_json", # 返回格式,可取值为[url, b64_json], 暂仅支持 b64_json,
"seed": 1 # 取值范围在[0, 2147483648], 随机种子,默认1
}
response = requests.post(url, headers=headers, data=json.dumps(data), verify=False)
# Print result.
print(response.status_code)
print(response.text)
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",
"prompt": "A running cat.",
"size": "1024x1024",
"response_format": "b64_json",
"seed": 1
}'
图文生图(单图输入单图输出)- Qwen-Image-Edit(20250913版本)
基于已有图片,结合文字指令进行图像编辑,包括图像元素增删、风格转化、材质替换、色调迁移、改变背景/视角/尺寸等。
以下为图文生图示例代码,可通过model参数替换模型,model参数详情请参见图片生成。
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/jpg;base64,{base64_image}",
# 支持图片格式 ["png", "jpeg", "jpg", "webp", "bmp", "tiff"],支持使用Base64形式或公网可访问的URL传递图片。
"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 -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": "data:image/jpg;base64,$BASE64_IMAGE",
"seed": 44
}'
多图融合(多图输入单图输出)- Qwen-Image-Edit(20251028版本)
根据您输入的文本描述和多张参考图片,融合它们的风格、元素等特征来生成新图像。如衣裤鞋帽与模特图融合成穿搭图,人物与风景融合为人物风景图等。
以下为多图输入单图输出的Python示例代码,可通过model参数替换模型,model参数详情请参见图片生成。
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_image1 = encode_image("test1.jpg")
base64_image2 = encode_image("test2.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-2509", # model参数
"prompt": "将图1中背景颜色修改为图2湖面颜色", # 支持中英文
"size": "1024x1024",
# [非必填]生成图像的宽度和高度范围为[512, 3072]像素,不填会根据传入的image尺寸生成。
# 推荐尺寸[1024x1024,1536x1536,2048x2048,3072x3072]
"image": f"data:image/jpg;base64,{base64_image1},data:image/jpg;base64,{base64_image2}",
# 支持图片格式["png", "jpeg", "jpg", "webp", "bmp", "tiff"],支持使用Base64形式或公网可访问的URL传递图片。
"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)
API说明
模型调用的完整参数列表请见图片生成。
关键能力
- 指令遵循(提示词)
参数:input.prompt(必选)。
prompt:文本提示词,用于引导模型生成图像,支持中英文。长度支持800 字符以下(每个单词和标点都算一个字符)。如果长度超过800,会自动截断为800字符,超过2000字符则会报错。
- 设置输出图像分辨率
参数: parameters.size (string),格式为 "宽*高"。
Qwen-Image模型:
生成图像尺寸,宽度和高度范围为[512x512, 2048x2048]像素,宽度和高度需要被8整除,否则会向下兼容。
宽高比及宽高像素值推荐如下:
- 1:1,例如2048x2048、1536x1536、1024x1024、512x512。
- 4:3,例如2304x1728。
- 3:4,例如1728x2304。
- 16:9,例如2560x1440。
- 9:16,例如1440x2560。
- 3:2,例如2496x1664。
- 2:3,例如1664x2496。
Qwen-Image-Edit模型(20250913版本):
生成图像的尺寸,宽度和高度范围为[512,2048]像素。
- 如果用户填写size,系统将按照size生成图片;如果用户不填写size,系统将按照传入图片的尺寸生成图片。
- 宽高比及宽高像素值推荐如下:
- 1:1,例如2048x2048、1024x1024、512x512、1328x1328。
- 4:3,例如2304x1728。
- 3:4,例如1728x2304。
- 16:9,例如2560x1440。
- 9:16,例如1440x2560。
- 3:2,例如2496x1664。
- 2:3,例如1664x2496。
Qwen-Image-Edit模型(20251028版本):
生成图像的尺寸,宽度和高度范围为[512,3072]像素。宽高比及宽高像素值推荐如下:- 1:1,例如1024x1024、1536x1536、2048x2048、3072x3072。
- 4:3,例如2304x1728。
- 3:4,例如1728x2304。
- 16:9,例如2560x1440。
- 9:16,例如1440x2560。
- 3:2,例如2496x1664。
- 2:3,例如1664x2496。
如果用户填写size,系统将按照size生成图片。size需满足以下条件。如果用户不填写size,系统将按照传入image中第一张图片尺寸和格式生成图片。
- 图片输出方式
通过设置response_format参数,可以指定生成图像的返回方式为b64_json:以Base64编码字符串的JSON格式返回图像数据。
当前仅支持b64_json:
{ "response_format": "b64_json" }
- 图片中添加水印
通过设置watermark参数,来控制是否在生成的图片中添加水印。
- false:不添加水印。
- true:在图片右下角添加“AI生成”字样的水印标识。
{ "watermark": true }