# 视频合成
2D数字人视频合成服务为您提供输入选择2D数字人形象模型,添加文本或音频合成为2D虚拟数字人mp4/webm格式的视频,并且通过返回的视频链接下载视频内容。
- 形象配置
- 支持通过参数指定本次视频合成需要使用的2D数字人形象,系统提供若干个默认的2D数字人形象模型,供用户选择。具体可联系运营开通账号后查看。
- 音色配置
- 系统支持两种形式的音色配置
- 上传录音文件,支持在线录音上传或者选择对应的音频文件上传,音频将会经过降噪处理后将原声用于最终合成的视频内容。
- 上传文本+选择音色,支持通过参数指定本次视频合成需要使用的发音人音色,以及声音的语速、音调、音量调节,系统提供若干个默认的TTS个人音色模型,供用户选择,将使用指定的音色朗读对应的文本内容,最终将此音频用于视频合成。
- 系统支持两种形式的音色配置
- 数字人驱动
- 支持数字人表情、口型驱动。
- 视频编码信息
- 编码格式: H264
- 帧率: 25FPS
- 视频格式
- 目前支持MP4/WebM两种视频格式,视频时长由合成视频的时候选择的内容决定。
- 视频分辨率
- 支持创建视频合成任务的时候指定产出视频的分辨率,建议选择范围为:480p、720p、1080p
- 字幕
- 支持根据用户输入的文字或语音内容生成与之相匹配的字幕文件
- 自定义前景/背景/标题文字
- 支持通过URL指定视频背景图,图片格式支持jpg、png两种格式
- 支持通过URL指定视频前景图,图片格式支持jpg、png两种格式
- 支持通过参数指定视频中标题文字内容的字体,字号,以及出现的位置
- 自定义人物美颜效果
- 支持通过参数调节人物美颜效果,包括:美白/磨皮/脸型调整/眼形调整/发际线调整/苹果肌调整/鼻子调整/下巴调整/嘴巴调整/人中调整/缩头/对比度/饱和度/清晰度/锐化程度调整等十余项参数调整功能,具体请参考参数说明 (opens new window),了解使用规则
- 最大存储时间
- 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 | Integer | False | 任务id |
# 响应样例
{
"code": 0,
"message": "success",
"data": 1
}
# json参数说明
名称 | 类型 | 取值示例 | 必填 | 说明 |
---|---|---|---|---|
version | String | "0.0.17" | 是 | 视频合成json配置文件最新版本号 |
video_format | String | "mp4" | 否 | 视频输出格式,取值为MP4、WEBM、MOV,如果没有该字段,默认为MP4。其中,WEBM和MOV格式支持透明通道。 |
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包。在合成视频中,为必传参数。在视频直播场景中,本项无需设置值,使用fileid |
fileId | String | "12345" | 否 | 预热素材上传后的id,在视频直播场景为必传内容 |
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音色模型信息保持一致。随意填写会有错误。不要随意填写。使用qid的时候可以没有这个字段。 |
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 |
use_action | Boolean | false | false | 是否tts文本中支持动作编辑 tts文本中动作定义如下:若想要插入某个动作,则在文本对应位置插入{action index:动作序号}。例如{action index:0}。action和index之间空格分割。其中动作序号可在数字人的结果json中获取。如果用户TTS本身需要输出{action},则使用^{action }来进行转义,不作为动作提取 |
ssml | Boolean | false | 否 | 是否使用ssml,开启后query可以使用USSML,推荐使用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。 |
rotation | Float | 0.0 | 是 | 旋转角度,取值[0.0,360.0],画布坐标系Y轴的反方向为0度,顺时针方向的夹角为旋转角,旋转时以图片中心点为锚点。注:最低版本要求:0.0.14。 |
auto_font_size | Boolean | True | 否 | 不填写,默认为True,字幕根据公式来计算最终显示的font size,与前景文字、标题在同样的font size设置下,显示效果不同;False,字幕采用与前景文字、标题一样的font size规则。 |
sub_to_canvas_width_ratio | Float | 1.0 | 否 | 不填写,默认为1.0。此字段表示字幕所占用画布宽度的比例,取值范围为(0, 2],如果传入参数<=0或者>2,则默认将值重置为1.0。如果单行显示不了,则换行。 |
backgrounds | Object Array | 包含内容如下 | 否 | 背景 |
type | Integer | 0 | 是 | 0:图片,支持jpg、png格式;1:视频,支持mp4格式,帧率要求 25 以上,分辨率暂无要求,不同分辨率的视频按照短边撑满,视频等比例缩放形式处理 |
name | String | "背景" | 是 | 背景名称 |
url | String | "https://xxx/bg.png" | 是 | 背景文件url,如没设置背景图或视频,Webm格式展示黑色背景;Mp4格式展示灰色默认的frame的背景效果。在视频直播场景中,该字段为空,使用fileid字段 |
fileId | String | "12345" | 否 | 预热素材上传后的id,在视频直播场景为必传内容 |
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为默认值,表示随视频一直存在 |
play_offset | Integer | 1 | 否 | 视频直播场景生效,针对视频生效,该背景视频从背景视频本身的开始播放时间,以ms为单位 |
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 |
duration | Integer | -1 | 否 | 持续时间,单位毫秒,-1为默认值,表示随视频一直存在。只要duration 时间到,不论是否循环均会停止/消失 |
start | Integer | 0 | 否 | 开始时间,单位毫秒。0为默认值,表示从视频第0毫秒开始播放背景音乐。 |
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格式。在视频直播场景,该字段为为空,使用fileid字段 |
fileId | String | "12345" | 否 | 预热素材上传后的id,在视频直播场景为必传内容 |
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为单位 |
play_offset | Integer | 1 | 否 | 视频直播场景生效,针对视频生效,该背景视频从背景视频本身的开始播放时间,以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。 |
duration | Integer | -1 | 否 | 持续时间,单位毫秒,-1为默认值,表示随视频一直存在。只要duration 时间到,不论是否循环均会停止/消失 |
start | Integer | 0 | 否 | 开始时间,单位毫秒。0为默认值,表示从视频第0毫秒开始播放前景文字。 |
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": "队列等待中"
}
]
}
以上即为平台可以提供的全部视频合成能力。