You need to enable JavaScript to run this app.
文档中心
图像生成大模型

图像生成大模型

复制全文
下载 pdf
智能绘图
outpainting智能扩图(下线中)
复制全文
下载 pdf
outpainting智能扩图(下线中)
接口简介​
智能扩图支持多种扩展类型,包括:等比扩展、画幅扩展、四边扩展、画布扩展,用户prompt可选输入,不输入则按照算法默认逻辑进行扩展。​
考虑到效果更佳,建议选择较小的扩展比例,建议一次性给客户返回3-4个效果供客户进行挑选。​
​
类型​
描述​
交互逻辑建议​
top、bottom 、left 、right​
mask​
示例图-原图​
示例图-效果图​
等比扩展​
以图片中心将图片等比扩展,可以设置扩展倍数,考虑效果和性能,目前最大为1​
前端做数个固定比例扩展的按钮如扩展10%、20%,让用户点选扩展比例​
参数同时传相同数值,数值越大延迟越高​
不传​
​Image​​
原图​
​Image​​
扩展1倍​
画幅扩展​
以原图为中心,将图片扩展为特定画幅比例的图片。比如1张1:1的方图,扩展生成16:9的横图。一般默认原图大小不变,仅扩展生成目标画幅空白区域。​
限制/检测客户输入图图片比例(如要求客户输入图片必须为1:1的图片),固定数个扩展的比例(如16:9)​
服务端预置换算逻辑,预置输入图与输出图尺寸转换对应参数​
根据换算逻辑传相应参数​
不传​
​Image​​
1:1原图​
​Image​​
16:9画幅​
四边扩展​
以原图为中心,支持自定义扩展逻辑,比如向上扩展20%,向右扩展60%,向左扩展40%。逻辑也是默认原图大小不变,仅扩展生成自由设置的区域。​
支持用户自定义输入,或者前端/后段固定指定尺寸​
在这里传相应参数​
不传​
​Image​​
原图​
​Image​​
向上扩展20%,向右扩展60%,向左扩展40%​
画布扩展​
可以定义一个画布(可以固定尺寸,也可以支持自定义调节),支持原图在画布里的位置、大小、旋转等交互,最终生成固定画布的扩展图;​
前端有画布,支持用户上传图片后在画布内调整​
不传​
传画布相应信息​
​Image​​
​
​
Demo展示​
  • 根据画布扩展​
  • ​Image​​
限制条件​
​
名称​
内容​
图片要求​
  1. 图片格式:仅支持JPG、JPEG、PNG格式,建议使用JPG格式。​
  1. 图片文件大小:最大 5 MB。​
  1. 图片分辨率:最小 64x64,最大 4096x4096​
​
请求参数​
​
名称​
内容​
接口地址​
请求方式​
POST​
Content-Type​
application/json​
​
Query参数​
​
参数​
可选/必选​
类型​
说明​
Action​
必选​
String​
接口名,取值:CVSync2AsyncSubmitTask​
Version​
必选​
String​
版本号,取值:2022-08-31​
​
Header参数​
注意​
本服务固定值:Region为cn-north-1,Service为cv​
主要用于鉴权,详见 公共参数 - 签名参数 - 在Header中的场景部分​
Body参数​
注意​
业务请求参数,放到request.body中,MIME-Type为application/json​
​
参数​
可选/必选​
类型​
说明​
备注​
req_key​
必选​
String​
取值: i2i_outpainting​
​
binary_data_base64​
必选(二选一)​
Array of String​
输入图片base64数组:​
0:输入图片,三通道RGB图​
1:输入mask,单通道灰度图,待扩充区域对应255(即白色区域),原图保持部分对应0(即黑色区域)​
输入图和mask等大(即需提前扩展原图大小),mask非必填​
注:画布模式代码实现可以参考Demo​
image_urls​
必选(二选一)​
Array of String​
输入图片url​
0:输入图片,三通道RGB图​
1:输入mask,单通道灰度图,待扩充区域对应255(即白色区域),原图保持部分对应0(即黑色区域)​
输入图和mask等大(即需提前扩展原图大小),mask非必填​
注:画布模式代码实现可以参考Demo​
custom_prompt​
可选​
string​
用于生成图像的提示词,支持中英文输入,建议内容简洁准确,控制在100中文字/英文单词以内,超出部分对生成效果影响较小,此字段会过审核​
​
steps​
可选​
int​
采样步数,生成图像的精细程度,越大效果可能更好,但相应的耗时会剧增​
默认值:30​
​
strength​
可选​
float​
取值范围[0.1,1.0],越小越接近原图,越大越接近文本控制,如果设成0就和原图一模一样​
默认值:0.8​
​
scale​
可选​
float​
取值范围[1, 20],影响文本描述的程度​
默认值:7.0​
​
seed​
可选​
int​
随机种子,作为确定扩散初始状态的基础,非负数(-1表示随机种子)。若随机种子为相同正整数且其他参数均一致,则生成图片极大概率效果一致​
默认值:-1​
​
top​
可选​
float​
取值范围:[0,1],向上扩展比例,暂定最大扩展单边1倍​
默认值:0.1​
​
bottom​
可选​
float​
取值范围:[0,1],向下扩展比例,暂定最大扩展单边1倍​
默认值:0.1​
​
left​
可选​
float​
取值范围:[0,1],向左扩展比例,暂定最大扩展单边1倍​
默认值:0.1​
​
right​
可选​
float​
取值范围:[0,1],向右扩展比例,暂定最大扩展单边1倍​
默认值:0.1​
​
max_height​
可选​
int​
最大输出高度​
默认值:1920,在扩图处理后resize到指定尺寸进行兜底​
​
max_width​
可选​
int​
最大输出宽度​
默认值:1920,在扩图处理后resize到指定尺寸进行兜底​
​
​
提交任务返回参数​
通用返回参数​
业务返回参数​
重点关注data中以下字段,其他字段为公共返回(可忽略或不做解析)​
​
字段​
类型​
说明​
task_id​
string​
任务ID,用于查询结果​
​
提交任务请求&返回完整示例​
请求示例:​
​
// 使用比例​
{​
"req_key": "i2i_outpainting",​
"custom_prompt": "蓝色的海洋",​
"binary_data_base64": ["原图base64"],​
"scale": 7,​
"seed": -1,​
"steps": 30,​
"strength": 0.8,​
"top": 0.1​
"bottom": 0.1,​
"left": 1,​
"right": 1,​
"max_height": 1920,​
"max_width": 1920​
}​
// 使用画布​
{​
"req_key": "i2i_outpainting",​
"custom_prompt": "蓝色的海洋",​
"binary_data_base64": ["延边图base64", "延边图mask"],​
"scale": 7,​
"seed": -1,​
"steps": 30,​
"strength": 0.8​
"max_height": 1920,​
"max_width": 1920,​
}​
​
​
​
返回示例:​
​
{​
"code": 10000, //状态码,优先判断 code=10000, 然后再获取data.task_id,否则解析有可能会panic​
"data": {​
"task_id": "7392616336519610409" //查询任务所需的任务ID​
},​
"message": "Success", //错误信息​
"request_id": "20240720103939AF0029465CF6A74E51EC", //排查错误的关键信息​
"time_elapsed": "104.852309ms" //链路耗时​
}​
​
查询任务​
查询任务请求参数​
Query参数​
​
参数​
类型​
可选/必选​
说明​
Action​
string​
必选​
接口名,固定值:CVSync2AsyncGetResult​
Version​
string​
必选​
版本号,固定值:2022-08-31​
​
Header参数​
注意​
本服务固定值:Region为cn-north-1,Service为cv​
主要用于鉴权,详见 公共参数 - 签名参数 - 在Header中的场景部分​
Body参数​
注意​
业务请求参数,放到request.body中,MIME-Type为application/json​
​
参数​
类型​
可选/必选​
说明​
req_key​
string​
必选​
服务标识​
取固定值: i2i_outpainting​
task_id​
string​
必选​
任务ID,此字段的取值为提交任务接口的返回​
req_json​
JSON string​
可选​
json序列化后的字符串​
目前支持水印配置和是否以图片链接形式返回,可在返回结果中添加​
示例:"{\"logo_info\":{\"add_logo\":true,\"position\":0,\"language\":0,\"opacity\":1,\"logo_text_content\":\"这里是明水印内容\"},\"return_url\":true}"​
​
ReqJson(序列化后的结果再赋值给req_json)​
配置信息​
​
参数​
类型​
可选/必选​
说明​
​
return_url​
bool​
可选​
输出是否返回图片链接 (链接有效期为24小时)​
​
logo_info​
LogoInfo​
可选​
显示水印信息​
​
aigc_meta​
AIGCMeta​
可选​
隐式标识​
隐式标识验证方式:​
  1. 查看【png】或【mp4】格式,人工智能生成合成内容表示服务平台(后续预计增加jpg)​
  1. 查看【jpg】格式,使用app11 segment查看aigc元数据内容​
​
LogoInfo​
水印相关信息​
​
名称​
类型​
可选/必选​
描述​
add_logo​
bool​
可选​
是否添加水印。True为添加,False不添加。默认不添加​
position​
int​
可选​
水印的位置,取值如下:​
0-右下角​
1-左下角​
2-左上角​
3-右上角​
默认0​
language​
int​
可选​
水印的语言,取值如下:​
0-中文(AI生成)​
1-英文(Generated by AI)​
默认0​
opacity​
float​
可选​
水印的不透明度,取值范围0-1,1表示完全不透明,默认1​
logo_text_content​
string​
可选​
明水印自定义内容​
​
AIGCMeta​
隐式标识,依据《人工智能生成合成内容标识办法》&《网络安全技术人工智能生成合成内容标识方法》​
​
名称​
类型​
可选/必选​
描述​
content_producer​
string​
可选​
内容生成服务ID​
producer_id​
string​
必选​
内容生成服务商给此图片数据的唯一ID​
content_propagator​
string​
可选​
内容传播服务商ID​
propagate_id​
string​
可选​
传播服务商给此图片数据的唯一ID​
​
查询任务返回参数​
通用返回参数​
业务返回参数​
说明​
重点关注data中以下字段,其他字段为公共返回(可忽略或不做解析)​
​
参数名​
参数说明​
参数示例​
binary_data_base64​
array of string​
返回图片的base64数组。​
image_urls​
array of string​
返回图片的url数组,输出图片格式为jpeg格式(有效期为 24 小时)​
status​
string​
任务执行状态​
  • in_queue:任务已提交​
  • generating:任务已被消费,处理中​
  • done:处理完成,成功或者失败,可根据外层code&message进行判断​
  • not_found:任务未找到,可能原因是无此任务或任务已过期(12小时)​
  • expired:任务已过期,请尝试重新提交任务请求​
​
查询任务请求&返回完整示例​
请求示例:​
​
{​
"req_key": "i2i_outpainting",​
"task_id": "<任务提交接口返回task_id>",​
"req_json": "{\"logo_info\":{\"add_logo\":false,\"position\":0,\"language\":0,\"opacity\":1,\"logo_text_content\":\"这里是明水印内容\"},\"return_url\":true,\"aigc_meta\":{\"content_producer\":\"xxx\",\"producer_id\":\"xxx\",\"content_propagator\":\"xxx\",\"propagate_id\":\"xxx\"}}"​
}​
​
返回示例:​
​
{​
"code": 10000, //状态码,优先判断 code=10000, 然后再判断data.status,否则解析有可能会panic​
"data": {​
"binary_data_base64": null,​
"image_urls": [​
"https://xxxx",​
// ...​
],​
"status": "done" //任务状态​
},​
"message": "Success",​
"request_id": "2025061718460554C9B78D23B0BAB45B2A", //排查错误的关键信息​
"time_elapsed": "508.312154ms" //链路耗时​
}​
​
返回报错示例:​
​
{​
"code": 50413, //状态码​
"data": null, //code!=10000的情况下,该字段返回为null​
"message": "Post Text Risk Not Pass", //错误信息​
"request_id": "202511281418218670D408837A9B0EB58F", //排查错误的关键信息​
"time_elapsed": "36.799829ms" //链路耗时​
}​
​
错误码​
通用错误码​
业务错误码​
​
http code​
错误码​
错误信息​
说明​
200​
10000​
Success​
成功​
400​
50411​
Pre Img Risk Not Pass​
输入图片前审核未通过​
400​
50511​
Post Img Risk Not Pass​
输出图片后审核未通过​
400​
50412​
Text Risk Not Pass​
输入文本前审核未通过​
400​
50512​
Post Text Risk Not Pass​
输出文本后审核未通过​
400​
50413​
Post Text Risk Not Pass​
输入文本NER、IP、Blocklist等拦截​
​
接入说明​
画布扩展代码实现Demo​
​
from PIL import Image​
import numpy as np​
import base64​
import io​
​
def expand_image_with_mask(image_path, top, bottom, left, right):​
"""​
扩展图像并生成对应的mask​
:param image_path: 输入图像路径​
:param top: 上方扩展像素数​
:param bottom: 下方扩展像素数​
:param left: 左侧扩展像素数​
:param right: 右侧扩展像素数​
:return: (扩展后图像base64, 对应mask base64)​
"""​
# 打开原始图像​
original_img = Image.open(image_path)​
width, height = original_img.size​
​
# 计算新尺寸​
new_width = width + left + right​
new_height = height + top + bottom​
​
# 创建扩展后的图像​
expanded_img = Image.new('RGB', (new_width, new_height), (255, 255, 255))​
expanded_img.paste(original_img, (left, top))​
​
# 创建mask (原始区域为黑色0,扩展区域为白色255)​
mask = Image.new('L', (new_width, new_height), 255)​
mask.paste(0, (left, top, left + width, top + height))​
​
# 转换为base64​
buffered = io.BytesIO()​
expanded_img.save(buffered, format="PNG")​
img_base64 = base64.b64encode(buffered.getvalue()).decode('utf-8')​
​
buffered = io.BytesIO()​
mask.save(buffered, format="PNG")​
mask_base64 = base64.b64encode(buffered.getvalue()).decode('utf-8')​
​
return img_base64, mask_base64​
​
# 使用示例​
if __name__ == "__main__":​
image_path = "test.jpg" # 替换为你的图片路径​
top, bottom, left, right = 50, 50, 500, 50 # 扩展像素​
​
expanded_img, mask = expand_image_with_mask(image_path, top, bottom, left, right)​
print("扩展后图像base64:")​
print(expanded_img) # 打印前100字符​
print("\n对应mask base64:")​
print(mask)​
​
SDK使用说明​
请参考SDK使用说明​
HTTP方式接入说明​
请参考HTTP请求示例​
API_KEY方式接入说明​
最佳实践​
​
​
最近更新时间:2026.09.21 15:28:20
这个页面对您有帮助吗?
有用
有用
无用
无用