mcpField
L
lanshu-create-ai-presenter-video

lanshu-create-ai-presenter-video

github.com/cclank创意与媒体2.8k41 次安装2 周前更新
代码仓库

关于 lanshu-create-ai-presenter-video

面向视频创作者的 AI 主播视频制作技能,从主题或脚本与授权图片出发,组织配音、画面生成、剪辑和交付检查。它通过状态记录和机器及视觉质检,要求成品通过验证后才标记完成。

主要功能

  1. 01从主题或脚本启动制作
  2. 02将旁白锁定为时间轴基准
  3. 03记录生成任务与制作状态
  4. 04检查画面、音频和字幕
  5. 05验证主视频与分享版本

适用场景

  1. 01制作带 AI 主播的讲解视频
  2. 02根据锁定旁白规划分段生成
  3. 03恢复未完成的视频制作任务
  4. 04交付前检查成片与文件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/cclank/lanshu-create-ai-presenter-video --skill lanshu-create-ai-presenter-video

安装后在 Claude Code 中输入/lanshu-create-ai-presenter-video确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.gitignore
LICENSE
README.md
README.zh-CN.md
.github/workflows/
validate.yml
agents/
openai.yaml
assets/
job.template.json
references/
generation.md
qa-recovery.md
editing.md
scripts/
check_state.py
finalize_delivery.sh
init_job.py
preflight.py
plan_segments.py
tests/
smoke.sh

详细介绍

Lanshu 创建 AI Presenter 视频

使用最少的输入,制作一段经验证的 Presenter 主导视频。最终旁白是 Presenter 动作、字幕、图形、剪辑和交付时长的主时钟。

必须交付的成果

  • 从一个主题或脚本,以及一张包含一位清晰成年 Presenter 的授权图片开始。
  • 交付完整解码的母版视频、较小的分享副本、字幕、制作记录,以及彼此独立的机器和视觉 QA 记录。
  • 确保工作流适用于不同的服务提供商、模型、画面比例、语言和时长。

操作规则

  • 在执行相关远程操作前,确认图片版权、成年身份、远程上传许可和声音克隆授权。
  • 将远程生成视为可能会产生费用的操作。首次付费调用前,说明上传的素材、请求的秒数或单位、已知费用、试制规模、重试上限和预期输出。对于完全相同的计划,复用已给出的批准。
  • 绝不根据图片推断真人声音。使用授权的样本,或录制选定的库存语音。
  • 在生成 Presenter、确定字幕时间或最终场景边界之前,锁定完整旁白。
  • 优先使用一张 Presenter 图片、一种声音身份、一种视觉处理方式和一个连续的 Presenter 素材源。
  • 在最终合成中静音视频源。仅混入已批准的外部旁白和有意添加的混音轨道。
  • 保留服务提供商的请求正文和任务 ID,但不得包含凭据或会过期的 URL。对于中断的任务,先轮询查询,再考虑重新提交。
  • 使用数值检查发现技术故障,并以正常速度进行视觉审查,检查身份、嘴型同步、眨眼、手势、手部、光照和连续性。
  • 拒绝三个付费候选版本后,或在进行会显著影响成本、隐私、声音、外观或服务提供商的更改之前,停止操作。
  • 只有在最终文件完全解码、联系表或完整播放已完成审查,并且 check_state.py 报告 verified 后,才能声称已完成。

开始或恢复任务

对于新任务,请阅读 generation.md。将 SKILL_DIR 设置为包含此文件的目录;其位置取决于运行环境。然后运行:

SKILL_DIR=/path/to/lanshu-create-ai-presenter-video

python3 "$SKILL_DIR/scripts/init_job.py" \
  --job-dir ~/Videos/my-presenter-video \
  --presenter-image ~/Pictures/presenter.png \
  --topic "用一分钟讲清楚上下文工程"

对于已有脚本文件,请使用 --script。可选标志包括 --voice-sample、--supporting-media、--duration、--aspect、--width、--height、--fps、--watermark 和 --cta。初始化程序会将每个输入复制到任务目录,并记录相对于任务目录的路径,因此任务目录自包含;后续的素材路径也应保持相对于任务目录。

检查实际源图片并试听任何声音样本。在 job.json 中记录人工审查和批准,然后运行:

python3 "$SKILL_DIR/scripts/preflight.py" ~/Videos/my-presenter-video/job.json

对于现有任务,请阅读 job.json、当前素材、任务 ID 和 QA 报告,然后运行 check_state.py(见下文),找出最早尚未完成的状态。从该状态继续,不要重新生成已接受的工作。

制作状态机

仅当证据齐备时,才能推进任务:

intake
→ content_locked       passing preflight report, script, beat sheet
→ audio_locked         decodable final audio, ASR report
→ visual_plan_locked   timeline, storyboard, plan.status "approved"
→ presenter_generated  recorded main_presenter capability, selected video, visual review
→ composition_checked  composition report
→ rendered             decodable render with video and audio
→ verified             master, share, delivery report with passing output loudness

绝不要手动编辑 state。在 job.json 中记录素材,然后让检查器计算状态:

python3 "$SKILL_DIR/scripts/check_state.py" ~/Videos/my-presenter-video/job.json --write

不带 --write 时只会报告状态。如果记录的状态超出证据所支持的范围,它会以非零状态码退出,并列出下一状态尚缺的内容。

1. 锁定内容和音频

阅读 generation.md。

  1. 将主题整理成一条口播内容主线,或润色提供的脚本,但不得悄然改变事实含义。
  2. 保存制作脚本、节拍表、发音指南和旁白分段。
  3. 使用一套声音配置生成完整且已获批准的旁白。
  4. 以一致的方式标准化各分段,对最终音频运行 ASR,并修正实质性遗漏、增补、数字、姓名或重复语音。
  5. 记录实际时长。这些时长现在定义了时间线。
2. 规划并生成演示者

选择由演示者主导、屏幕演示或混合讲解的方案。仅在辅助媒体能够证明或阐明口述内容时使用。

如果服务提供商限制的请求时长或参考音频时长短于旁白时长,请根据已锁定音频的 ASR 时间点规划拆分,而不要凭猜测:

python3 "$SKILL_DIR/scripts/plan_segments.py" \
  --timings ~/Videos/my-presenter-video/qa/asr/sentences.json \
  --audio ~/Videos/my-presenter-video/assets/audio/final/narration.wav \
  --cap 15 --whole-seconds \
  --output ~/Videos/my-presenter-video/qa/requests/segment-plan.json

将规划文件路径保存到 plan.segment_plan。所有片段均使用相同的图像、种子、构图、光线和动作约束生成。

先生成一个简短、低成本的试验片段,再进行完整生成。优先确保主轨的身份一致性和口型时间同步。对动作感较强的开场或结尾,使用一个可控手势。如果身体动作符合要求,但口型时间同步失败,请保留动作素材,并使用已锁定音频进行专门的口型同步修复。

归档提示词、参数、服务提供商/模型/版本、区域、任务 ID、请求时长和验收备注。

3. 编辑视频

阅读 editing.md。

根据已锁定音频构建确定性时间线。确保创作的开始时间、时长和素材偏移量彼此独立。仅在音频和选定媒体最终确定后添加字幕和关键词标注。

使用 HyperFrames 时,加载当前的 hyperframes、general-video 和相关领域说明。运行项目检查,检查转场和强调画面,打开 Studio 预览,并在最终视觉审核通过后再进行渲染。

4. 验证并交付

阅读 qa-recovery.md。

以交付质量渲染,完整观看视频,然后完成最终处理:

bash "$SKILL_DIR/scripts/finalize_delivery.sh" \
  ~/Videos/my-presenter-video/renders/rendered.mp4 \
  ~/Videos/my-presenter-video/outputs \
  my-video

最终处理器会保留输入宽高比,执行两遍节目响度标准化,创建母版和分享编码,完整解码这些编码,测量交付响度,统计黑屏和画面冻结事件,并生成九帧联系表。它会在临时目录中完成所有操作,只有全部检查通过后才会发布任何文件。目标响度默认为 -16 LUFS;如果目标平台要求其他值,请设置 PROGRAM_LUFS(例如 PROGRAM_LUFS=-14)。

检查联系表,根据有意静帧判断是否为画面冻结事件,在 job.json 中记录输出和交付报告,并运行 check_state.py --write 进入 verified 状态。

输入内容最少时的默认行为

  • 根据请求推断语言。
  • 使用 9:16、1080×1920、30fps,除非目标平台建议采用其他格式。
  • 保留所提供脚本的自然时长;如果用户只提供主题,则以 45–75 秒为目标。
  • 如果没有获准使用的语音样本,则使用合适的库存语音。
  • 采用由演示者主导的布局,设计一个吸引人的开场、2–4 个有用要点,以及简洁的结尾。
  • 除非用户提出要求或有充分理由,否则不使用音乐和推广性行动号召。
  • 保持视觉风格可信、现代、易读,并符合目标平台的安全要求。

必需的任务文件

job.json
docs/{SCRIPT,BEAT_SHEET,TIMELINE,STORYBOARD}.md
assets/source/
assets/audio/{reference,raw,final}/
assets/video/{candidates,selected,render}/
assets/captions/
qa/{requests,asr,contacts,reports}/
renders/
outputs/

参考资料指引

  • 对于接收需求、内容、语音、工具选择、演示者提示词、付费生成或服务提供商变更,请阅读 generation.md。
  • 对于时间线构建、屏幕演示布局、开场、结尾、字幕、关键词标注、预览和导出,请阅读 editing.md。
  • 在验收媒体或交付内容之前,以及口型同步、身份一致性、手部、曝光、冻结画面、字幕、音频或远程任务出现问题时,请阅读 qa-recovery.md。

评论

支持 Markdown