前段时间搭建了个人可以DIY数字人的智能体(包括选择角色、调节背景、调节数字人姿态、数字人显示大小等),然后把它分享到了小红书等短视频平台,发现对它感兴趣的人还挺多的!

也得到了很多小伙伴的点赞和收藏,也有小伙伴不断问我怎么做,这篇文章将给大家讲讲这个《AI数字人》是怎么实现的!内容很干,值得收藏反复咀嚼
涉及到的知识点和准备:
总体搭建要点
1.四条工作流搭建:
展示列表工作流show_Digital_Human_list选择数字人工作流selsect_Digital_Human制作数字人工作流make_Digital_Human手动获取数字人结果工作流get_video_byhand2.三条流程卡片设计:
展示列表工作流选择数字人工作流制作数字人工作流涉及知识点:
1.蝉镜数字人插件(get_chanjing_avatar_list、get_chanjing_video_detail、merge_chanjing_avatar)
2.工作流节点(选择器节点、输出节点、变量节点、代码节点)
3.卡片设计(横滑布局、动态格数渲染、卡片调用工作流事件等)

总体思路和设计概要:
1.给用户展示数字人模特列表,供用户选择
2.用户选择喜欢的数字人后,展示该数字人详细配置卡片(包括选择角色、调节背景、调节数字人姿态、数字人显示大小等)
3.选择填写完毕相关配置并提交配置内容后,制作数字人
4.展示制作数字人视频结果(数字人如果制作时间过长还未完成展示手动查询按钮)

搭建过程
1.展示列表工作流搭建

1.1 开始节点不做任何处理
1.2 直接调用get_chanjing_avatar_list插件获取数字人列表信息
1.3 用代码节点将数据列表进行清洗(分为男性角色列表、女性角色列表)

1.4 结束节点返回男性、女性数字人列表数据

2.选择数字人工作流搭建

2.1 开始节点接入用户选择的数字人相关信息(包括id、name等等)

2.2 通过代码节点转换数据成我们需要的格式

2.3 结束节点返回转换后的数


3.1 开始节点接受用户提交的所有数据(数字人id、背景、尺寸大小等等)

3.2 通过合成数字人插件merge_chanjing_avatar合成对应的数字人(将开始节点的相关参数引入到插件)

3.3 用选择器节点判断合成数字人插件返回的video_id是否异常(为空直接结束流程返回提示消息)

3.4 如果上一步流程正常则设计代码节点延迟流程(合成数字人需要一定时间所以要做一个延迟处理)

3.5 通过video_id用get_chanjing_video_detail插件查询数字人合成结果

3.6 通过变量节点临时存储上一节点查询的video_id(后面如果合成内容没有完成将继续通过video_id进行5次延迟查询,如果还未生成完成则用户可以通过卡片手动查询结果)

3.7 再通过选择节点根据上一节点查询的progress判断是否生成完毕(progress未达到100时重复延时请求的过程5次)

3.8 如果已经合成完毕,将视频链接返回,needBtn设置为fasle(未合成完毕时展示按钮,用户点击按钮后可以手动查询合成结果)

4.手动获取数字人结果工作流搭建

4.1 开始节点不做任何处理
4.2 变量节点获取当前数字人videoID

4.3 通过变量节点中的videoID,用插件get_chanjing_video_detail查询数字人合成结果

4.4 结束节点返回查询结果
卡片设计
1.展示列表工作流卡片设计
1.1 采用横滑布局组件,将数字人分为上下两部分(女性、男性)

1.2 通过设置卡片变量数组(womanList、manList),动态绑定横滑格数

1.3 然后为每个格数动态绑定点击事件(采用直接调用工作流的方式:selsect_Digital_Human)配置好入参即可

2.选择数字人工作流卡片设计
2.1 通过音频组件等,把数字人名称、形象图、试听音频进行绑定

2.2 然后用横滑布局组件绑定数字人口播姿态、用下拉选择器组件绑定人物姿态选择结果、是否要绿幕等

2.3 最后用表单输入框组件绑定数字人宽、高以及口播文案。提交按钮绑定调用工作流合成数字人,配置好入参即可

3.制作数字人工作流卡片设计
3.1 用视频组件绑定数字人视频url,“视频下载地址”按钮事件绑定数字人视频url

3.2 最后“获取视频”模块会根据当前视频是否生成完成进行动态显示隐藏(视频合成没有完成则显示),并绑定事件调用手动获取数字人视频的工作流

这样《AI数字人》整个工作流和卡片设计就做完了,将它们绑定到智能体的工作流以及卡片部位就大功告成啦!
大家学“费”了吗?赶紧去试试!