智能扩图支持多种扩展类型,包括:等比扩展、画幅扩展、四边扩展、画布扩展,用户prompt可选输入,不输入则按照算法默认逻辑进行扩展。
考虑到效果更佳,建议选择较小的扩展比例,建议一次性给客户返回3-4个效果供客户进行挑选。
类型 | 描述 | 交互逻辑建议 | top、bottom 、left 、right | mask | 示例图-原图 | 示例图-效果图 |
---|---|---|---|---|---|---|
等比扩展 | 以图片中心将图片等比扩展,可以设置扩展倍数,考虑效果和性能,目前最大为1 | 前端做数个固定比例扩展的按钮如扩展10%、20%,让用户点选扩展比例 | 参数同时传相同数值,数值越大延迟越高 | 不传 |
|
|
画幅扩展 | 以原图为中心,将图片扩展为特定画幅比例的图片。比如1张1:1的方图,扩展生成16:9的横图。一般默认原图大小不变,仅扩展生成目标画幅空白区域。 | 限制/检测客户输入图图片比例(如要求客户输入图片必须为1:1的图片),固定数个扩展的比例(如16:9) | 根据换算逻辑传相应参数 | 不传 |
|
|
四边扩展 | 以原图为中心,支持自定义扩展逻辑,比如向上扩展20%,向右扩展60%,向左扩展40%。逻辑也是默认原图大小不变,仅扩展生成自由设置的区域。 | 支持用户自定义输入,或者前端/后段固定指定尺寸 | 在这里传相应参数 | 不传 |
|
|
画布扩展 | 可以定义一个画布(可以固定尺寸,也可以支持自定义调节),支持原图在画布里的位置、大小、旋转等交互,最终生成固定画布的扩展图; | 前端有画布,支持用户上传图片后在画布内调整 | 不传 | 传画布相应信息 |
名称 | 内容 |
---|---|
图片要求 |
|
名称 | 内容 |
---|---|
接口地址 | |
请求方式 | POST |
Content-Type | application/json |
完整公共参数列表见 公共参数
本服务Region为cn-north-1; Service为cv
拼接到url后的参数,示例:https://visual.volcengineapi.com?Action=CVProcess&Version=2022-08-31
参数 | 可选/必选 | 类型 | 说明 |
---|---|---|---|
Action | 必选 | String | 接口名,取值:Img2ImgOutpainting |
Version | 必选 | String | 版本号,取值:2022-08-31 |
业务请求参数,放到request.body中,MIME-Type为application/json
参数 | 可选/必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|
req_key | 必选 | String | 取值: i2i_outpainting | |
binary_data_base64 | 必选(二选一) | Array of String | 输入图片base64数组: | 输入图和mask等大(即需提前扩展原图大小),mask非必填 |
image_urls | 必选(二选一) | Array of String | 输入图片url | 输入图和mask等大(即需提前扩展原图大小),mask非必填 |
custom_prompt | 必选 | string | 用于生成图像的提示词,支持中英文输入,建议内容简洁准确,控制在100中文字/英文单词以内,超出部分对生成效果影响较小,此字段会过审核 | |
return_url | 可选 | bool | 输出是否返回图片链接 (链接有效期为24小时) | |
steps | 可选 | int | 采样步数,生成图像的精细程度,越大效果可能更好,但相应的耗时会剧增 | |
strength | 可选 | float | 取值范围[0.1,1.0],越小越接近原图,越大越接近文本控制,如果设成0就和原图一模一样 | |
scale | 可选 | float | 取值范围[1, 20],影响文本描述的程度 | |
seed | 可选 | int | 随机种子,作为确定扩散初始状态的基础,非负数(-1表示随机种子)。若随机种子为相同正整数且其他参数均一致,则生成图片极大概率效果一致 | |
top | 可选 | float | 取值范围:(0,1],向上扩展比例,暂定最大扩展单边1倍 | |
bottom | 可选 | float | 取值范围:(0,1],向下扩展比例,暂定最大扩展单边1倍 | |
left | 可选 | float | 取值范围:(0,1],向左扩展比例,暂定最大扩展单边1倍 | |
right | 可选 | float | 取值范围:(0,1],向右扩展比例,暂定最大扩展单边1倍 | |
max_height | 可选 | int | 最大输出高度 | |
max_width | 可选 | int | 最大输出宽度 | |
logo_info | 可选 | LogoInfo | 水印信息 |
LogoInfo
水印相关信息。
名称 | 类型 | 必选 | 描述 | 备注 |
---|---|---|---|---|
add_logo | Boolean | 否 | 是否添加水印。True为添加,False不添加。默认不添加 | |
position | Int | 否 | 水印的位置,取值如下: | |
language | Int | 否 | 水印的语言,取值如下: | |
opacity | Float | 否 | 水印的不透明度,取值范围0-1,1表示完全不透明,默认0.3 | |
logo_text_content | String | 否 | 明水印自定义内容 |
请参考通用返回字段及错误码
重点关注data 字段,其他字段为公共返回
字段 | 类型 | 说明 | 备注 |
---|---|---|---|
binary_data_base64 | Array of String | 输出处理过的图片Base64数组(单张图) | |
image_urls | Array of String | 输出处理过的图片url |
// 使用比例 { "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, }
{ "code": 10000, "data": { "algorithm_base_resp": { "status_code": 0, "status_message": "Success" }, "binary_data_base64": ["扩展图base64"], "image_urls":["扩展图url"], "request_id": "977202e694283d9e430e6d91d3e0bc6540077ea26de523ba7dfd3856409db693" }, "message": "Success", "request_id": "20240314153408C09A6A1651795D028F5A", "status": 10000, "time_elapsed": "3.9405467s" }
(1)通用错误码
请参考通用返回字段及错误码
(2)业务错误码
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等拦截 |
请参考SDK使用说明