You need to enable JavaScript to run this app.
导航

outpainting智能扩图

最近更新时间2024.03.22 14:36:44

首次发布时间2024.03.12 10:35:23

接口简介

智能扩图支持多种扩展类型,包括:等比扩展、画幅扩展、四边扩展、画布扩展,用户prompt可选输入,不输入则按照算法默认逻辑进行扩展。
考虑到效果更佳,建议选择较小的扩展比例,建议一次性给客户返回3-4个效果供客户进行挑选。

类型描述交互逻辑建议top、bottom 、left 、rightmask示例图-原图示例图-效果图

等比扩展

以图片中心将图片等比扩展,可以设置扩展倍数,考虑效果和性能,目前最大为1

前端做数个固定比例扩展的按钮如扩展10%、20%,让用户点选扩展比例

参数同时传相同数值,数值越大延迟越高

不传


原图


扩展1倍

画幅扩展

以原图为中心,将图片扩展为特定画幅比例的图片。比如1张1:1的方图,扩展生成16:9的横图。一般默认原图大小不变,仅扩展生成目标画幅空白区域。

限制/检测客户输入图图片比例(如要求客户输入图片必须为1:1的图片),固定数个扩展的比例(如16:9)
服务端预置换算逻辑,预置输入图与输出图尺寸转换对应参数

根据换算逻辑传相应参数

不传


1:1原图


16:9画幅

四边扩展

以原图为中心,支持自定义扩展逻辑,比如向上扩展20%,向右扩展60%,向左扩展40%。逻辑也是默认原图大小不变,仅扩展生成自由设置的区域。

支持用户自定义输入,或者前端/后段固定指定尺寸

在这里传相应参数

不传


原图


向上扩展20%,向右扩展60%,向左扩展40%

画布扩展

可以定义一个画布(可以固定尺寸,也可以支持自定义调节),支持原图在画布里的位置、大小、旋转等交互,最终生成固定画布的扩展图;

前端有画布,支持用户上传图片后在画布内调整

不传

传画布相应信息

限制条件

名称内容
图片要求1. 图片格式:仅支持JPG、JPEG、PNG格式,建议使用JPG格式。 
2. 图片文件大小:最大 5 MB。
3. 图片分辨率:最小 64*64,最大 4096*4096

Demo展示

  • 根据画布扩展
    alt

请求说明

名称内容
接口地址https://visual.volcengineapi.com
请求方式POST
Content-Typeapplication/json

请求参数

(1)header请求参数

以下请求参数列表仅列出了接口请求参数和必要公共参数,完整公共参数列表见 公共参数

名称类型是否必填描述
X-DateString使用UTC时间,精确到秒。请使用格式:YYYYMMDD'T'HHMMSS'Z' ,例如:20201103T104027Z

Authorization

String

HMAC-SHA256:签名方法
-Credential为签名凭证,其中:
-AccessKeyId为访问密钥ID,可在 访问密钥(Access Key) 获取;
-ShortDate为请求的短时间,使用UTC时间,精确到日。请使用格式:YYYYMMDD,例如:20180201
-Region为请求地区,国内一般为为cn-north-1
-Service为请求的服务,一般为cv
-SignedHeaders为参与签名计算的头部信息,content-typehost 为必选头部;
-Signature为签名,可在 签名方法 获取。
注:我们提供了SDK及签名示例供您实现服务快速接入,具体可参考 快速接入
例如:HMAC-SHA256 Credential={AccessKeyId}/{ShortDate}/{Region}/{Service}/request, SignedHeaders={SignedHeaders}, Signature={Signature}

X-Security-TokenString指安全令牌服务(Security Token Service,STS) 颁发的临时安全凭证中的SessionToken,使用长期密钥时无需填写该参数。

(2)Query参数
业务请求参数

参数可选/必选类型说明
Action必选String接口名,取值:Img2ImgOutpainting
Version必选String版本号,取值:2022-08-31

(3)Body参数

业务请求参数

参数可选/必选类型说明备注
req_key必选String取值: i2i_outpainting
binary_data_base64必选Array of String输入图片base64数组:
0:输入图片,三通道RGB图
1:输入mask,单通道灰度图,待扩充区域对应0(即白色区域),原图保持部分对应255(即黑色区域)
输入图和mask等大(即需提前扩展原图大小),mask非必填
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表示随机种子)。若随机种子为相同正整数且其他参数均一致,则生成图片极大概率效果一致
默认值:0
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到指定尺寸进行兜底

(4)请求示例

// 使用比例
{
    "req_key": "i2i_outpainting",
    "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",
    "prompt": "蓝色的海洋",
    "binary_data_base64": ["延边图base64", "延边图mask"],
    "scale": 7,
    "seed": -1,
    "steps": 30,
    "strength": 0.8
    "max_height": 1920,
    "max_width": 1920,
}

输出说明

(1)通用输出参数

请参考通用返回字段及错误码

(2)业务输出参数

data 字段说明

字段类型说明备注
binary_data_base64Array of String输出处理过的图片Base64数组(单张图)

(3)输出示例

{
    "code": 10000,
    "data": {
        "algorithm_base_resp": {
            "status_code": 0,
            "status_message": "Success"
        },
        "binary_data_base64": ["扩展图base64"],
        "request_id": "977202e694283d9e430e6d91d3e0bc6540077ea26de523ba7dfd3856409db693"
    },
    "message": "Success",
    "request_id": "20240314153408C09A6A1651795D028F5A",
    "status": 10000,
    "time_elapsed": "3.9405467s"
}

错误码

(1)通用错误码

请参考通用返回字段及错误码

(2)业务错误码

http code错误码错误信息说明
20010000Success成功
40050411Pre Img Risk Not Pass输入图片前审核未通过
40050511Post Img Risk Not Pass输出图片后审核未通过
40050412Text Risk Not Pass输入文本前审核未通过
40050512Post Text Risk Not Pass输出文本后审核未通过
40050413Post Text Risk Not Pass输入文本NER、IP、Blocklist等拦截