Digital Human Video Generator (图片数字人视频生成器)
将用户上传的人物图片与音频或文本结合,生成逼真的口型同步数字人视频。支持自动识别人物属性、智能分段处理长文本、文本转语音、以及多段视频自动拼接。
MCP Access: Use mcporter
完成此技能任务时必须使用 mcporter 技能操作 MCP。 不要直接调用 MCP 工具,所有 MCP 操作都通过 mcporter 路由。
- 配置文件: 全局 MCP 配置位于
~/.openclaw/workspace/config/mcporter.json。读取此文件并仅使用本技能所需的 MCP 配置(参见本技能的 compatibility/工具列表)。不要使用配置中的其他 MCP——只使用为本技能声明的那些。 - 列出服务器/工具:
mcporter list,或使用mcporter list <server> --schema查看特定服务器。 - 调用工具:
mcporter call <server.tool> key=value(例如mcporter call MiniMax-MCP-cloud.text_to_audio text="你好" voice_id="..." vol=3)。 - 本技能的 compatibility 列表定义了可使用的 MCP 服务器/工具;仅通过 mcporter 调用这些工具,使用全局配置文件中的配置。
工作流程
任务 1: 任务规划
根据用户输入内容确定执行路径:
-
情况 A: 图片 + 音频文件
- 直接执行任务 5(图片对口型)
-
情况 B: 图片 + 文本
- 任务 2 → 任务 3 → 任务 4 → 任务 5 → (如有多段)任务 6
-
情况 C: 缺少图片
- 提示"请上传数字人形象图片"并终止
-
情况 D: 音频超过 30 秒
- 提示"请上传小于 30 秒的音频文件"并终止
输出: 在执行前以文本列表形式清晰展示完整任务流程。
任务 2: 图片内容识别
目的: 识别人物性别和年龄,用于后续语音音色选择。
执行: 通过 mcporter 调用 zhiyue-media.zhiyue_media_extract 工具分析图片。
mcporter call zhiyue-media.zhiyue_media_extract image_url="<用户图片URL>"
输出规范:
- 识别主体人物的性别和年龄组合
- 格式示例: "年轻男性"、"老年女性"、"儿童男性"、"年轻女性"
- 如果未检测到人类: 输出"未检测到照片中的人物形象,请更换照片再试一次"并终止任务
注意: 模型支持写实人物、动漫、卡通、3D 等风格化形象。
任务 3: 文本分段处理
目的: 将长文本拆分为不超过 60 字的短段,确保每段可在 30 秒内转为音频。
规则:
- 每段严格不超过 60 个中文字
- 必须在标点符号处拆分,保持内容完整性
- 按原文顺序排列
输出: 使用表格展示分段结果(单段则直接展示文本):
| 段落编号 | 文本内容 | 字数 |
|---|---|---|
| 1 | xxx | xx |
| 2 | xxx | xx |
任务 4: 文本转语音
目的: 将分段文本转换为音频,音色匹配人物属性。
执行: 通过 mcporter 调用 MiniMax-MCP-cloud.text_to_audio,对每个文本段落分别生成音频。
mcporter call MiniMax-MCP-cloud.text_to_audio text="<段落文本>" voice_id="<音色ID>" vol=3
音色映射表 (根据任务 2 的识别结果选择):
| 人物属性 | voice_id |
|---|---|
| 儿童男性 | Chinese (Mandarin)_Cute_Spirit |
| 儿童女性 | Chinese (Mandarin)_Crisp_Girl |
| 年轻男性 | Chinese (Mandarin)_Male_Announcer |
| 年轻女性 | Chinese (Mandarin)_Gentle_Senior |
| 老年男性 | Chinese (Mandarin)_Humorous_Elder |
| 老年女性 | Chinese (Mandarin)_Kind-hearted_Elder |
参数说明:
vol: 固定设置为3- 如检测属性不在预设内或用户指定其他音色,自行判断选择合适音色
输出: 按分段顺序给出所有音频链接列表。
跳过条件: 用户已上传音频文件时不执行此任务。
任务 5: 图片对口型
目的: 将图片与音频结合生成口型同步视频。
执行: 通过 mcporter 调用 nami-ai-digital-human.namiai_omni_human_generate。
mcporter call nami-ai-digital-human.namiai_omni_human_generate image_url="<图片URL>" audio_url="<音频URL>"
输入说明:
- 图片: 使用用户上传的图片文件
- 支持写实、动漫、卡通、3D 等风格
- 如未检测到人物,输出错误提示并终止
- 音频:
- 优先使用用户上传的音频文件
- 否则使用任务 4 生成的音频链接
- 如任务 4 生成多个音频,按顺序逐个处理
处理逻辑:
- 如果有 N 段音频,需调用 N 次此工具
- 每次调用使用相同图片 + 对应段落的音频
- 记录所有生成的视频链接
输出: 展示所有生成的视频链接(按段落顺序)。
任务 6: 视频拼接
目的: 将多段视频合并为一个连续播放的完整视频。
执行: 通过 mcporter 调用 aiso_video_merge.merge_video。
mcporter call aiso_video_merge.merge_video video_urls='["<视频1>","<视频2>","<视频3>"]'
输入: 任务 5 生成的所有视频链接(按顺序)。
跳过条件: 任务 5 仅生成一段视频时不执行此任务。
输出: 拼接后的完整视频链接。
最终输出格式
请按以下结构组织输出:
1. 任务执行概要
- 列出实际执行的任务序列
- 说明关键决策点(如为何跳过某任务)
2. 图片识别结果(如执行)
- 人物属性:
<性别+年龄>
3. 文本分段结果(如执行)
(表格或直接文本展示)
4. 音频生成结果(如执行)
- 选用音色:
<voice_id> - 音频链接列表(按段落)
5. 视频生成结果(必需)
- 各段视频链接(按顺序)
6. 最终视频(如拼接)
- 下载链接:
<完整视频URL>
7. 处理说明
- 关键参数配置
- 异常情况说明(如有)
注意事项
-
前置检查:
- 必须有图片输入,否则终止
- 音频文件需小于 30 秒
- 图片中必须有可识别的人物
-
条件跳转:
- 用户上传音频时,跳过任务 3 和任务 4
- 仅一段视频时,跳过任务 6
-
错误处理:
- 图片无人物 → 提示并终止
- 音频过长 → 提示并终止
- 工具调用失败 → 说明原因并建议解决方案
-
资源管理:
- 保留所有中间产物的链接
- 按执行顺序记录操作日志
-
MCP 调用强制要求:
- 所有 MCP 工具必须通过 mcporter 调用
- 使用全局配置文件
~/.openclaw/workspace/config/mcporter.json - 仅使用本技能 compatibility 中声明的 MCP 服务器
示例场景
示例 1: 图片 + 短文本
输入:
- 图片: 一位年轻女性的照片
- 文本: "大家好,我是AI数字人小美,很高兴为您服务。"
执行流程:
- 识别图片 → "年轻女性"
- 文本分段 → 仅一段(不超过60字)
- 文本转语音 → 使用 "Chinese (Mandarin)_Gentle_Senior"
- 图片对口型 → 生成一段视频
- 跳过拼接(仅一段)
输出: 一个视频链接
示例 2: 图片 + 长文本
输入:
- 图片: 中年男性卡通形象
- 文本: 120 字的产品介绍
执行流程:
- 识别图片 → "年轻男性"(卡通风格)
- 文本分段 → 拆分为 2-3 段
- 文本转语音 → 生成 2-3 段音频
- 图片对口型 → 生成 2-3 段视频
- 视频拼接 → 合并为完整视频
输出: 拼接后的完整视频链接
示例 3: 图片 + 音频文件
输入:
- 图片: 儿童照片
- 音频: 25 秒的音频文件
执行流程:
- 跳过识别、分段、转语音
- 直接图片对口型
- 跳过拼接(仅一段)
输出: 一个视频链接
成功标准
- ✅ 正确识别人物属性
- ✅ 文本分段合理(每段 ≤60 字,标点处拆分)
- ✅ 音色匹配人物属性
- ✅ 视频口型与音频同步
- ✅ 多段视频顺序正确拼接
- ✅ 所有链接可访问
开始处理用户请求吧!

