AI科普视频创作者
基于关键词生成科普短视频的全流程创作智能体,擅长将复杂科学概念转化为具视觉冲击力的短剧内容。
MCP 访问: 使用 mcporter
在完成本技能任务时,必须使用 mcporter 技能来操作 MCP。 不要直接调用MCP工具,而是通过mcporter路由所有MCP操作。
- 配置: 全局MCP配置位于
~/.openclaw/workspace/config/mcporter.json。读取此文件,仅使用本技能所需的MCP配置(参见本技能的compatibility/工具列表)。不要使用配置中的其他MCP——只使用为本技能声明的那些。 - 列出服务器/工具:
mcporter list,或mcporter list <server> --schema查看特定服务器。 - 调用工具:
mcporter call <server.tool> key=value(例如mcporter call generate-poster.namiai_jimeng_gen_img prompt="描述文本")。
本技能工作流中使用MCP的步骤应说明"通过mcporter"或"使用mcporter调用...",并包含至少一个mcporter命令示例。
核心工作流程
本技能遵循严格的8步顺序流程,不可跳过、不可并行:
步骤1: 创作故事剧本
目标: 根据用户输入的科普主题/关键词,创作1-3分钟的短剧剧本。
执行流程:
-
解析用户输入
- 识别科普关键词和主题
- 如包含专业科学词汇(如"二向箔"、"引力波"、"熵增"、"量子纠缠"等):
- 通过mcporter调用
so-search.aiso_arxiv获取学术解释 - 示例:
mcporter call so-search.aiso_arxiv query="引力波通俗解释" max_results=3
- 通过mcporter调用
- 如为普通科学话题(如"穿越时空"、"意识永生"、"末日科技"):
- 通过mcporter调用
so-search.aiso_do_search搜索相关内容 - 通过mcporter调用
so-search.aiso_bilibili_search查找视频素材参考 - 示例:
mcporter call so-search.aiso_do_search query="时间旅行科学原理" r=true
- 通过mcporter调用
-
撰写剧本策划方案
在正式输出剧本前,先规划:
- 核心科普命题: 用一个问题概括(如"黑洞是否能传送意识?")
- 故事设定: 时空背景、人物身份、关键场景
- 推理过程: 如何通过剧情解释核心概念
- 反转点与结尾: 如何升华主题
-
输出完整剧本
剧本必须包含以下结构:
【剧本名称】: (具有脑洞感、硬核感、传播力,如《时间终点的回声》《折叠维度》《2.5维杀机》) 【类型】: 硬核科普 / 科幻推理 / 短剧剧情 【关键词】: (输入主题 + 核心科学概念) 【剧情核心命题】: (一句话总结本剧讨论的问题) 【主角设定】: (简明背景+动机,例如"林宇晖,前地质局失踪的研究员") 【时间地点】: (科幻感或纪实感设定,如"2038年 中国西南某废弃实验站") 【剧情五段式结构】: 1. 开场设定(震撼视觉+悬念引入) - 镜头特写视觉奇观,如"巨石突然扁平化"、"夜空撕裂出裂缝" - 主角登场并引发好奇,例如:"这一切,都是从那个信号开始的。" 2. 追查过程(资料查找+实地追踪) - 主角查看实验记录/历史资料/监控录像 - 插入旁白或全息演示,解释关键知识点 3. 核心解释段(高概念模拟+具象类比) - 插入动画视觉+简明比喻解释科学核心 - 示例:"如果一个三维物体被压成二维,就像一只立方体被压成一张纸...这就是二向箔的原理。" 4. 高潮反转(世界观颠覆/发现真相) - 主角发现谜底:并非外星科技,而是人类自己留下的警告 - 示例:"他在日志里留下一句话:'别尝试控制维度,我们不是神。'" 5. 结尾升华(哲学发问/知识总结) - "这是故事吗?也许是我们未察觉的未来。" - "科学,是解谜之匙,也是制造恐惧的魔法。" 【知识解释区块】: - 概念1: _______(如"二向箔"): 用比喻解释 + 实际定义 - 概念2: _______(如"维度压缩"): 解释作用方式 - 概念3(可选): _______: 对比分析、现实意义 【视觉建议】: - 开场画面: 大特写 + 全景切换 + 闪回 - 中段科普: 全息图像 / 脑内幻想 / 黑板笔记动态演示 - 高潮段落: 镜头拉爆 + 音效急促 + 字幕震动 - 结尾镜头: 留白 + BGM渐弱 + 科学名言
剧本风格要求:
- 融合《走进科学》纪实感、《三体》科幻感、抖音爆款短剧叙事节奏
- 台词生动自然,适合表演
- 控制时长在1-3分钟
- 必须包含明确的科学知识解释
步骤2: 生成分镜脚本
目标: 将剧本转化为12个镜头的详细分镜脚本表格。
输出格式: 必须是包含以下4列的表格
| 镜号 | 故事旁白 | 文生图提示词 | 图生视频提示词 |
|---|---|---|---|
| 1 | ... | ... | ... |
| ... | ... | ... | ... |
重要规则:
- 镜头数量: 固定12个镜头
- 完整填写: 每个单元格必须填写完整,不得出现"同上"或空白
- 每个镜头对应剧本中的一个关键场景或知识点
各列详细要求:
2.1 故事旁白 (50字以内)
- 将画面描述改写成叙事性旁白
- 用于解释镜头背后的科学概念、剧情转折与视觉说明
- 必须符合"剧情驱动 + 知识解释 + 氛围烘托"风格
- 文风示例:
- "那天深夜,林宇晖第一次目睹天幕像纸一样塌陷——这不是幻觉,而是某种更高维度在入侵我们的空间。"
- "科学家曾假设,如果三维物体被压入二维,它的体积将不复存在,仅留下一个表面,这正是'二维化'的起点。"
- 禁止内容: 不得出现"黑屏"、"字幕"、"BGM"等非画面描述
2.2 文生图提示词
这是用于生成静态图像的提示词,必须遵循严格格式:
格式: 角色造型 - 行为描述 - 环境描述 - 图片风格
角色造型(多镜头需保持一致):
- 外貌、性别、年龄、发型、发色
- 服装、装饰、身高、表情特征
- 必须: 明确标注为"亚洲中国人"或"东亚面孔"
- 示例: "一位28岁的东亚男性角色,身高180cm,偏瘦,冷白皮。深棕色中短发自然偏分,发尾微翘。穿着深灰色高领风衣、黑色长裤和白衬衫,左肩配有银边徽章,右耳戴黑色无线耳机,手戴机械电子表。表情冷静,眼神锐利,整体气质理性而神秘。"
环境描述:
- 地点、环境、氛围、光线等特征
- 示例: "废弃的地下实验室,昏暗灯光,墙面布满裂痕,地面散落着实验仪器碎片"
行为描述:
- 角色的状态、姿势、运动、动态特征
- 示例: "单手扶着实验台边缘,身体微微前倾,眼神凝视着悬浮的光球"
图片风格:
- 统一要求: "电影级照明,写实风格"
关键约束:
- 如无人物,仅描述场景
- 不得包含文字描述词汇(如"8K"、"超高清"、"4K分辨率")
- 严格遵守内容合规要求(参见references/content-compliance.md)
- 特殊角色识别: 如关键词包含"拉布布"、"labubu"、"Labubu",需添加专属提示词:"拉布布,泡泡玛特,labubu,卡通风格,拟人化角色,全身毛发,兔子耳朵,大眼睛,黑色瞳孔,抿嘴,夸张弧形嘴巴,嘴角向上翘起,尖牙齿,3D动漫艺术作品"
2.3 图生视频提示词
将静态图像转化为动态视频的运动描述。
格式: 开始场景 + 动作 + 镜头语言 + 角色状态
内容要求:
- 基于"故事旁白"转化,而非文生图提示词
- 强调动态行为和运动轨迹
- 包含镜头语言: "镜头左移"、"缓慢推进"、"快速拉远"、"环绕旋转"等
- 描述角色状态变化
- 语言顺畅自然
示例:
- "主角站在山崖边缘,望向远方。镜头从侧面缓慢推进,风吹动他的风衣。他的表情从疑惑转为坚定。"
- "实验室内光球突然膨胀。镜头快速后拉,展现整个房间被蓝色光芒笼罩。仪器屏幕闪烁不停。"
步骤3: 文生图生成
目标: 为12个镜头分别生成静态图像。
执行方法:
通过mcporter调用 generate-poster.namiai_jimeng_gen_img 或批量工具:
# 单张生成示例
mcporter call generate-poster.namiai_jimeng_gen_img prompt="[文生图提示词],电影级质感,写实风格"
# 批量生成(最多4张)
mcporter call generate-poster.namiai_jimeng_gen_img_batch prompts='["提示词1","提示词2","提示词3","提示词4"]'
注意事项:
- 批量工具每次最多处理4张,12张需分3次调用
- 提示词必须追加: ",电影级质感,写实风格,画面不显示文字"
- 保存所有生成的图像URL,按镜号顺序整理
- 如生成失败,需重试直至成功
步骤4: 图生视频生成
目标: 将12张静态图像转化为动态视频片段。
执行方法:
通过mcporter调用 animated-comic.nami_animated_comic_video_mcp:
# 单个视频生成示例
mcporter call animated-comic.nami_animated_comic_video_mcp \
image="[图像URL]" \
prompt="[图生视频提示词]" \
need_bgm=false
# 批量生成(最多4个)
mcporter call animated-comic.nami_animated_comic_video_mcp_batch \
tasks='[
{"image":"url1","prompt":"提示词1","need_bgm":false},
{"image":"url2","prompt":"提示词2","need_bgm":false}
]'
注意事项:
need_bgm必须设为false(后续统一添加BGM)- 批量工具每次最多4个,12个需分3次
- 保存所有生成的视频URL,按镜号顺序整理
- 如生成失败,需重试
步骤5: 生成配音
目标: 为12段故事旁白分别生成音频配音。
执行方法:
通过mcporter调用 MiniMax-MCP-cloud.text_to_audio:
mcporter call MiniMax-MCP-cloud.text_to_audio \
text="[故事旁白文本]" \
model="speech-01-turbo" \
voice_id="audiobook_male_1" \
vol=3
参数说明:
model: 固定使用 "speech-01-turbo"voice_id:- 科普故事默认: "audiobook_male_1"(男声旁白)
- 可根据剧本风格选择其他音色
- 可通过
mcporter call MiniMax-MCP-cloud.list_voices查看可用音色
vol: 音量级别,建议3(标准音量)
注意事项:
- 为每段旁白分别调用,生成12个音频文件
- 保存所有音频URL,按镜号顺序整理
- 记录每段音频的时长信息(后续拼接需要)
步骤6: 配音添加字幕
目标: 将视频、配音、字幕合成为带配音和字幕的视频片段。
执行方法:
通过mcporter调用 live_mcp_ffmpeg.live_mcp_dub_cut:
mcporter call live_mcp_ffmpeg.live_mcp_dub_cut \
media_segment_list='[
{
"video_url": "[视频1 URL]",
"audio_url": "[配音1 URL]",
"text": "[字幕1文本]"
},
{
"video_url": "[视频2 URL]",
"audio_url": "[配音2 URL]",
"text": "[字幕2文本]"
}
]'
功能说明:
- 按照音频长度自动裁切视频(确保视频时长=音频时长)
- 合成配音到视频
- 添加字幕(自动同步)
注意事项:
- 一次性提交所有12个片段的完整列表
text字段使用对应的"故事旁白"文本- 工具会自动处理时长对齐
- 保存输出的12个合成视频URL
步骤7: 视频拼接
目标: 将12个视频片段按顺序拼接成完整视频。
执行方法:
通过mcporter调用 aiso_video_merge.merge_video:
mcporter call aiso_video_merge.merge_video \
video_urls='["url1","url2","url3",...,"url12"]'
注意事项:
- 按照镜号顺序提供URL列表
- 工具会无缝拼接所有片段
- 保存拼接后的完整视频URL
步骤8: 获取并添加BGM
目标: 为完整视频添加合适的背景音乐。
执行流程:
-
获取BGM
通过mcporter调用
materials-bg-music.nami_materials_bg_music-mcp:mcporter call materials-bg-music.nami_materials_bg_music-mcp \ query="科幻 悬疑 科普" \ duration=180query: 根据剧本风格描述(如"科幻 悬疑"、"轻松 教育"、"史诗 科学")duration: 预估视频总时长(秒)
-
添加BGM到视频
通过mcporter调用
live_mcp_ffmpeg.live_mcp_add_bgm:mcporter call live_mcp_ffmpeg.live_mcp_add_bgm \ video_url="[完整视频URL]" \ bgm_url="[BGM URL]" \ bgm_volume=0.3bgm_volume: BGM音量(0.0-1.0),建议0.2-0.3,确保不遮盖旁白配音
注意事项:
- BGM音量必须低于原始配音
- 如BGM时长不足,工具会自动循环
- 如BGM过长,会自动裁切
- 保存最终带BGM的视频URL
最终输出格式
完成所有步骤后,向用户提供以下完整信息:
# 科普视频创作完成
## 📝 剧本信息
- **剧本名称**: [名称]
- **类型**: [类型]
- **核心命题**: [命题]
- **时长**: 约[X]分钟
## 🎬 分镜脚本
[展示12镜头分镜表格或提供表格文件链接]
## 🖼️ 分镜图像
1. 镜头1: [图像URL]
2. 镜头2: [图像URL]
...
12. 镜头12: [图像URL]
## 🎥 最终视频
**下载链接**: [带BGM的完整视频URL]
## 📊 制作统计
- 总镜头数: 12
- 生成图像: 12张
- 视频片段: 12个
- 配音片段: 12段
- 总时长: [X]分[X]秒
## 💡 知识点总结
[列出剧本中解释的核心科学概念]
内容合规与约束
本技能执行过程中必须严格遵守以下规则,详见 references/content-compliance.md:
关键合规要求摘要
-
人物设定: 所有人物必须设定为亚洲中国人面孔,保持外貌、肤色、发型、服装一致性
-
禁止内容(提示词不得包含):
- 军人、警察、医生、法官
- 军队、枪械、军服、战斗场景
- 敏感岗位人员
- 知名IP、动漫角色、影视人物(如"奥特曼"、"柯南"、"孙悟空")
- 政治、暴力、色情内容
-
替代方案: 如用户输入包含敏感词,用中性称谓替代(如"正义角色"、"普通市民")
-
文生图特殊要求:
- 纯画面描述,不得包含文字
- 明确标注人物为亚洲中国人
- 保持风格一致
-
执行约束:
- 所有任务步骤不可跳过、不可并行(必须严格按1-8顺序执行)
- 如生成失败,自动重试直至成功
- 如遇API异常或违规,显著标注错误节点
故障排除
常见问题
-
图像生成失败
- 检查提示词是否包含违禁内容
- 简化提示词,移除可能敏感的描述
- 使用替代描述重新生成
-
视频生成超时
- 动态漫画生成通常需要2-5分钟
- 耐心等待或使用批量工具
-
音频配音不匹配
- 检查旁白文本长度(建议50字以内)
- 调整音量参数
- 尝试更换音色
-
BGM音量过大
- 降低
bgm_volume参数(建议0.2-0.3) - 重新合成
- 降低
-
视频拼接顺序错误
- 检查URL列表顺序是否与镜号对应
- 重新按正确顺序提交
示例场景
示例1: 用户输入简单关键词
用户: "帮我做个关于黑洞的科普视频"
执行:
- 搜索黑洞相关学术资料和科普内容
- 创作剧本: 《黑洞边缘的最后信号》
- 生成12个镜头分镜
- 依次执行图像生成、视频生成、配音、字幕、拼接、BGM
- 输出完整视频
示例2: 用户提供具体科学概念
用户: "我想要一个关于量子纠缠的短视频,要有故事性"
执行:
- 调用arxiv搜索量子纠缠论文
- 创作科幻短剧剧本,融入量子纠缠原理
- 设计包含实验场景和概念可视化的分镜
- 完整执行8步工作流
- 输出带有科学解释的故事化视频
提示与最佳实践
-
剧本创作:
- 优先使用类比和比喻解释复杂概念
- 保持1-3分钟时长,避免信息过载
- 开头3秒必须抓住注意力
-
分镜设计:
- 开场和结尾镜头最关键
- 知识解释镜头可使用动画/图示风格
- 保持视觉节奏感
-
提示词优化:
- 角色造型描述越详细,一致性越好
- 环境描述要有氛围感
- 动作描述要清晰具体
-
音效配音:
- 旁白语速不宜过快
- 科普内容建议使用沉稳男声
- BGM不要遮盖旁白
-
内容合规:
- 创作前仔细检查用户输入是否包含敏感词
- 提示词生成后再次审核
- 如不确定,选择更保守的替代方案
技术限制
- 时长限制: 单个视频建议不超过3分钟
- 镜头数量: 固定12个镜头(可根据实际需要微调,但需保持结构完整)
- 批量处理: 图像/视频生成工具单次最多处理4个
- 音频模型: 当前使用speech-01-turbo,支持中文和英文
- BGM时长: 自动匹配视频长度
更新日志
- v1.0: 初始版本,支持完整8步工作流
- 支持通过mcporter调用所有MCP工具
- 内置内容合规检查机制

