# 平台能力
平台针对企业账户提供各项算法能力,包括:视频合成能力、人物形象模型生成能力、TTS个人音色模型生成能力、人物形象模型更新能力、视频人物换脸能力等。
# 功能介绍
# 视频合成
2D数字人视频合成服务为您提供输入选择2D数字人形象模型,添加文本或音频合成为2D虚拟数字人mp4/webm格式的视频,并且通过返回的视频链接下载视频内容。
- 形象配置
- 支持通过参数指定本次视频合成需要使用的2D数字人形象,系统提供若干个默认的2D数字人形象模型,供用户选择。具体可联系运营开通账号后查看。
- 音色配置
- 系统支持两种形式的音色配置
- 上传录音文件,支持在线录音上传或者选择对应的音频文件上传,音频将会经过降噪处理后将原声用于最终合成的视频内容。
- 上传文本+选择音色,支持通过参数指定本次视频合成需要使用的发音人音色,以及声音的语速、音调、音量调节,系统提供若干个默认的TTS个人音色模型,供用户选择,将使用指定的音色朗读对应的文本内容,最终将此音频用于视频合成。
- 系统支持两种形式的音色配置
- 数字人驱动
- 支持数字人表情、口型驱动。
- 视频编码信息
- 编码格式: H264
- 帧率: 25FPS
- 视频格式
- 目前仅支持MP4视频格式,视频时长由合成视频的时候选择的内容决定。
- 视频分辨率
- 支持创建视频合成任务的时候指定产出视频的分辨率,建议选择范围为:480p、720p、1080p
- 字幕
- 支持根据用户输入的文字或语音内容生成与之相匹配的字幕文件
- 自定义前景/背景/标题文字
- 支持通过URL指定视频背景图,图片格式支持jpg、png两种格式
- 支持通过URL指定视频前景图,图片格式支持jpg、png两种格式
- 支持通过参数指定视频中标题文字内容的字体,字号,以及出现的位置
- 自定义人物美颜效果
- 支持通过参数调节人物美颜效果,包括:美白/磨皮/脸型调整/眼形调整/发际线调整/苹果肌调整/鼻子调整/下巴调整/嘴巴调整/人中调整/缩头/对比度/饱和度/清晰度/锐化程度调整等十余项参数调整功能,具体请参考参数说明 (opens new window),了解使用规则
- 最大存储时间
- PaaS平台支持7天在线存储,需要及时转存,7天后生成内容将无法下载。
# 视频合成时序图
# TTS个人音色模型生成
TTS个人音色模型生成服务可根据用户上传的真人采集或录制的语音素材文件通过算法训练产出发音效果与声音素材提供者一致的数字人TTS音色模型。为保证训练效果,训练音频时长不得短于5分钟,请在采集时遵照商汤数字人音色复制采集制作规范,内容包括环境要求、设备要求、发音要求、授权要求、朗读脚本,具体参考:采集规范 (opens new window)。PaaS平台支持7天在线存储,需要及时转存,7天后生成内容将无法下载。
# 人物形象模型生成
人物形象模型生成服务可根据用户上传的真人采集或录制的视频通过算法训练产出AI驱动效果与真人几乎无异的数字人人物形象模型。为了完美克隆人物形象,请在拍摄时遵照商汤数字人采集制作规范,内容包括视频、语音,用于 2D 数字人的训练和测试,具体参考:采集规范 (opens new window)。PaaS平台支持7天在线存储,需要及时转存,7天后生成内容将无法下载。
# 人物形象模型生成时序图
# 人物形象模型更新
2D数字人人物形象模型更新服务可针对已经生成完成的人物形象模型进行更新,支持修改数字人训练动作片段。PaaS平台支持7天在线存储,需要及时转存,7天后生成内容将无法下载。
# 视频人物换脸(暂不支持)
视频人物换脸任务可以根据用户上传的视频内容和模板图片调用算法能力进行视频人物换脸处理,最终返回处理后的视频文件和缩略图供用户下载。PaaS平台支持7天在线存储,需要及时转存,7天后生成内容将无法下载。
# API 说明
用户调用平台全部API服务,皆需要访问服务接入点:aigc.softsugar.com,并在请求头中加上token信息。
# 创建视频合成任务
# 接口描述
根据用户上传的指定内容调用算法能力进行视频合成,最终返回mp4/webm格式的视频文件供用户下载。PaaS平台支持7天在线存储,需要及时转存,7天后生成内容将无法下载。
# 请求地址
POST
/api/2dvh/v1/material/video/create
# 请求头
Content-Type:
application/json
# 请求参数
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
param | String | True | 创建视频合成任务需要传入正确的param信息,其中包括各类视频合成参数(该参数为json转义后的字符串),请参考下面的参数说明和 json 示例 (opens new window) ,示例效果 (opens new window) 。 |
videoName | String | True | 视频名称 |
thumbnailUrl | String | False | 缩略图url |
# 请求样例
{
"videoName": "xxx",
"param": "{\"version\":\"0.0.4\",\"resolution\":[1080,1920],\"bit_rate\":16,\"frame_rate\":25,\"watermark\":{\"show\":true,\"content\":\"示例视频\"},\"digital_role\":{\"id\":3964,\"face_feature_id\":\"0401_chenying_s1\",\"name\":\"0401_chenying_s1\",\"url\":\"https://dwg-aigc-paas.oss-cn-hangzhou.aliyuncs.com/materials/77/0401_chenying_s1_20230427133135306.zip\",\"position\":{\"x\":0,\"y\":0},\"scale\":1.0},\"tts_config\":{\"id\":\"nina\",\"name\":\"Nina\",\"vendor_id\":3,\"language\":\"zh-CN\",\"pitch_offset\":0.0,\"speed_ratio\":1,\"volume\":100},\"tts_query\":{\"content\":\"丝绸之路是一条连接东西方的古老商路,在这条路上,东西方通过贸易和文化交流,促进了不同文明的不断融合。 历史上张骞出使西域,开启了最早的丝绸之路,从此丝绸之路上的商人一次次穿越沙漠和山脉进行通商往来。 中国的丝绸、瓷器、茶叶,以及印度的佛教、希腊的哲学等都在这条路上得到充分地传承和发展。\",\"ssml\":false},\"backgrounds\":[{\"type\":0,\"name\":\"背景\",\"url\":\"http://dwg-aigc-paas.oss-cn-hangzhou.aliyuncs.com/test/background.png\",\"rect\":[0,0,1080,1920],\"cycle\":false,\"start\":0,\"duration\":-1}],\"foregrounds\":[{\"type\":0,\"name\":\"前景\",\"url\":\"http://dwg-aigc-paas.oss-cn-hangzhou.aliyuncs.com/test/frontgroud.png\",\"rect\":[0,1359,1092,561],\"cycle\":false,\"start\":0,\"duration\":-1}],\"foreground-texts\":[{\"text\":\"丝绸之路介绍\",\"font_size\":20,\"font_family\":\"Noto Sans S Chinese Black\",\"position\":{\"x\":100,\"y\":200},\"rgba\":[100,200,100,100]}]}"
}
# 响应元素
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
code | Integer | True | 0 - 成功, 其他 - 异常 |
message | String | True | 异常详细信息 |
data | Object | False | 任务id |
# 响应样例
{
"code": 0,
"message": "success",
"data": 1
}
# json参数说明
名称 | 类型 | 取值示例 | 必填 | 说明 |
---|---|---|---|---|
version | String | "0.0.14" | 是 | 视频合成json配置文件最新版本号 |
video_format | String | "mp4" | 否 | 视频输出格式,取值为MP4或WEBM,如果没有该字段,默认为MP4 |
resolution | Int Array | [1080,1920] | 是 | 视频分辨率,建议选择[480,854],[720,1280],[1080,1920]三种竖屏格式,人物模型分辨率为2K(1080 * 1920)和 4K(2160 * 3840),选择不同分辨率需要调整数字人形象比例以达到较好的效果,例如选择[1080,1920]分辨率,则建议 4K数字人形象scale 参数调整为0.5左右 |
bit_rate | Float | 8 | 否 | 视频码率(Mbps),最大值16,最小值1 |
frame_rate | Integer | 25 | 是 | 视频帧率,目前只支持25fps |
watermark | Object | 否 | 视频水印 | |
show | Boolean | True | 是 | 是否显示视频水印 |
content | String | "测试 Test " | 是 | 视频水印内容 |
invisible-watermark | Object | 否 | 视频隐藏水印,仅支持 mp4 | |
show | Boolean | True | 是 | 是否开启视频隐藏水印 |
content | String | "1234567890123456 " | 是 | 隐藏水印文字 ,不可以用中文!仅限英文+数字,一共16个字符,如果不足16字符,后面会自动补0,如果超过16,会截取前16字符 |
digital role | Object | 包含内容如下 | ||
id | Integer | 1 | 否 | 数字人id |
face_feature_id | String | "1" | 是 | 数字人face feature id |
name | String | "小李" | 否 | 数字人名称 |
url | String | "https://xxx/role.zip" | 是 | 数字人形象zip包 |
position | Object | 包含内容如下 | 是 | 数字人形象图片的起始像素位置,以1080*1920分辨率大小画布的左上角为原点,向右为x方向,向下为y方向 |
x | Integer | 0 | 是 | x方向坐标值 |
y | Integer | 0 | 是 | y方向坐标值 |
scale | Float | 1.0 | 是 | 数字人形象比例 |
rotation | Float | 0.0 | 是 | 旋转角度,取值[0.0,360.0],画布坐标系Y轴的反方向为0度,顺时针方向的夹角为旋转角,旋转时以图片中心点为锚点 |
volume | Integer | 0 | 否 | 数字人播报音量,大小取值范围0~100。注:最低版本要求:0.0.13。 |
z_position | Integer | 0 | 是 | 图层顺序,各个 zposition 不可重复,数字越大显示越靠前。 注:最低版本要求:0.0.6(必须字段)。 |
start_frame_index | Integer | 0 | 否 | 合成视频起始帧,取值范围为[1, N],如果输入参数范围不在范围内,直接返回错误。注:最低版本要求:0.0.14。精品数字人不建议设置该参数 |
tts_config | Object | 包含内容如下 | 是 | tts配置。tts_query和audios必须存在其一,tts_query和audios都存在时,tts_query优先 |
qid | String | 8wfZav:AEA_Z10Mqp9GCwDGMrz8xIzi3VScxNzUtLCh | 否 | 填写此字段会覆盖 voiceid , language ,vendor_id 字段。 |
id | String | "zh-CN-XiaoxuanNeural" | 是 | 发音人id , 同 voiceID |
name | String | "晓萱" | 是 | 发音人名称 |
vendor_id | Integer | 4 | 是 | 供应商id ,即 vendor_id ,需要与使用的TTS音色模型信息保持一致 |
language | String | "zh-CN" | 是 | 语言码 |
pitch_offset | Float | 0.0 | 是 | 音调,数值越大越尖锐,越低越低沉,支持范围 [-60, 60] |
speed_ratio | Float | 1 | 是 | 语速,数值越大语速越慢,支持范围 [0.5, 2] |
volume | Integer | 100 | 是 | 音量,数值越大声音越大,支持范围 [1, 400] |
tts_query | Object | 包含内容如下 | 否 | tts语音合成。tts_query和audios必须存在其一,tts_query和audios都存在时,tts_query优先 |
content | String | "尊敬的观众朋友们,大家好!非常荣幸能够在这个美好的时刻与大家相聚,欢迎收看今天的节目。" | 是 | 待合成语音的文本内容,字数不得少于10个字,所有语言的发音人都可以合成英文query;所有语言的发音人都可以合成自己语言的query;粤语、沪语等中文方言发音人可以合成中文query |
ssml | Boolean | false | 否 | 是否使用ssml,开启后query可以使用USSML和SSML ,推荐使用USSML |
audios | Object Array | 包含内容如下 | 否 | 音频驱动。tts_query和audios必须存在其一,tts_query和audios都存在时,tts_query优先 |
url | Object | {"url":"https://xxx/audio.mp3"} | 是 | 数组,支持多条mp3格式的驱动音频文件 |
subtitle | Object | 包含内容如下 | 否 | 字幕 |
url | String | "https://xxx/subtitle.srt" | 是 | 字幕文件列表。0.0.13及之前版本只解析此字段 |
urls | String Array | ["https://xxx/subtitle.srt","https://xxx/subtitle.srt"] | 否 | 0.0.14及之后版本优先解析此字段,如果此字段不存在,则解析url字段。 特殊情况说明:如果版本号大于等于0.0.14,audios中存在多个音频,此时仍然解析url字段,只显示一个字幕,这是正常case。 |
scale | Float | 1.0 | 是 | 文字缩放比例,取值范围0~+∞,默认为1,原始参考尺寸为font_size。 |
position | Object | 包含内容如下 | 否 | 字幕起始位置,以1080*1920分辨率大小画布的左上角为原点,向右为x方向,向下为y方向,默认位置为视频的下方,字幕效果呈现为居中对齐。注:最低版本要求:0.0.13。 |
x | Integer | 0 | 否 | x方向坐标值 |
y | Integer | 0 | 否 | y方向坐标值 |
rgba | Int Array | [100,100,100,100] | 是 | 字幕颜色,按照rgba形式传入,取值范围 0~255 【a通道暂不支持】 |
font_size | Integer | 20 | 是 | 字幕字体大小设置 |
font_family | String | "Noto Sans S Chinese Black" | 是 | 字体名称,支持的字体见json支持字体列表 |
stroke_width | Float | 2 | 否 | 描边宽度,取值范围0~+∞,默认为0,表示描边宽度。注:最低版本要求:0.0.10。 |
stroke_rgba | Int Array | [100,100,100,100] | 否 | 字幕描边颜色,按照rgba形式传入,取值范围 0~255 【a通道暂不支持】。注:最低版本要求:0.0.10。 |
background_rgba | Int Array | [100,100,100,100] | 是 | 字幕背景(字体底色)颜色, 取值范围0~255。a通道为0时表示全透明。注:最低版本要求:0.0.10。 |
opacity | Float | 0.5 | 否 | 字幕图层透明度, 取值范围0~1。0表示全透明,1表示不透明。注:最低版本要求:0.0.10。 |
subtitle_max_len | Integer | 10 | 否 | 字幕最大切分长度,默认为 0,即不限长度,若未设置最大切分字数,设定字幕占用最大长度为画布宽度的80%,超出则自动折行。注:最低版本要求:0.0.10。 |
subtitle_cut_by_punc | Boolean | True | 否 | 是否按标点符号切分。注:最低版本要求:0.0.10。 |
scale | Float | 1.0 | 是 | 字幕文字缩放比例,取值范围0~+∞,默认为1,原始参考尺寸为font_size |
rotation | Float | 0.0 | 是 | 旋转角度,取值[0.0,360.0],画布坐标系Y轴的反方向为0度,顺时针方向的夹角为旋转角,旋转时以图片中心点为锚点。注:最低版本要求:0.0.14。 |
backgrounds | Object Array | 包含内容如下 | 否 | 背景 |
type | Integer | 0 | 是 | 0:图片,支持jpg、png格式;1:视频,支持mp4格式,帧率要求 25 以上,分辨率暂无要求,不同分辨率的视频按照短边撑满,视频等比例缩放形式处理 |
name | String | "背景" | 是 | 背景名称 |
url | String | "https://xxx/bg.png" | 是 | 背景文件url,如没设置背景图或视频,Webm格式展示黑色背景;Mp4格式展示灰色默认的frame的背景效果 |
rect | Int Array | [0,0,1080,1920] | 是 | 【暂不支持】 背景起始位置和大小,以1080*1920分辨率画布为参考,左上角为(0,0),当前不支持自定义,默认短边撑满,长边等比例缩放形式显示 |
cycle | Boolean | false | 是 | 针对视频有效,false:单次播放,true:循环播放 |
start | Integer | 0 | 是 | 背景开始时间,以ms为单位 |
duration | Integer | -1 | 是 | 背景持续时间,以ms为单位,-1为默认值,表示随视频一直存在 |
volume | Integer | 0 | 否 | 背景视频音量,数值越大声音越大,支持范围 [0, 100],标准音量。注:最低版本要求:0.0.13。 |
background-musics | Object Array | 包含内容如下 | 否 | 背景音乐 |
url | String | "https://xxx/bgm.mp3" | 是 | 背景音乐url |
volume | Integer | 100 | 是 | 音量,数值越大声音越大,支持范围 [0, 100],标准音量100 |
cycle | Boolean | True | 否 | false:单次播放,true:循环播放 |
foregrounds | Object Array | 包含内容如下 | 否 | |
type | Integer | 0 | 是 | 0:图片,支持jpg、png格式;1:视频,支持mp4格式 |
name | String | "前景" | 是 | |
url | String | "https://xxx/fg.png" | 是 | 前景文件url,图片支持png或jpg ,视频支持mp4格式 |
rect | Int Array | [0,0,1080,1920] | 是 | 起始位置和大小,以1080*1920分辨率画布为参考 |
rotation | Float | 0.0 | 是 | 旋转角度,取值[0.0,360.0],画布坐标系Y轴的反方向为0度,顺时针方向的夹角为旋转角,旋转时以图片中心点为锚点 |
cycle | Boolean | False | 否 | 针对视频有效,false:单次播放,true:循环播放,前景视频单次播放完成后,如未达到指定持续时间节点,前景视频停留在最后一帧 |
z_position | Integer | 2 | 是 | 图层顺序,各个 zposition 不可重复,数字越大显示越靠前。注:最低版本要求:0.0.6(必须字段)。 |
start | Integer | 0 | 是 | 前景开始时间,以ms为单位 |
duration | Integer | -1 | 是 | 前景持续时间,以ms为单位,-1为默认值,表示随视频一直存在 |
volume | Integer | 0 | 否 | 前景视频音量,数值越大声音越大,支持范围 [0, 100],标准音量。注:最低版本要求:0.0.13。 |
foreground-texts | Object Array | 包含内容如下 | 否 | 前景文字 |
text | String | "前景文字" | 是 | 前景文字内容 |
scale | Float | 1.0 | 是 | 文字缩放比例,取值范围0~+∞,默认为1,原始参考尺寸为font_size。 |
position | Object | 包含内容如下 | 是 | 前景文字起始位置,以1080*1920分辨率大小画布的左上角为原点,向右为x方向,向下为y方向 |
x | Integer | 0 | 是 | x方向坐标值 |
y | Integer | 0 | 是 | y方向坐标值 |
rgba | Int Array | [100,100,100,100] | 是 | 前景文字颜色,按照rgba形式传入,取值范围 0~255 【a通道暂不支持】 |
font_size | Integer | 20 | 是 | 前景文字字体大小设置 |
font_family | String | "Noto Sans S Chinese Black" | 是 | 字体名称,支持的字体见json支持字体列表 |
stroke_width | Float | 2 | 否 | 描边宽度,取值范围0~+∞,默认为0,表示描边宽度 |
stroke_rgba | Int Array | [100,100,100,100] | 否 | 前景文字描边颜色,按照rgba形式传入,取值范围 0~255 【a通道暂不支持】 |
background_rgba | Int Array | [100,100,100,100] | 是 | 前景文字背景(字体底色)颜色, 取值范围0~255。a通道为0时表示全透明。注:最低版本要求:0.0.10。 |
opacity | Float | 0.5 | 否 | 前景文字图层透明度, 取值范围0~1。0表示全透明,1表示不透明。注:最低版本要求:0.0.10。 |
z_position | Integer | 2 | 是 | 图层顺序,各个 zposition 不可重复,数字越大显示越靠前。注:最低版本要求:0.0.8(必须字段)。 |
rotation | Float | 0.0 | 是 | 旋转角度,取值[0.0,360.0],画布坐标系Y轴的反方向为0度,顺时针方向的夹角为旋转角,旋转时以图片中心点为锚点。注:最低版本要求:0.0.14。 |
title | Object Array | 包含内容如下 | 否 | 标题文字 ,其图层在数字人,背景,前景文字的上层。注:最低版本要求:0.0.10。 |
text | String | "标题文字" | 是 | 标题文字内容 |
scale | Float | 1.0 | 是 | 文字缩放比例,取值范围0~+∞,默认为1,原始参考尺寸为font_size。 |
position | Object | 包含内容如下 | 是 | 标题文字起始位置,以1080*1920分辨率大小画布的左上角为原点,向右为x方向,向下为y方向 |
x | Integer | 0 | 是 | x方向坐标值 |
y | Integer | 0 | 是 | y方向坐标值 |
rgba | Int Array | [100,100,100,100] | 是 | 标题文字颜色,按照rgba形式传入,取值范围 0~255 【a通道暂不支持】 |
font_size | Integer | 20 | 是 | 标题文字字体大小设置。单位为px。 |
font_family | String | "Noto Sans S Chinese Black" | 是 | 字体名称,支持的字体见json支持字体列表 |
stroke_rgba | Int Array | [100,100,100,100] | 否 | 标题文字描边颜色,按照rgba形式传入,取值范围 0~255 【a通道暂不支持】 |
stroke_width | Float | 2 | 是 | 描边宽度,取值范围0~+∞,默认为0,表示描边宽度 |
background_rgba | Int Array | [100,100,100,100] | 是 | 标题文字背景(字体底色)颜色, 取值范围0~255。a通道为0时表示全透明。【a通道暂不支持】 |
opacity | Float | 0.5 | 否 | 标题文字图层透明度, 取值范围0~1。0表示全透明,1表示不透明 |
rotation | Float | 0.0 | 是 | 旋转角度,取值[0.0,360.0],画布坐标系Y轴的反方向为0度,顺时针方向的夹角为旋转角,旋转时以图片中心点为锚点。注:最低版本要求:0.0.14。 |
effects | Object | 包含内容如下 | 否 | |
version | String | "1.0" | 是 | 特效引擎版本 |
beautify | Object | 包含内容如下 | 否 | 美颜 |
whitenStrength | Float | 0.3 | 否 | [0,1.0] 美白, 默认值 0.30, 0.0 不做美白 |
whiten_mode | Integer | 0 | 否 | 美白模式:0(偏粉白), 1(自然白), 2(只有皮肤区域自然白) |
reddenStrength | Float | 0.36 | 否 | [0,1.0]红润, 默认值 0.36, 0.0 不做红润 |
smoothStrength | Float | 0.74 | 否 | [0,1.0]磨皮, 默认值 0.74, 0.0 不做磨皮 |
smooth_mode | Integer | 0 | 否 | 磨皮模式:0(脸部区域磨皮), 1(全图磨皮), 2(脸部区域精细磨皮) |
shrinkRatio | Float | 0.11 | 否 | [0,1.0]瘦脸, 默认值 0.11, 0.0 不做瘦脸效果 |
enlargeRatio | Float | 0.13 | 否 | [0,1.0]大眼, 默认值 0.13, 0.0 不做大眼效果 |
smallRatio | Float | 0.10 | 否 | [0,1.0]小脸, 默认值 0.10, 0.0 不做小脸效果 |
narrowFace | Float | 0.0 | 否 | [0,1.0] 窄脸, 默认值 0.0, 0.0 不做窄脸 |
roundEyesRatio | Float | 0.0 | 否 | [0,1.0] 圆眼, 默认值 0.0, 0.0不做圆眼 |
thinFaceShapeRatio | Float | 0.0 | 否 | [0,1.0]瘦脸型, 默认值 0.0, 0.0 不做瘦脸型效果 |
chinLength | Float | 0.0 | 否 | [-1, 1]下巴长短, 默认值为 0.0,[-1, 0]为短下巴,[0, 1]为长下巴 |
hairlineHeightRatio | Float | 0.0 | 否 | [-1, 1]发际线, 默认值为 0.0,[-1, 0] 为低发际线,[0, 1]为高发际线 |
appleMusle | Float | 0.0 | 否 | [0, 1.0]苹果肌,默认值为 0.0,0.0 不做苹果肌 |
narrowNoseRatio | Float | 0.0 | 否 | [0, 1.0]瘦鼻,瘦鼻翼,默认值为 0.0,0.0 不做瘦鼻 |
noseLengthRatio | Float | 0.0 | 否 | [-1, 1]长鼻, 默认值为 0.0, [-1, 0]为短 鼻,[0, 1]为长鼻 |
profileRhinoplasty | Float | 0.0 | 否 | [0, 1.0]侧脸隆鼻,默认值为 0.0,0.0 不做侧脸隆鼻效果 |
mouthSize | Float | 0.0 | 否 | [-1, 1]嘴巴大小,默认值为 0.0,[-1, 0]为放大嘴巴,[0, 1]为缩小嘴巴 |
philtrumLengthRatio | Float | 0.0 | 否 | [-1, 1]人中长短, 默认值为 0.0,[-1, 0]为长人中,[0, 1]为短人中 |
eyeDistanceRatio | Float | 0.0 | 否 | [-1, 1]调整眼距,默认值为 0.0,[-1, 0]为减小眼距,[0, 1]为增加眼距 |
eyeAngleRatio | Float | 0.0 | 否 | [-1, 1]眼睛角度,默认值为 0.0,[-1, 0]为左眼逆时针旋转,[0, 1]为 左眼顺时针旋转,右眼与左眼相对 |
openCanthus | Float | 0.0 | 否 | [0, 1.0]开眼角,默认值为 0.0, 0.0 不做开眼角 |
shrinkJawbone | Float | 0.0 | 否 | [0, 1.0]瘦下颔骨比例,默认值 0.0, 0.0 不做瘦颧骨 |
shrinkRoundFace | Float | 0.0 | 否 | [0, 1.0]圆脸瘦脸,默认值 0.0, 0.0 不做瘦脸 |
shrinkLongFace | Float | 0.0 | 否 | [0, 1.0]长脸瘦脸,默认值 0.0, 0.0 不做瘦脸 |
shrinkGoddessFace | Float | 0.0 | 否 | [0, 1.0]女神瘦脸,默认值 0.0, 0.0 不做瘦脸 |
shrinkNaturalFace | Float | 0.0 | 否 | [0, 1.0]自然瘦脸,默认值 0.0, 0.0 不做瘦脸 |
shrinkWholeHead | Float | 0.0 | 否 | [0, 1.0]整体缩放小头,默认值 0.0, 0.0 不做整体缩放小头效果 |
contrastStrength | Float | 0.05 | 否 | [0,1.0]对比度, 默认值 0.05, 0.0 不做对比度处理 |
saturationStrength | Float | 0.1 | 否 | [0,1.0]饱和度, 默认值 0.10, 0.0 不做饱和度处理 |
sharpen | Float | 0.0 | 否 | [0, 1.0]锐化, 默认值 0.0, 0.0 不做锐化 |
clear | Float | 0.0 | 否 | [0, 1.0]清晰强度,默认值 0.0,0.0 不做清晰 |
bokehStrength | Float | 0.0 | 否 | [0, 1.0]背景虚化强度, 默认值 0.0, 0.0 不做背景虚化 |
eyeHeight | Float | 0.0 | 否 | [-1, 1]眼睛位置比例, 默认值 0.0, [-1, 0]为向下移动眼睛,[0, 1]为向上移动眼睛 |
mouthCorner | Float | 0.0 | 否 | [0, 1.0]嘴角上移比例, 默认值 0.0, 0.0 不做嘴角调整 |
hairline | Float | 0.0 | 否 | [-1, 1]新发际线高低比例, 默认值 0.0, [-1, 0]为低发际线,[0, 1]为高发际线 |
packages | Object Array | 包含内容如下 | 否 | 美妆参数 |
url | String | "https://xxx/res.zip" | 是 | 美妆资源url,美妆资源包请联系客服 |
strength | Float | 0.3 | 是 | 美妆强度 |
filter | Object | 包含内容如下 | 否 | 滤镜参数 |
onlyFigure | Boolean | false | 是 | 滤镜效果是否只作用于数字人,true只对数字人滤镜,false为全局滤镜 |
url | String | "https://xxx/res.zip" | 是 | 滤镜资源url,美妆资源包请联系客服 |
strength | Float | 0.3 | 是 | 滤镜强度 |
# json支持字体列表
语言 | 字体名称 |
---|---|
中文 | Noto Sans S Chinese Black |
中文 | Noto Sans S Chinese Bold |
中文 | Noto Sans S Chinese DemiLight |
中文 | Noto Sans S Chinese Light |
中文 | Noto Sans S Chinese Medium |
中文 | Noto Sans S Chinese Regular |
中文 | Noto Sans S Chinese Thin |
中文 | 仓耳渔阳体 W03 |
中文 | 站酷酷黑 |
中文 | 站酷快乐体2016修订版 |
中文 | 站酷庆科黄油体 |
中文 | 站酷文艺体 |
中文 | 站酷小薇LOGO体 |
中文 | 得意黑 |
中文 | 钉钉进步体 |
中文 | 阿里妈妈东方大楷 |
中文 | 阿里妈妈数黑体 |
中文 | 字魂扁桃体 |
中文 | 包图小白体 |
中文 | 庞门正道粗书体 |
中文 | 杨任东竹石体-Bold |
中文 | 优设标题黑 |
中文 | Gen Jyuu Gothic Normal |
中文 | 字制区喜脉体 |
中文 | 文道潮黑 |
中文 | Alibaba-PuHuiTi-Bold |
中文 | Alibaba-PuHuiTi-Heavy |
中文 | Alibaba-PuHuiTi-Light |
中文 | Alibaba-PuHuiTi-Medium |
中文 | Alibaba-PuHuiTi-Regular |
阿拉伯语 | mastollehregular-2oaxk |
韩语 | HANDotumLVT |
韩语 | HANDotumLVT-bold |
日语 | SourceHanSansJP-Bold |
日语 | SourceHanSansJP-ExtraLight |
日语 | SourceHanSansJP-Heavy |
日语 | SourceHanSansJP-Light |
日语 | SourceHanSansJP-Medium |
日语 | SourceHanSansJP-Normal |
日语 | SourceHanSansJP-Regular |
# json示例
{
"version": "0.0.13",
"video_format": "MP4",
"resolution": [1080, 1920],
"bit_rate": 8,
"frame_rate": 25,
"watermark": {
"show": true,
"content": "内部测试"
},
"digital_role": {
"id": 4051,
"face_feature_id": "0325_nina_s3_beauty",
"name": "Nina",
"url": "https://dwg-aigc-paas.oss-cn-hangzhou.aliyuncs.com/materials/77/0325_nina_s3_beauty_20230523213912566.zip",
"position": {
"x": 0,
"y": 0
},
"scale": 1.0,
"z_position": 1,
"rotation": 0.0
},
"tts_config": {
"id": "xiaoyue",
"name": "晓月",
"vendor_id": 3,
"language": "zh-CN",
"pitch_offset": 0.0,
"speed_ratio": 1,
"volume": 100
},
"tts_query": {
"content": "您好,尊贵的客户",
"ssml": false
},
"audios": [{
"url": "https://dhpoc.softsugar.com/adapter/static/9b158cc9-8e42-4d09-b928-49dd9941d922.mp3"
}, {
"url": "https://dhpoc.softsugar.com/adapter/static/9b158cc9-8e42-4d09-b928-49dd9941d922.mp3"
}],
"subtitle": {
"url": "https://aigc.blob.core.chinacloudapi.cn/audio/tts-srt/823v6j88s1k7aobpe7wmqm83q_de347214-96f2-4246-b283-17f40fe6abba.srt",
"position": {
"x": 100,
"y": 300
},
"rgba": [100, 200, 100, 100],
"font_size": 20,
"stroke_width": 5.0,
"stroke_rgba": [255, 0, 0, 0],
"opacity": 0.5,
"background_rgba": [0, 255, 0, 200],
"subtitle_max_len": 8,
"subtitle_cut_by_punc": "True",
"font_family": "Noto Sans S Chinese Black"
},
"backgrounds": [{
"type": 0,
"name": "背景",
"url": "https://dwg-aigc-paas.oss-cn-hangzhou.aliyuncs.com/test/background.png",
"rect": [0, 0, 1080, 1920],
"cycle": false,
"start": 0,
"duration": -1
}],
"background-musics": [{
"url": "https://dwg-aigc-paas.oss-cn-hangzhou.aliyuncs.com/mayahui/%E7%BE%A4%E6%98%9F%20-%20%E5%96%9C%E6%B4%8B%E6%B4%8B.mp3",
"volume": 100,
"cycle": false
}],
"foregrounds": [{
"type": 0,
"name": "前景",
"url": "http://dwg-aigc-paas.oss-cn-hangzhou.aliyuncs.com/test/frontgroud.png",
"rect": [0, 0, 1080, 1920],
"rotation": 0.0,
"z_position": 0,
"cycle": false,
"start": 0,
"duration": -1
}],
"foreground-texts": [{
"text": "前景",
"font_size": 20,
"font_family": "Noto Sans S Chinese Black",
"z_position": 10,
"stroke_width": 5.0,
"stroke_rgba": [255, 0, 0, 0],
"opacity": 0.5,
"position": {
"x": 0,
"y": 0
},
"background_rgba": [0, 255, 0, 200],
"rgba": [100, 200, 100, 100]
}],
"title": {
"text": "这是标题",
"rgba": [100, 255, 255, 255],
"position": {
"x": 540,
"y": 200
},
"font_size": 50,
"font_family": "Noto Sans S Chinese Black",
"stroke_width": 5.0,
"stroke_rgba": [255, 0, 0, 0],
"scale": 1.0,
"opacity": 0.5,
"background_rgba": [0, 255, 0, 200]
},
"effects": {
"version": "1.0",
"beautify": {
"whitenStrength": 0.30,
"whiten_mode": 0,
"reddenStrength": 0.36,
"smoothStrength": 0.74,
"smooth_mode": 0,
"shrinkRatio": 0.11,
"enlargeRatio": 0.13,
"smallRatio": 0.10,
"narrowFace": 0.0,
"roundEyesRatio": 0.0,
"thinFaceShapeRatio": 0.0,
"chinLength": 0.0,
"hairlineHeightRatio": 0.0,
"appleMusle": 0.0,
"narrowNoseRatio": 0.0,
"noseLengthRatio": 0.0,
"profileRhinoplasty": 0.0,
"mouthSize": 0.0,
"philtrumLengthRatio": 0.0,
"eyeDistanceRatio": 0.0,
"eyeAngleRatio": 0.0,
"openCanthus": 0.0,
"brightEyeStrength": 0.0,
"removeDarkCircleStrength": 0.0,
"removeNasolabialFoldsStrength": 0.0,
"whiteTeeth": 0.0,
"shrinkCheekbone": 0.0,
"thinnerHead": 0.0,
"openExternalCanthus": 0.0,
"shrinkJawbone": 0.0,
"shrinkRoundFace": 0.0,
"shrinkLongFace": 0.0,
"shrinkGoddessFace": 0.0,
"shrinkNaturalFace": 0.0,
"shrinkWholeHead": 0.0,
"contrastStrength": 0.05,
"saturationStrength": 0.10,
"sharpen": 0.0,
"clear": 0.0,
"eyeHeight": 0.0,
"mouthCorner": 0.05,
"hairline": 0.10,
"bokehStrength": 0.0
},
"packages": [{
"url": "https://xxx/xxx.zip",
"strength": 0.3
}, {
"url": "https://xxx/xxx.model",
"strength": 0.5
}],
"filter": {
"onlyFigure": false,
"url": "https://xxx/xxx.model",
"strength": 0.5
}
}
}
# 批量创建视频合成任务
# 接口描述
根据用户上传的指定内容调用算法能力进行批量视频合成,最终返回mp4格式的视频文件列表供用户下载。PaaS平台支持7天在线存储,需要及时转存,7天后生成内容将无法下载。
# 请求地址
POST
/api/2dvh/v1/material/video/batchCreate
# 请求头
Content-Type:
application/json
# 请求参数
JSON数组格式,数组中对象的字段定义如下:
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
param | String | True | 视频生成参数(该参数为json转义后的字符串) |
videoRequestId | String | True | 视频合成id,需唯一 |
videoName | String | True | 视频名称 |
thumbnailUrl | String | False | 缩略图Url |
# 请求样例
[
{
"param": "video config",
"videoName": "name",
"videoRequestId": "aaa"
},
{
"param": "video config",
"videoName": "name",
"videoRequestId": "bbb"
}
]
# 响应元素
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
code | Integer | True | 0 - 成功, 其他 - 异常 |
message | String | True | 异常详细信息 |
data | Object | False | data object ,异常时通常为空 |
- videoRequestId | String | True | 视频合成id,需唯一 |
- taskId | Long | True | 任务id |
- description | String | True | 任务派发结果描述 |
# 响应样例
{
"code": 0,
"message": "success",
"data": [
{
"videoRequestId": "aaa",
"taskId": 26,
"description": "队列等待中"
},
{
"videoRequestId": "bbb",
"taskId": 27,
"description": "队列等待中"
}
]
}
# 创建TTS个人音色模型生成任务
# 接口描述
TTS个人音色模型生成服务可根据用户上传的真人采集或录制的语音素材文件通过算法训练产出发音效果与声音素材提供者一致的数字人TTS音色模型。为保证训练效果,训练音频时长不得短于5分钟,请在采集时遵照商汤数字人音色复制采集制作规范,内容包括环境要求、设备要求、发音要求、授权要求、朗读脚本,具体参考:采集规范 (opens new window),PaaS平台支持7天在线存储,需要及时转存,7天后生成内容将无法下载。
# 请求地址
POST
/api/2dvh/v1/material/voice/clone/create
# 请求头
Content-Type:
application/json
# 请求参数
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
url | String | True | 训练音频文件URL,时长不得短于5分钟 |
voice | Object | True | 语音参数 |
- name | String | True | 发音人名称 |
- gender | Integer | True | 发音人性别(1: Male,2 :Female) |
- language | String | True | 发音人语言(当前仅支持zh-CN:中文普通话) |
musicSep | Boolean | False | 是否进行音频背景音消除 |
sampleAudioMsg | String | False | 示例音频内容文字。默认不生成示例音频。不超过500字。 |
trainMode | String | False | 训练模式,common: 常规训练模式,默认为 common模式;backend_only: 极速训练模式,大幅度压缩模型训练时长,效果也会有影响。 |
# 请求样例
{
"url": "http://oss.com/abc/object.zip",
"voice": {
"name": "xiaotang0",
"gender": 2,
"language": "zh-CN"
},
"sampleAudioMsg": "我是商汤数字人!",
"musicSep": true,
"trainMode": "common"
}
# 响应元素
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
code | Integer | True | 0 - 成功, 其他 - 异常 |
message | String | True | 异常详细信息 |
data | Object | False | 任务id |
# 响应样例
{
"code": 0,
"message": "success",
"data": 11890
}
# 创建人物形象模型生成任务
# 接口描述
根据用户上传的一个或多个视频及指定内容调用算法能力进行人物形象模型生成,支持一次训练产出一个或多个模型文件,算法最终返回人物形象模型的压缩包和缩略图文件供用户下载。上传视频内容请参考采集规范 (opens new window)。PaaS平台支持7天在线存储,需要及时转存,7天后生成内容将无法下载。 若人物模型生成的效果不佳,请参考文档上述的case 应对方案进行训练参数调整。
支持普通数字人训练,支持精品数字人训练。
# 请求地址
POST
/api/2dvh/v1/material/2davatar/model/multi/create
# 请求头
Content-Type:
application/json
# 请求参数
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
materialName | String | True | 人物模型素材名称,一次训练任务仅支持同一命名 |
videoUrl | String | True | 基础base视频素材下载地址 ,基础视频时长要求必须在6min以上 |
param | String | True | 创建多视频人物模型生成任务需要传入正确的param信息,其中包括各类参数(该参数为json转义后的字符串),请参考下面的参数说明和 json 示例 |
# param参数说明
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
personal | String | True | 基础视频参数,可被辅助视频覆盖。如果辅助视频未填写,将使用基础视频参数进行处理。 |
- segmentStyle | Integer | True | 背景分割方式:0:不分割,1:绿幕分割,2:普通分割,3:sdk做绿幕分割后处理(视频合成时gpu后处理) |
- segmentGreenQuality | Integer | False | 当segmentStyle=1时,设置有效,绿幕分割质量:0:low,1:high。默认为0 |
- removeGreenEdge | Boolean | False | 当segmentStyle=2时,设置有效,默认为false,去除人物边缘绿边功能 |
- greenParamsRefinethHBgr | Integer | False | 当segmentStyle=1或 3时,设置有效, 默认 160,范围0-255; refine alpha 高阈值 (对于背景为红绿蓝),用于调整背景保留程度,值越大背景保留程度越大 |
- greenParamsRefinethLBgr | Integer | False | 当segmentStyle=1 或 3时,设置有效, 默认 40, 范围0-255; refine alpha 低阈值 (对于背景为红绿蓝),用于调整人体/物体边缘保留宽度,值越大保留越多 |
- greenParamsBlurKs | Integer | False | 当segmentStyle=1或 3时,设置有效, 默认 3,平滑度; 去噪点的blur系数,大于等于0,平滑度越大越平滑,对边缘有影响,若边缘出现黑边异色可以将该值升高,若边缘出现内蚀可以该值适当降低 |
- greenParamsColorbalance | Integer | False | 当segmentStyle=1 或 3时, 设置有效,默认100, 去绿程度,范围0-100,取值越大,去绿程度越高 |
- greenParamsSpillByalpha | Double | False | 当segmentStyle=1和3时,设置有效, 默认 0.5,去绿色彩平衡,范围[-1.0 ~ 1.0],0 ~ 1 是减少偏色,-1 ~ 0 是增强色彩,小于0.5黄色会偏色,大于0.5青蓝色会偏色,若使用蓝幕分割,则默认值需要改为 0.0 |
- greenParamsSamplePointBgr | int[] | False | 当segmentStyle=1 或 3时,设置有效,采样颜色,由三个数值组成,各自取值范围0-255,例如[0, 255, 0] ,若使用蓝幕分割,则默认值需要改为 [255, 0, 0] |
- assetStart | Float | False | 裁剪视频素材起始时间(秒)(精品数字人该参数无效) |
- assetEnd | Float | False | 裁剪视频素材终止时间(秒)(精品数字人该参数无效) |
- assetScale | Float | False | 视频素材缩放比例(默认1.0) |
- actionChange | Object | False | 精品数字人相关参数 |
- - support | Boolean | True | 是否支持精品数字人,true为精品数字人。 |
- - staticRangeStart | Float | True | 静态素材开始时间(秒)(仅支持精品数字人) |
- - staticRangeEnd | Float | True | 静态素材结束时间(秒)(仅支持精品数字人) |
- - dynamicRangeStart | Float | True | 动态素材开始时间(秒)(仅支持精品数字人) |
- - dynamicRangeEnd | Float | True | 动态素材结束时间(秒)(仅支持精品数字人) |
- - gap | Integer | False | 切出点最大间隔帧数(默认75) |
persistent | Object | False | 模型全局参数,不可被辅助视频参数覆盖 |
- videoCrfQuality | Integer | False | 视频编码质量的参数crf, 参数越小质量越好但文件越大,默认23,允许范围0-51,建议14-28 |
- stage1Config | Array | False | 人物模型口型训练配置,默认为0表示生成原始口型模型 ; 1 表示生成通用口型模型 ,后续用户可根据实际效果选择手动切换两种口型模型 |
- dev | Object | False | 视频素材模型训练配置 |
- - stage2 | Object | False | 视频素材模型训练配置 |
- - - config | Integer | False | 视频素材模型训练配置,模型尺寸,默认为0,表示2k精度模型;1表示4k精度模型 |
override | Array | False | 辅助视频信息。(精品数字人该组参数无效) |
- videoUrl | String | True | 辅助视频地址,如果辅助视频未配置则personal中参数 |
- segmentStyle | Integer | False | 背景分割方式:0:不分割,1:绿幕分割,2:普通分割,3:sdk做绿幕分割后处理(视频合成时gpu后处理) |
- segmentGreenQuality | Integer | False | 当segmentStyle=1时,设置有效,绿幕分割质量:0:low,1:high。默认为0 |
- removeGreenEdge | Boolean | False | 当segmentStyle=2时,设置有效,默认为false,去除人物边缘绿边功能 |
- greenParamsRefinethHBgr | Integer | False | 当segmentStyle=1或 3时,设置有效, 默认 160,范围0-255; refine alpha 高阈值 (对于背景为红绿蓝),用于调整背景保留程度,值越大背景保留程度越大 |
- greenParamsRefinethLBgr | Integer | False | 当segmentStyle=1 或 3时,设置有效, 默认 40, 范围0-255; refine alpha 低阈值 (对于背景为红绿蓝),用于调整人体/物体边缘保留宽度,值越大保留越多 |
- greenParamsBlurKs | Integer | False | 当segmentStyle=1或 3时,设置有效, 默认 3,平滑度; 去噪点的blur系数,大于等于0,平滑度越大越平滑,对边缘有影响,若边缘出现黑边异色可以将该值升高,若边缘出现内蚀可以该值适当降低 |
- greenParamsColorbalance | Integer | False | 当segmentStyle=1 或 3时, 设置有效,默认100, 去绿程度,范围0-100,取值越大,去绿程度越高 |
- greenParamsSpillByalpha | Double | False | 当segmentStyle=1和3时,设置有效, 默认 0.5,去绿色彩平衡,范围[-1.0 ~ 1.0],0 ~ 1 是减少偏色,-1 ~ 0 是增强色彩,小于0.5黄色会偏色,大于0.5青蓝色会偏色,若使用蓝幕分割,则默认值需要改为 0.0 |
- greenParamsSamplePointBgr | int[] | False | 当segmentStyle=1 或 3时,设置有效,采样颜色,由三个数值组成,各自取值范围0-255,例如[0, 255, 0] ,若使用蓝幕分割,则默认值需要改为 [255, 0, 0] |
- assetStart | Float | False | 裁剪视频素材起始时间(秒) |
- assetEnd | Float | False | 裁剪视频素材终止时间(秒) |
- assetScale | Float | False | 视频素材缩放比例(默认1.0) |
# 请求样例
{
"materialName": "534",
"videoUrl": "https://xxx/materials/33/demo_20230228104258028_20230720185601860.mp4",
"param": "{\"personal\":{\"segmentStyle\":1,\"segmentGreenQuality\":0,\"removeGreenEdge\":false,\"greenParamsRefinethHBgr\":180,\"greenParamsRefinethLBgr\":50,\"greenParamsBlurKs\":3,\"greenParamsColorbalance\":90,\"greenParamsSpillByalpha\":0.4,\"greenParamsSamplePointBgr\":[0,255,0],\"assetStart\":0.1,\"assetEnd\":0.6,\"assetScale\":1},\"persistent\":{\"videoCrfQuality\":23,\"stage1Config\":[0,1],\"dev\":{\"stage2\":{\"config\":1}}},\"override\":[{\"videoUrl\":\"https://aigc-video-saas.oss-cn-hangzhou.aliyuncs.com/AIGC/online/vendor/24/customization/1700120490581/package_1700120490581.mp4\",\"segmentStyle\":1,\"segmentGreenQuality\":0,\"removeGreenEdge\":false,\"greenParamsRefinethHBgr\":180,\"greenParamsRefinethLBgr\":50,\"greenParamsBlurKs\":3,\"greenParamsColorbalance\":90,\"greenParamsSpillByalpha\":0.4,\"greenParamsSamplePointBgr\":[0,255,0],\"assetStart\":0.1,\"assetEnd\":0.6,\"assetScale\":1},{\"videoUrl\":\"https://dwg-aigc-paas.oss-cn-hangzhou.aliyuncs.com/demo.mp4\",\"segmentStyle\":1,\"segmentGreenQuality\":0,\"removeGreenEdge\":false,\"greenParamsRefinethHBgr\":180,\"greenParamsRefinethLBgr\":50,\"greenParamsBlurKs\":3,\"greenParamsColorbalance\":90,\"greenParamsSpillByalpha\":0.4,\"greenParamsSamplePointBgr\":[0,255,0],\"assetStart\":0.1,\"assetEnd\":0.6,\"assetScale\":1}]}"
}
# 响应元素
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
code | Integer | True | 0 - 成功, 其他 - 异常 |
message | String | True | 异常详细信息 |
data | Object | False | 任务id |
# 响应样例
{
"code": 0,
"message": "success",
"data": 1
}
#
# 创建人物形象模型生成任务(旧接口)
# 接口描述
注意:该接口仅支持普通数字人模型生成任务,该接口不进行新内容更新。建议使用创建人物形象模型生成接口。
根据用户上传的指定内容调用算法能力进行人物形象模型生成,最终返回人物形象模型的压缩包和缩略图文件供用户下载。上传内容请参考采集规范 (opens new window)。PaaS平台支持7天在线存储,需要及时转存,7天后生成内容将无法下载。
# 请求地址
POST
/api/2dvh/v1/material/2davatar/model/create
# 请求头
Content-Type:
application/json
# 请求参数
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
materialName | String | True | 人物模型素材名称 |
videoUrl | String | True | 视频素材下载地址 |
segmentStyle | Integer | True | 背景分割方式:0:不分割,1:绿幕分割,2:普通分割,3:sdk做绿幕分割后处理(视频合成时gpu后处理) |
segmentGreenQuality | Integer | False | 当segmentStyle=1时,设置有效,绿幕分割质量:0:low,1:high。默认为0 |
removeGreenEdge | Boolean | False | 当segmentStyle=2时,设置有效,默认为false,去除人物边缘绿边功能 |
greenParamsRefinethHBgr | Integer | False | 当segmentStyle=1或 3时,设置有效, 默认 160,范围0-255; refine alpha 高阈值 (对于背景为红绿蓝),用于调整背景保留程度,值越大背景保留程度越大 |
greenParamsRefinethLBgr | Integer | False | 当segmentStyle=1 或 3时,设置有效, 默认 40, 范围0-255; refine alpha 低阈值 (对于背景为红绿蓝),用于调整人体/物体边缘保留宽度,值越大保留越多 |
greenParamsBlurKs | Integer | False | 当segmentStyle=1或 3时,设置有效, 默认 3,平滑度; 去噪点的blur系数,大于等于0,平滑度越大越平滑,对边缘有影响,若边缘出现黑边异色可以将该值升高,若边缘出现内蚀可以该值适当降低 |
greenParamsColorbalance | Integer | False | 当segmentStyle=1 或 3时, 设置有效,默认100, 去绿程度,范围0-100,取值越大,去绿程度越高 |
greenParamsSpillByalpha | Double | False | 当segmentStyle=1和3时,设置有效, 默认 0.5,去绿色彩平衡,范围[-1.0 ~ 1.0],0 ~ 1 是减少偏色,-1 ~ 0 是增强色彩,小于0.5黄色会偏色,大于0.5青蓝色会偏色,若使用蓝幕分割,则默认值需要改为 0.0 |
greenParamsSamplePointBgr | int[] | False | 当segmentStyle=1 或 3时,设置有效,采样颜色,由三个数值组成,各自取值范围0-255,例如[0, 255, 0] ,若使用蓝幕分割,则默认值需要改为 [255, 0, 0] |
videoCrfQuality | Integer | False | 视频编码质量的参数crf, 参数越小质量越好但文件越大,默认23,允许范围0-51,建议14-28 |
assetStart | Float | False | 裁剪视频素材起始时间(秒) |
assetEnd | Float | False | 裁剪视频素材终止时间(秒) |
assetScale | Float | False | 视频素材缩放比例(默认1.0) |
devStage2Config | Integer | False | 视频素材模型训练配置,模型尺寸,默认为0,表示2k精度模型;1表示4k精度模型 |
stage1Template | Integer | False | 人物模型口型训练配置,默认为0表示生成原始口型模型 ; 1 表示生成通用口型模型 ,后续用户可根据实际效果选择手动切换两种口型模型 |
# 请求样例
当segmentStyle=0的示例
{
"materialName": "534",
"segmentStyle": 1,
"segmentGreenQuality": 0,
"assetScale": 1,
"videoCrfQuality": 21,
"stage1Template": 0,
"devStage2Config": 0,
"videoUrl": "https://xxx/materials/33/demo_20230228104258028_20230720185601860.mp4"
}
当segmentStyle=1的示例
{
"materialName": "534",
"segmentStyle": 1,
"segmentGreenQuality": 0,
"assetScale": 1,
"devStage2Config": 0,
"greenParamsRefinethHBgr": 167,
"greenParamsRefinethLBgr": 17,
"greenParamsBlurKs": 7,
"greenParamsColorbalance": 97,
"greenParamsSpillByalpha": 0.3,
"greenParamsSamplePointBgr": [
7,
275,
7
],
"videoCrfQuality": 21,
"stage1Template": 0,
"videoUrl": "https://xxx/materials/33/demo_20230228104258028_20230720185601860.mp4"
}
当segmentStyle=2的示例,仅greenParamsSpillByalpha可变更取值,其他参数将按照默认值传入
{
"materialName": "534",
"segmentStyle": 2,
"devStage2Config": 0,
"stage1Template": 0,
"removeGreenEdge" : true,
"segmentGreenQuality": 0,
"assetScale": 1,
"greenParamsSpillByalpha": 0.3,
"videoCrfQuality": 21,
"videoUrl": "https://xxx/materials/33/demo_20230228104258028_20230720185601860.mp4"
}
当segmentStyle=3的示例
{
"materialName": "534",
"segmentStyle": 3,
"segmentGreenQuality": 0,
"assetScale": 1,
"devStage2Config": 0,
"stage1Template": 0,
"greenParamsRefinethHBgr": 167,
"greenParamsRefinethLBgr": 17,
"greenParamsBlurKs": 7,
"greenParamsColorbalance": 97,
"greenParamsSpillByalpha": 0.3,
"greenParamsSamplePointBgr": [
7,
275,
7
],
"videoCrfQuality": 21,
"videoUrl": "https://xxx/materials/33/demo_20230228104258028_20230720185601860.mp4"
}
# 参数说明
通常情况下,默认参数即可适配大部分场景,但因场景表现不同出现效果问题时,参数也需要针对调整,下面就一些典型场景提供对应的参数建议。
1)通用场景参数(默认)
此场景为适配大多数场景参数,即上述提供的默认参数取值,有需要建议绿幕分割质量(segmentGreenQuality)选择【高】,其他参数如无问题可不修改。
2)数字人画面不清晰调整参数
方法1:将视频编码质量参数(videoCrfQuality)调小,当设置值为14时,数字人素材与原始人物素材清晰度对齐,此方法可能会轻微增大素材大小;
方法2:合成视频或创建直播的输入请求中适当添加锐化sharp值,具体可参考 json 定义说明中 beautify 对象下的 sharpen 取值调大;
方法3:选择4k版本训练数字人
3)人物边缘出现锯齿调整参数
需要确认绿幕分割质量(segmentGreenQuality)取值是否为 high,通常高精分割质量即可保证边缘清晰平滑。
4)人物边缘出现黑边且有轻微反绿调整参数(出现频率高,尤其是白衣服场景易出现)
请参考下面的参数进行人物模型更新(rebuilding),同时调低背景保留程度与人物边缘保留宽度,此方法主要适配绿幕分割场景。参考取值如下:
{
"materialName": "534",
"segmentStyle": 1,
"removeGreenEdge": false ,
"segmentGreenQuality": 1,
"assetScale": 1,
"devStage2Config":0,
"stage1Template": 0,
"greenParamsRefinethHBgr": 90,
"greenParamsRefinethLBgr": 10,
"greenParamsBlurKs": 3,
"greenParamsColorbalance": 100,
"greenParamsSpillByalpha": -0.3,
"greenParamsSamplePointBgr": [
0,
275,
0
],
"videoCrfQuality": 21,
"videoUrl": "https://xxx/materials/33/demo_20230228104258028_20230720185601860.mp4"
}
5)人物边缘有绿边或整体泛绿调整参数
可以调小去绿平衡参数,参数越小去绿力度越高,也更容易偏色,例如将柠檬黄色抠除绿元素而变成橙色,建议最小设为-0.3。此方法可增强色彩,适合画面中没有黄色时,同时支持绿幕分割与普通分割。参考取值如下:
{
"materialName": "534",
"segmentStyle": 2,
"removeGreenEdge": true ,
"devStage2Config": 0,
"stage1Template": 0,
"greenParamsSpillByalpha": -0.3,
"videoCrfQuality": 21,
"videoUrl": "https://xxx/materials/33/demo_20230228104258028_20230720185601860.mp4"
}
6)人物说话脸颊幅度大且在脸颊或脖子位置出现灰边调整参数
此种情况发生原因为初始素材分割结果与驱动后的数字人脸颊边缘不匹配,需要选择绿幕分割后处理(segmentStyle=3)方式训练,主要适合绿幕分割处理的数字人。
# 响应元素
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
code | Integer | True | 0 - 成功, 其他 - 异常 |
message | String | True | 异常详细信息 |
data | Object | False | 任务id |
# 响应样例
{
"code": 0,
"message": "success",
"data": 1
}
# 创建人物形象模型更新任务
# 接口描述
2D数字人展示的动作片段是从训练视频中抽取的,默认情况下是从说话的第一秒到3分半的时长。如果对2D数字人的动作片段不满意,可以通过此接口进行动作片段修改,调整展示的动作时长和内容。需要注意的是使用人物形象模型更新功能时,建议背景分割方式与原模型文件生成时选择的背景分割方式一致,变更分割方式可能会引起效果异常问题。 PaaS平台支持7天在线存储,需要及时转存,7天后生成内容将无法下载。
# 请求地址
POST
/api/2dvh/v1/material/2davatar/model/rebuilding/video
# 请求头
Content-Type:
application/json
# 请求参数
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
materialName | String | True | 人物模型素材名称 |
videoUrl | String | True | 视频素材下载地址 |
modelUrl | String | True | 已生成的原模型文件下载地址 |
segmentStyle | Integer | True | 背景分割方式:0:不分割,1:绿幕分割,2:普通分割,3:sdk做绿幕分割后处理(视频合成时gpu后处理) |
segmentGreenQuality | Integer | False | 当segmentStyle=1时,设置有效,绿幕分割质量:0:low,1:high。默认为0 |
removeGreenEdge | Boolean | False | 当segmentStyle=2时,设置有效,默认为false,去除人物边缘绿边功能 |
greenParamsRefinethHBgr | Integer | False | 当segmentStyle=1或 3时,设置有效, 默认 160,范围0-255; refine alpha 高阈值 (对于背景为红绿蓝),用于调整背景保留程度,值越大背景保留程度越大 |
greenParamsRefinethLBgr | Integer | False | 当segmentStyle=1 或 3时,设置有效, 默认 40, 范围0-255; refine alpha 低阈值 (对于背景为红绿蓝),用于调整人体/物体边缘保留宽度,值越大保留越多 |
greenParamsBlurKs | Integer | False | 当segmentStyle=1或 3时,设置有效, 默认 3,平滑度; 去噪点的blur系数,大于等于0,平滑度越大越平滑,对边缘有影响,若边缘出现黑边异色可以将该值升高,若边缘出现内蚀可以该值适当降低 |
greenParamsColorbalance | Integer | False | 当segmentStyle=1 或 3时, 设置有效,默认100, 去绿程度,范围0-100,取值越大,去绿程度越高 |
greenParamsSpillByalpha | Double | False | 当segmentStyle=1和3时,设置有效, 默认 0.5,去绿色彩平衡,范围[-1.0 ~ 1.0],0 ~ 1 是减少偏色,-1 ~ 0 是增强色彩,小于0.5黄色会偏色,大于0.5青蓝色会偏色,若使用蓝幕分割,则默认值需要改为 0.0 |
greenParamsSamplePointBgr | int[] | False | 当segmentStyle=1 或 3时,设置有效,采样颜色,由三个数值组成,各自取值范围0-255,例如[0, 255, 0] ,若使用蓝幕分割,则默认值需要改为 [255, 0, 0] |
videoCrfQuality | Integer | False | 视频编码质量的参数crf, 参数越小质量越好但文件越大,默认23,允许范围0-51,建议14-28 |
assetStart | Float | False | 裁剪视频素材起始时间(秒) |
assetEnd | Float | False | 裁剪视频素材终止时间(秒) |
assetScale | Float | False | 视频素材缩放比例(默认1.0) |
actionChange | Object | False | 动静切换参数 |
- support | Boolean | True | 是否支持素材动作切换 |
- staticRangeStart | Float | True | 静态素材开始时间(秒) |
- staticRangeEnd | Float | True | 静态素材结束时间(秒) |
- dynamicRangeStart | Float | True | 动态素材开始时间(秒) |
- dynamicRangeEnd | Float | True | 动态素材结束时间(秒) |
- gap | Integer | False | 切出点最大间隔帧数(默认75) |
# 请求样例
{
"materialName": "2d任务A",
"videoUrl": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1.mp4",
"modelUrl": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/model1.zip",
"assetStart": 0.0,
"assetEnd": 120.0,
"assetScale": 1.0,
"segmentStyle": 1,
"devStage2Config": 0,
"stage1Template": 0,
"segmentGreenQuality": 0,
"greenParamsRefinethHBgr": 167,
"greenParamsRefinethLBgr": 17,
"greenParamsBlurKs": 7,
"segmentGreenUseGpu":false,
"greenParamsColorbalance": 97,
"greenParamsSpillByalpha": 0.3,
"greenParamsSamplePointBgr": [
7,
275,
7
],
"videoCrfQuality": 21
}
# 参数说明
通常情况下,默认参数即可适配大部分场景,但因场景表现不同出现效果问题时,参数也需要针对调整,下面就一些典型场景提供对应的参数建议。
1)通用场景参数(默认)
此场景为适配大多数场景参数,即上述提供的默认参数取值,有需要建议绿幕分割质量(segmentGreenQuality)选择【高】,其他参数如无问题可不修改。
2)数字人画面不清晰调整参数
方法1:将视频编码质量参数(videoCrfQuality)调小,当设置值为14时,数字人素材与原始人物素材清晰度对齐,此方法可能会轻微增大素材大小;
方法2:合成视频或创建直播的输入请求中适当添加锐化sharp值,具体可参考 json 定义说明中 beautify 对象下的 sharpen 取值调大;
方法3:选择4k版本训练数字人,但更新时不支持修改分辨率
3)人物边缘出现锯齿调整参数
需要确认绿幕分割质量(segmentGreenQuality)取值是否为 high,通常高精分割质量即可保证边缘清晰平滑。
4)人物边缘出现黑边且有轻微反绿调整参数(出现频率高,尤其是白衣服场景易出现)
请参考下面的参数进行人物模型更新(rebuilding),同时调低背景保留程度与人物边缘保留宽度,此方法主要适配绿幕分割场景。参考取值如下:
{
"materialName": "534",
"segmentStyle": 1,
"removeGreenEdge": false ,
"segmentGreenQuality": 1,
"assetScale": 1,
"greenParamsRefinethHBgr": 90,
"greenParamsRefinethLBgr": 10,
"greenParamsBlurKs": 3,
"greenParamsColorbalance": 100,
"greenParamsSpillByalpha": -0.3,
"greenParamsSamplePointBgr": [
0,
275,
0
],
"videoCrfQuality": 21,
"videoUrl": "https://xxx/materials/33/demo_20230228104258028_20230720185601860.mp4"
}
5)人物边缘有绿边或整体泛绿调整参数
可以调小去绿平衡参数,参数越小去绿力度越高,也更容易偏色,例如将柠檬黄色抠除绿元素而变成橙色,建议最小设为-0.3。此方法可增强色彩,适合画面中没有黄色时,同时支持绿幕分割与普通分割。参考取值如下:
{
"materialName": "534",
"segmentStyle": 2,
"removeGreenEdge": true ,
"greenParamsSpillByalpha": -0.3,
"videoCrfQuality": 21,
"videoUrl": "https://xxx/materials/33/demo_20230228104258028_20230720185601860.mp4"
}
6)人物说话脸颊幅度大且在脸颊或脖子位置出现灰边调整参数
此种情况发生原因为初始素材分割结果与驱动后的数字人脸颊边缘不匹配,需要选择绿幕分割后处理(segmentStyle=3)方式训练,主要适合绿幕分割处理的数字人。
# 响应元素
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
code | Integer | True | 0 - 成功, 其他 - 异常 |
message | String | True | 异常详细信息 |
data | Object | False | 任务id |
# 响应样例
{
"code": 0,
"message": "success",
"data": 1
}
# 创建视频人物换脸任务(内部测试)
# 接口描述
根据用户上传的视频内容和模板图片调用算法能力进行视频人物换脸处理,最终返回处理后的视频文件和缩略图供用户下载。
# 请求地址
POST
/api/2dvh/v1/material/face/swap/create
# 请求头
Content-Type:
application/json
# 请求参数
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
facePhotoUrl | String | True | 换脸使用的模板面部图片 |
videoUrl | String | True | 换脸使用的原始视频文件 |
materialName | String | True | 换脸任务名称 |
# 请求样例
{
"facePhotoUrl": "facePhotoUrl",
"videoUrl": "videoUrl",
"materialName": "materialName"
}
# 响应元素
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
code | Integer | True | 0 - 成功, 其他 - 异常 |
message | String | True | 异常详细信息 |
data | Object | False | 任务id |
# 响应样例
{
"code": 0,
"message": "success",
"data": 1
}
# 响应元素
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
code | Integer | True | 0 - 成功, 其他 - 异常 |
message | String | True | 异常详细信息 |
data | Object | False | 任务id |
# 响应样例
{
"code": 0,
"message": "success",
"data": 1
}
# 获取指定任务信息
# 接口描述
根据用户传入的任务ID查询任务的对应信息,以及当前的任务所处状态。
# 请求地址
POST
/api/2dvh/v1/task/info
# 请求头
Content-Type:
application/json
# 请求参数
JSON数组格式,数组中对象的字段定义如下:
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
ids | Long[] | True | 任务id列表 |
# 请求样例
{
"ids": [7,27]
}
# 响应元素
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
code | Integer | True | 0 - 成功, 其他 - 异常 |
message | String | True | 异常详细信息 |
data | Object | False | 任务信息 |
- id | Long | True | 任务id |
- materialId | Integer | True | 素材 id |
- materialName | String | True | 素材名称 |
- algoType | Integer | True | 任务类型(11:TTS音色模型生成,12:人物形象模型生成,14:视频合成,20:视频人物换脸,18:人物形象模型更新,25:音色转换 ) |
- algoSubType1 | String | True | 人物模型:模型规格:2K/4K,视频合成:使用人物模型规格:2K/4K |
- algoSubType2 | String | False | 视频合成:结果物格式:webm/mp4 |
- algoSubType3 | String | False | 视频合成:结果物帧率 |
- status | Integer | True | 任务状态,0:未开始,1:Dispatcher队列等待中,2:算法正在处理,3:已取消,5:已完成,9:异常 |
- extendParam | String | False | 扩展参数 |
- productParam | String | True | 任务结果json串,不同任务格式不同。 |
- startTime | String | True | 算法开始时间(yyyy-MM-dd HH:mm:ss) |
- endTime | String | True | 算法截止时间(yyyy-MM-dd HH:mm:ss) |
# case1: 视频合成
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
duration | Integer | True | 合成视频时长(单位:毫秒) |
lastFrameIndex | Integer | True | 视频结尾帧 |
algoSubType1 | String | True | 视频合成:使用人物模型规格:2K/4K |
algoSubType2 | String | True | 视频合成:结果物格式:webm/mp4 |
algoSubType3 | String | True | 视频合成:结果物帧率 |
thumbPath | String | True | 缩略图下载地址(7天有效) |
videoPath | String | True | 视频下载地址(7天有效) |
# case2: 人物形象模型生成
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
thumbPath | String | True | 基础视频生成人物模型缩略图下载地址(7天有效) |
pkgPath | String | True | 人物形象下载地址 (7天有效),多视频人物模型生成时无此字段返回 |
# case3: (多视频)人物形象模型生成(/model/multi/create接口结果)
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
thumbPath | String | True | 基础视频生成人物模型缩略图下载地址(7天有效) |
multi | Array | False | 多视频人物模型生结果,内容为数组 |
- videoUrl | String | True | 原始视频文件URL |
- orgin | Object | True | 原始口型人物模型对象 (stage1Template参数为0) |
- - thumbPath | String | True | 人物模型缩略图下载地址(7天有效) |
- - pkgPath | String | True | 人物模型下载地址 (7天有效) |
- - faceFeatureId | String | True | Face Feature Id |
- common | Object | True | 通用口型人物模型对象 (stage1Template参数为1 ) |
- - thumbPath | String | True | 人物模型缩略图下载地址(7天有效) |
- - pkgPath | String | True | 人物模型下载地址 (7天有效) |
- - faceFeatureId | String | True | Face Feature Id |
# case4: 人物形象模型更新
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
thumbPath | String | True | 人物模型缩略图下载地址(7天有效) |
pkgPath | String | True | 人物模型下载地址 (7天有效) |
modelInfo | String | True | 人物模型:模型规格:2K/4K |
# case5: TTS音色模型生成
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
sampleAudioUrl | String | True | 示例音频的地址 (7天有效) |
duration_ms | Integer | True | 示例音频的时长,单位为ms |
voice | Object | True | 声音信息 |
- id | String | True | 声音ID |
- name | String | True | 发音人名称 |
- gender | Integer | True | 发音人性别。0 = Not known。1 = Male。2 = Female。9 = Not applicable |
- language | String | True | 发音人语言。zh-CN中文普通话,en-US美式英文 |
- vendor_id | Integer | True | 声音供应商ID |
- musicSeq | Boolean | True | 是否进行背景音消除 |
- humanLabel | Boolean | True | 是否进行人工标注 |
- sampleAudioMsg | String | True | 用户填写的需要生成的示例音频文案,未填写则为空。 |
- callbackUrl | String | True | 回调地址 |
- tenant | String | True | 任务所属租户 |
- status | Integer | True | 任务状态。1 = 排队中。2 = 任务进行中。3 = 已取消。5 = 已完成。 9 = 异常。 |
- msg | String | True | 任务状态描述信息。 |
- stage | String | True | 任务子步骤。preprocess:数据预处理。label:数据标注。training:模型训练。deployment:部署阶段。 |
- stageStatus | Integer | True | 阶段状态。1 = 排队中。2 = 任务进行中。5 = 已完成。 9 = 异常。 |
- modelUrl | String | True | 任务成功时返回模型下载地址,仅内网可用。暂不对外提供 |
- priority | Integer | True | 任务优先级 |
- createdTime | String | True | 任务创建时间 |
- updatedTime | String | True | 任务信息更新时间 |
# case6: 视频人物换脸
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
thumbPath | String | True | 缩略图下载地址 (7天有效) |
pkgPath | String | True | 人物形象下载地址 (7天有效) |
# case7: 声音转换
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
msg | String | True | Face Feature Id |
voice | Object | True | 声音信息 |
- id | String | True | 声音ID |
- name | String | True | 发音人名称 |
- gender | Integer | True | 发音人性别。0 = Not known。1 = Male。2 = Female。9 = Not applicable |
- language | String | True | 发音人语言。zh-CN中文普通话,en-US美式英文 |
- vendor_id | Integer | True | 声音供应商ID |
tenant | String | True | 租户ID |
stage | String | True | Face Feature Id |
stageStatus | String | True | 阶段状态。1 = 排队中。2 = 任务进行中。5 = 已完成。 9 = 异常。 |
sampleAudioUrl | String | False | 任务完成且创建任务时设置了 sample_audio_msg 时会填写此字段,为示例音频的地址。 |
extendParam中人物形象模型参数信息
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
faceFeatureId | String | True | Face Feature Id |
# 响应样例1
{
"code": 0,
"message": "success",
"data": [{
"id": 27,
"productParam": "\"{\\\"duration\\\":1234,\\\"thumbPath\\\":\\\"https://oss-cn-hangzhou.aliyuncs.com/dwg-aigc-paas/materials/a8610d001aaa412ab2e0433fc848b48f/thumb.jpg\\\",\\\"videoPath\\\":\\\"https://oss-cn-hangzhou.aliyuncs.com/dwg-aigc-paas/materials/a8610d001aaa412ab2e0433fc848b48f/output.mp4\\\"}\"",
"startTime": "2023-02-17 16:53:26",
"endTime": "2023-02-18 10:03:21",
"status": 5
},
{
"id": 7,
"productParam": "{}",
"startTime": "2023-02-17 16:56:26",
"endTime": "2023-02-17 17:43:19",
"status": 9
}]
}
# 响应样例2
{
"code": 0,
"msg": "success",
"task": {
"id": "c0a5355a-026a-4865-95aa-8acea4f98b48",
"config": {
"url": "http://oss.com/abc/object.zip",
"voice": {
"id": "bababababa",
"name": "xiaotang",
"gender": 1,
"language": "zh-CN",
"vendor_id": 3
},
"musicSep": false,
"humanLabel": true,
"sampleAudioMsg": "哈哈"
},
"callbackUrl": "http://example-callback-address/ahaha/ahaha",
"tenant": "yore",
"status": 2,
"msg": "yahaha",
"stage": "abcdefg",
"stageStatus": 1,
"sampleAudioUrl": "http://abc.com/def",
"modelUrl": "http://10.1.2.3/abc.zip",
"priority": 0,
"created_time": "2023-06-15T10:02:34.406449Z",
"updated_time": "2023-06-15T11:07:53.307669Z"
}
}
# 获取账户任务信息
# 接口描述
根据用户的账户ID查询其账户下某算法类型下全部任务的对应信息,以及当前的任务所处状态,任务列表支持分页。
# 请求地址
POST
/api/2dvh/v1/task/listByAccount
# 请求头
Content-Type:
application/json
# 请求参数
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
algoType | Integer | True | 任务类型(11:TTS音色模型生成,12:人物形象模型生成,14:视频合成,20:视频人物换脸,18:人物形象模型更新,25:音色转换 ) |
pageNo | int | False | 当前页码 (默认 1) |
pageSize | int | False | 每页条数 (默认 10) |
sortName | String | False | 排序字段名 |
sortValue | String | False | 排序顺序: asc, desc |
# 请求样例
{
"algoType": 12,
"pageSize": 10,
"pageNo": 1
}
# 响应元素
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
code | Number | True | 0 - 成功, 其他- 异常 |
message | String | True | 异常详细信息 |
data | Object | False | data object ,异常时通常为空 |
- pagination | Pagination | True | 分页信息(参照通用数据结构说明) |
- result | Object | True | 任务列表(参照下面说明) |
任务列表
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
id | Long | True | 任务id |
algoType | Integer | True | 任务类型(11:TTS音色模型生成,12:人物形象模型生成,14:视频合成,20: 视频人物换脸,18:人物形象模型更新,25:音色转换 ) |
algoSubType1 | String | True | 人物模型:模型规格:2K/4K,视频合成:使用人物模型规格:2K/4K |
algoSubType2 | String | False | 视频合成:结果物格式:webm/mp4 |
algoSubType3 | String | False | 视频合成:结果物帧率 |
status | Integer | True | 任务状态 0:未开始,1:Dispatcher队列等待中,2:算法正在处理,3:已取消,5:已完成,9:异常 |
productParam | String | True | 任务结果json串,包含视频地址videoPath,视频时长duration,截图地址thumbPath |
startTime | String | True | 算法开始时间(yyyy-MM-dd HH:mm:ss) |
endTime | String | True | 算法截止时间(yyyy-MM-dd HH:mm:ss) |
# 响应样例
{
"code": 0,
"message": "success",
"data": {
"pagination": {
"pageNo": 1,
"numberPages": 1,
"numberRecords": 2,
"pageSize": 2,
"startIndex": 0
},
"result": [
{
"id": 27,
"algoType": 12,
"algoSubType1": "4K",
"algoSubType2": null,
"algoSubType3": null,
"productParam": "\"{\\\"duration\\\":1234,\\\"thumbPath\\\":\\\"https://oss-cn-hangzhou.aliyuncs.com/dwg-aigc-paas/materials/a8610d001aaa412ab2e0433fc848b48f/thumb.jpg\\\",\\\"videoPath\\\":\\\"https://oss-cn-hangzhou.aliyuncs.com/dwg-aigc-paas/materials/a8610d001aaa412ab2e0433fc848b48f/output.mp4\\\"}\"",
"startTime": "2023-02-17 16:53:26",
"endTime": "2023-02-18 10:03:21",
"status": 5
},
{
"id": 7,
"algoType": 12,
"algoSubType1": "4K",
"algoSubType2": null,
"algoSubType3": null,
"productParam": "{}",
"startTime": "2023-02-17 16:56:26",
"endTime": "2023-02-17 17:43:19",
"status": 9
}
]
}
}
# 获取账户任务信息详情
# 接口描述
查询账户下某算法类型下全部任务的对应信息,以及当前的任务所处状态,原始输入内容,返回结果物等信息详情,任务列表支持分页。
# 请求地址
POST
/api/2dvh/v1/task/listWithQueue
# 请求头
Content-Type:
application/json
# 请求参数
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
userId | Long | False | 用户id,默认为当前登录账户id |
algoType | Integer | True | 任务类型(11:TTS音色模型生成,12:人物形象模型生成,14:视频合成,20: 视频人物换脸,18:人物形象模型更新,25:音色转换 ) |
status | Integer | True | 任务状态 (0:未开始,1:Dispatcher队列等待中,2:算法正在处理,3:已取消,5:已完成,9:异常, -1: 全部 ) |
key | String | False | 任务ID/角色名称查询(精确匹配) |
pageNo | int | False | 当前页码 (默认 1) |
pageSize | int | False | 每页条数 (默认 10) |
sortName | String | False | 排序字段名 |
sortValue | String | False | 排序顺序: asc, desc |
# 请求样例
{
"algoType": 12,
"pageSize": 10,
"pageNo": 1
}
# 响应元素
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
code | Number | True | 0 - 成功, 其他- 异常 |
message | String | True | 异常详细信息 |
data | Object | False | data object ,异常时通常为空 |
- pagination | Pagination | True | 分页信息(参照通用数据结构说明) |
- result | Object | True | 任务列表(参照下面说明) |
任务列表
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
id | Long | True | 任务id |
algoType | Integer | True | 任务类型(11:TTS音色模型生成,12:人物形象模型生成,14:视频合成,20: 视频人物换脸,18:人物形象模型更新,25:音色转换 |
materialId | Long | True | 模型id |
materialName | String | True | 素材名称 |
queueInfo | String | False | 排队信息 |
status | Integer | True | 任务状态 0:未开始,1:Dispatcher队列等待中,2:算法正在处理,3:已取消,5:已完成,9:异常 |
productParam | String | True | 任务结果json串,包含视频地址videoPath,视频时长duration,截图地址thumbPath |
extendParam | String | False | 扩展参数,人物形象模型生成时包含faceFeatureId |
algoSubType1 | String | True | 人物模型:模型规格:2K/4K,视频合成: 使用人物模型规格:2K/4K |
algoSubType2 | String | False | 视频合成:结果物格式:webm/mp4 |
algoSubType3 | String | False | 视频合成:结果物帧率 |
taskInfo | String | True | 任务初始参数及原始文件 |
algoId | String | True | 算法任务id |
message | String | False | 错误信息 |
submitTime | String | True | 算法提交时间(yyyy-MM-dd HH:mm:ss) |
startTime | String | False | 算法开始时间(yyyy-MM-dd HH:mm:ss) |
endTime | String | False | 算法截止时间(yyyy-MM-dd HH:mm:ss) |
owner | Long | True | 任务所属账户 |
ownerPhone | String | True | 账户手机号码 |
# 响应样例
{
"code": 0,
"message": "success",
"data": {
"pagination": {
"pageNo": 1,
"numberPages": 1,
"numberRecords": 2,
"pageSize": 2,
"startIndex": 0
},
"result": [
{
"id": 8833,
"materialId": 8122,
"materialName": "Mario_4_talk.mp4_sensetime-segment_type_绿幕分割",
"productParam": "{\"pkgPath\": \"https://dwg-aigc-paas-test.oss-cn-hangzhou.aliyuncs.com/download/8/b6ecebc8233b47809dedd6731c052d15_s1/b6ecebc8233b47809dedd6731c052d15_s1_result.zip\", \"thumbPath\": \"https://dwg-aigc-paas-test.oss-cn-hangzhou.aliyuncs.com/download/8/b6ecebc8233b47809dedd6731c052d15_s1/b6ecebc8233b47809dedd6731c052d15_s1_result.png\", \"faceFeaturePath\": \"https://dwg-aigc-paas-test.oss-cn-hangzhou.aliyuncs.com/download/8/b6ecebc8233b47809dedd6731c052d15_s1/b6ecebc8233b47809dedd6731c052d15_s1_face_feature.zip\"}",
"extendParam": "{\"faceFeatureId\": \"b6ecebc8233b47809dedd6731c052d15_s1\"}",
"startTime": "2023-06-07 23:31:50",
"endTime": "2023-06-08 05:19:29",
"status": 5,
"message": "{}",
"algoType": 12,
"algoId": "b6ecebc8233b47809dedd6731c052d15_s1",
"algoSubType1": "4K",
"algoSubType2": null,
"algoSubType3": null,
"submitTime": "2023-06-07 17:34:40",
"ownerPhone": "18311096857",
"owner": 8,
"queueInfo": null,
"taskInfo": "{\"create2DAvatarModel\": {\"videoUrl\": \"https://ailab-storage-eus.oss-us-west-1.aliyuncs.com/31_trim_result/Mario_4_talk.mp4?OSSAccessKeyId=LTAI5tE2Hq2BAqr8EBzxmSrR&Expires=37686060051&Signature=C1L%2FxpHD%2FW155s%2BuhTocyVvsUfo%3D\", \"accountId\": 8, \"assetScale\": 1.0, \"existTaskId\": 0, \"firstCreate\": true, \"materialName\": \"Mario_4_talk.mp4_sensetime-segment_type_绿幕分割\", \"segmentStyle\": 1, \"segmentGreenQuality\": 1}}"
},
{
"id": 9093,
"materialId": 8258,
"materialName": "wu0609_sensetime-segment_type_绿幕分割",
"productParam": null,
"extendParam": null,
"startTime": "2023-06-09 10:56:38",
"endTime": null,
"status": 2,
"message": "{}",
"algoType": 12,
"algoId": "5f6006acb891496f93bfeeff601201fe_s1",
"algoSubType1": "4K",
"algoSubType2": null,
"algoSubType3": null,
"submitTime": "2023-06-09 10:56:36",
"ownerPhone": "18311096857",
"owner": 8,
"queueInfo": null,
"taskInfo": "{\"create2DAvatarModel\": {\"videoUrl\": \"http://dwg-aigc-paas.oss-cn-hangzhou.aliyuncs.com/wanxing_0606/zhuzong.mp4\", \"accountId\": 8, \"assetScale\": 1.0, \"existTaskId\": 0, \"firstCreate\": true, \"materialName\": \"wu0609_sensetime-segment_type_绿幕分割\", \"segmentStyle\": 1, \"segmentGreenQuality\": 1}}"
},
{
"id": 8528,
"materialId": 7908,
"materialName": "Claire_3_talk.mp4_sensetime-segment_type_绿幕分割",
"productParam": "{\"pkgPath\": \"https://dwg-aigc-paas-test.oss-cn-hangzhou.aliyuncs.com/download/8/1907b913f78845168529bad59f36a43f_s1/1907b913f78845168529bad59f36a43f_s1_result.zip\", \"thumbPath\": \"https://dwg-aigc-paas-test.oss-cn-hangzhou.aliyuncs.com/download/8/1907b913f78845168529bad59f36a43f_s1/1907b913f78845168529bad59f36a43f_s1_result.png\", \"faceFeaturePath\": \"https://dwg-aigc-paas-test.oss-cn-hangzhou.aliyuncs.com/download/8/1907b913f78845168529bad59f36a43f_s1/1907b913f78845168529bad59f36a43f_s1_face_feature.zip\"}",
"extendParam": "{\"faceFeatureId\": \"1907b913f78845168529bad59f36a43f_s1\"}",
"startTime": "2023-06-06 02:32:13",
"endTime": "2023-06-06 20:17:19",
"status": 9,
"message": "{\"errorMsg\": \"Algorithm heart beat is overtime!!!\"}",
"algoType": 12,
"algoId": "1907b913f78845168529bad59f36a43f_s1",
"algoSubType1": "4K",
"algoSubType2": null,
"algoSubType3": null,
"submitTime": "2023-06-05 20:41:43",
"ownerPhone": "18311096857",
"owner": 8,
"queueInfo": null,
"taskInfo": "{\"create2DAvatarModel\": {\"videoUrl\": \"https://ailab-storage-eus.oss-us-west-1.aliyuncs.com/online_videos/Claire_3_talk.mp4?OSSAccessKeyId=LTAI5tE2Hq2BAqr8EBzxmSrR&Expires=1689391554&Signature=pMSBmAlawZ7h2sxjUO8Dk%2B1dHRg%3D\", \"accountId\": 8, \"assetScale\": 1.0, \"existTaskId\": 0, \"firstCreate\": true, \"materialName\": \"Claire_3_talk.mp4_sensetime-segment_type_绿幕分割\", \"segmentStyle\": 2, \"segmentGreenQuality\": 1}}"
},
{
"id": 9161,
"materialId": 8317,
"materialName": "Eddie_3_talk_trim_sensetime_0_绿幕分割",
"productParam": null,
"extendParam": null,
"startTime": null,
"endTime": null,
"status": 1,
"message": "{}",
"algoType": 18,
"algoId": "1667070933254279169",
"algoSubType1": "4K",
"algoSubType2": null,
"algoSubType3": null,
"submitTime": "2023-06-09 15:28:48",
"ownerPhone": "18311096857",
"owner": 8,
"queueInfo": "8/9",
"taskInfo": "{\"rebuild2DAvatarModelVideo\": {\"assetEnd\": 120.0, \"modelUrl\": \"https://dwg-aigc-paas-test.oss-cn-hangzhou.aliyuncs.com/download/8/ba80636d8a77423083af66174375a130_s1/ba80636d8a77423083af66174375a130_s1_result.zip\", \"videoUrl\": \"http://dwg-aigc-paas.oss-cn-hangzhou.aliyuncs.com/wanxing_0606/Eddie_3_talk_trim.mp4.mp4\", \"accountId\": 8, \"assetScale\": 1.0, \"assetStart\": 60.0, \"existTaskId\": 0, \"firstCreate\": true, \"materialName\": \"Eddie_3_talk_trim_sensetime_0_绿幕分割\", \"segmentStyle\": 1, \"segmentGreenQuality\": 0}}"
}
]
}
}
# 取消任务
# 接口描述
支持用户对于进行中的任务进行取消任务的操作,取消成功后任务状态将置为已取消。
# 请求地址
GET
/api/2dvh/v1/task/cancel
# 请求头
Content-Type:
application/json
# 请求参数
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
id | Long | True | 任务id |
# 请求样例
http://xxx/api/2dvh/v1/task/cancel?id=1
# 响应元素
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
code | Integer | True | 0 - 成功, 其他 - 异常 |
message | String | True | 异常详细信息 |
data | Object | False | 值为空 |
# 响应样例
{
"code": 0,
"message": "success",
"data": null
}
# 删除任务
# 接口描述
支持用户对于非进行中的任务进行删除任务的操作,删除后任务信息将不再保存。
# 请求地址
DELETE
/api/2dvh/v1/task/del
# 请求头
Content-Type:
application/json
# 请求参数
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
id | Long | True | 任务id |
# 请求样例
http://xxx/api/2dvh/v1/task/del/id
# 响应元素
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
code | Integer | True | 0 - 成功, 其他 - 异常 |
message | String | True | 异常详细信息 |
data | Object | False | 值为空 |
# 响应样例
{
"code": 0,
"message": "success",
"data": null
}
# 重启任务
# 接口描述
支持用户对于异常的的任务进行重启任务的操作,重启后任务ID保持不变。
# 请求地址
GET
/api/2dvh/v1/task/restart
# 请求头
Content-Type:
application/json
# 请求参数
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
id | Long | True | task id |
# 请求样例
http://xxx/api/2dvh/v1/task/restart?id=1
# 响应元素
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
code | Integer | True | 0 - 成功, 其他 - 异常 |
message | String | True | 异常详细信息 |
data | Object | False | 任务id |
# 响应样例
{
"code": 0,
"message": "success",
"data": 2
}
# 查询任务各阶段耗时信息
# 接口描述
查询任务各阶段耗时信息,当前仅支持视频合成。
# 请求地址
GET
/api/2dvh/v1/task/phase/cost
# 请求头
Content-Type:
application/json
# 请求参数
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
id | Long | True | 任务id |
# 请求样例
https://xxx/api/2dvh/v1/task/phase/cost?id=1
# 响应元素
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
code | Integer | True | 0 - 成功, 其他 - 异常 |
message | String | True | 异常详细信息 |
data | Array | False | 值为空 |
- phase | String | True | 算法阶段:asset_download:素材下载 parse_json:json解析时间 st_mobile_change_package:加载数字人资源 preprocess:前处理时间,准备各类资源 main_process:音视频处理 postprocess:ffmpeg视频后处理 result_upload:结果上传 |
- startTime | String | True | 阶段开始时间(yyyy-MM-dd HH:mm:ss) |
- endTime | String | True | 阶段完成时间(yyyy-MM-dd HH:mm:ss) |
- costTime | String | True | 耗时(毫秒) |
- callCount | Integer | False | 阶段重复次数,该值为空表示阶段无重复 |
# 响应样例
{
"code": 0,
"message": "success",
"data": [
{
"id": 291340,
"phase": "asset_download",
"startTime": "2023-11-01 16:41:17",
"endTime": "2023-11-01 16:41:17",
"costTime": 0
},
{
"id": 291340,
"phase": "parse_json",
"startTime": "2023-11-01 16:41:17",
"endTime": "2023-11-01 16:41:18",
"costTime": 124
},
{
"id": 291340,
"phase": "st_mobile_change_package",
"startTime": "2023-11-01 16:41:18",
"endTime": "2023-11-01 16:41:20",
"costTime": 2242
},
{
"id": 291340,
"phase": "preprocess",
"startTime": "2023-11-01 16:41:20",
"endTime": "2023-11-01 16:41:21",
"costTime": 1238
},
{
"id": 291340,
"phase": "main_process",
"startTime": "2023-11-01 16:41:21",
"endTime": "2023-11-01 16:41:25",
"costTime": 3692
},
{
"id": 291340,
"phase": "result_upload",
"startTime": "2023-11-01 16:41:25",
"endTime": "2023-11-01 16:41:25",
"costTime": 189
},
{
"id": 291340,
"phase": "postprocess",
"startTime": "2023-11-01 16:41:25",
"endTime": "2023-11-01 16:41:25",
"costTime": 457
}
]
}
# 任务完成回调参数
使用API时,系统将通过填写的接口回调地址,返回任务状态等信息,若需要任务回调功能,则需联系管理员在创建账户时提供接口回调地址。 如果用户配置了AuthKey将返回鉴权信息timestamp和signature,具体参考<HTTP回调事件通知>。
提供的接口实现中HTTP Method为POST,Content-Type应为application/json
。
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
taskId | Integer | True | 任务 id |
materialId | Integer | True | 素材 id |
materialName | String | True | 素材名称 |
algoType | Integer | True | 任务类型(11:TTS音色模型生成,12:人物形象模型生成,14:视频合成,20: 视频人物换脸,18:人物形象模型更新,25:音色转换 |
algoSubType1 | String | True | 人物模型:模型规格:2K/4K,视频合成:使用人物模型规格:2K/4K |
algoSubType2 | String | False | 视频合成:结果物格式:webm/mp4 |
algoSubType3 | String | False | 视频合成:结果帧率 |
status | Integer | True | 状态 3:已取消,5:已完成,9:异常 |
taskResult | String | False | 报错信息 |
以上即为平台可以提供的全部算法能力。