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

调用方式(公测版)

最近更新时间2024.03.08 15:00:43

首次发布时间2023.09.22 10:18:39

接口简介

公测版较历史版本增加眼镜适配(输入图有眼镜,输出图也有眼镜)、水印功能。
V3.0与输入图相似度最高,效果较好,人脸清晰度最高,性能较好。
V3.3(实际模型已升级到v3.4)与模板图相似度最高,与输入图妆容相似度较高,人脸清晰度一般,性能一般。

支持对模版图和素材图中的人像进行图片融合操作,返回融合后的图片。

限制条件

名称内容
图片要求图片格式:JPG(JPEG), PNG, BMP 等常见格式, 建议使用JPG格式.
目标图片要求
1. 图片像素尺寸:最小 128 x 128 像素,最大 4096 x 4096 像素
2. 不支持黑白图片
3. 图片文件大小:目标图片需小于 5 MB
4. 人脸像素尺寸:为了保证融合效果,推荐图片中人脸框(正方形)边长的最小值不低于200像素。
5. 人脸质量:人脸质量越高,则融合效果越好。
6. 影响人脸质量的因素包括:对人脸五官的遮挡、不当的光照(强光、暗光、逆光)、过大的人脸角度(推荐 yaw ≤ ±20°, pitch ≤ ±20°)等。
模版要求:
1. 素材需要有版权, 有肖像权, 没有法律或者政策风险的. 相关风险请注意评估.
2. 注意对于脸部比较特殊的素材, 如眼睛过大等卡通风格的图片,效果可能不佳
3. 模板图片需小于 5 MB,图片像素宽高不宜过大, 模板图最长边强制不能超过 4096.
4. 图片中脸部像素面积不宜过小(至少200*200, 过小换脸会不清晰), 也不宜过大(脸部面积像素大小和速度正相关, 过大会影响速度).
5. 注意图片质量, 保证脸部足够清晰, 不应该有因为压缩导致的噪声, 否则会降低结果图质量
6. 为了更好的效果,模板图脸部应该尽可能正脸,yaw角度要求最高(建议正负10度内),pitch角度其次(建议正负20度内),roll角度(正负30度内)。

请求说明

名称内容
接口地址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接口名,取值:FaceSwap
Version必选String版本号,取值:2022-08-31

(3)Body参数

业务请求参数

参数可选/必选类型说明备注
req_key必选String算法名称:
- 3.0版本取固定值faceswap
- 3.3版本取固定值face_swap3_3
binary_data_base64必选(二选一,优先生效)Array of String输入换脸和模板图片Base64数组,换脸图在前(最多三张),模板图在后(最多一张)
image_urls必选(二选一)Array of String输入换脸和模板图片链接数组,换脸图在前(最多三张),模板图在后(最多一张)
face_type可选String获取人脸位置的方式,支持以下三种模式
l2r:根据人脸中心点从左往右的序号获取
t2b:根据人脸中心点从上往下的序号获取
area:根据人脸面积从大到小的序号获取(默认)
merge_infos可选Array of MergeInfo素材图、模板图的人脸位置信息
logo_info可选LogoInfo水印信息
do_risk可选Boolean是否需要审核(对模板图和素材图都生效)。True为需要,False不需要(默认)。
source_similarity可选String人脸相似度: 范围[0~1],越大越相似.
0: 与原模板一致
1: 与目标图片最大相似度。默认1(此参数不进行调节的效果)
gpen可选Float高清效果,支持[0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1]此参数仅支持3.3, 3.0版本无此配置

MergeInfo
素材图和待被融合的模板图的人脸位置信息。

名称类型必选描述备注
locationInt指定素材图中进行人脸融合的人脸位置序号(默认1),从1开始type为l2r时,此参数为2代表素材图从左往右的第二张人脸
template_locationInt指定模板图中进行人脸融合的人脸位置序号(默认1),从1开始type为l2r时,此参数为2代表模板图从左往右的第二张人脸

LogoInfo
水印相关信息。

名称类型必选描述备注
add_logoBoolean是否添加水印。True为添加,False不添加。默认不添加
positionInt水印的位置,取值如下:
0-右下角
1-左下角
2-左上角
3-右上角
默认0
languageInt水印的语言,取值如下:
0-中文(AI生成)
1-英文(Generated by AI)
默认0
opacityFloat水印的不透明度,取值范围0-1,1表示完全不透明,默认0.3

(4)请求示例

{
    "req_key": "faceswap",
    "binary_data_base64": ["/9xxx","/9xxx"],
    "image_urls": ["http://","http://"],
    "face_type": "area",
    "do_risk": true,
    "merge_infos": [
    	{
    		"location": 1,
    		"template_location": 1
    	}
    ],
    "logo_info":{
    	"add_logo": true,
    	"position": 1,
    	"language": 1
    }
}

输出说明

(1)通用输出参数

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

(2)业务输出参数

data 字段说明

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

(3)输出示例

{
    "code":10000,
    "data":{
        "binary_data_base64": ["/9xxx"],//生成图base64
    },
    "message":"Success",
    "request_id":"xxx",
    "status":10000,
    "time_elapsed":"xxx"
}

错误码

(1)通用错误码

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

(2)业务错误码

http code错误码错误信息说明
20010000Success成功