Communitygithub.com

makunrui80-oss/freedom-video-skill

创建可复现视频,支持可互换的视频模型API,强制使用Manim渲染、Kokoro中文旁白与字幕,支持提供商切换、成本保护、有限重试与使用统计。可运行于Codex、Claude、Gemini、OpenClaw、Hermes、DeepSeek、Kimi、WorkBuddy或普通Python脚本。

freedom-video-skill 是什么?

Freedom Video Generation Studio 是一项AI Agent技能,旨在从主题、脚本、提示或Python示例出发,构建可复现的视频。该技能强制使用Manim渲染确定性场景及代码/图表动画,并通过可配置的云视频模型添加或生成额外素材。工作流保持可移植性,能在Codex、Claude、Gemini、OpenClaw、Hermes、DeepSeek、Kimi、WorkBuddy等AI Agent平台或普通Python脚本中运行。技能将提供商分为智能体层(编写教案、旁白、字幕)和视频层(仅用于生成或增强视频片段),防止误将视频任务发送到聊天补全接口。它内置成本保护机制:每次云视频请求前都会查询价格、配额,计算最大预期成本并与`VIDEO_MAX_COST_PER_TASK`比较,记录到使用台账;同时采用有上限的指数退避重试策略,避免无限循环。输出产物包括成品视频、可编辑的Manim源码、Kokoro旁白WAV与清单、字幕文件、配置模板、渲染命令及使用台账,且严格禁止泄露密钥或授权令牌。

兼容平台✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add makunrui80-oss/freedom-video-skill

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

自由视频生成工作室

从主题、脚本、提示或Python示例构建可复现的视频。Manim渲染是强制性的,用于确定性场景和代码或图表动画;可配置的云视频模型可以添加或生成其他素材。保持工作流可移植,能在Codex、Claude、Gemini、OpenClaw、Hermes、DeepSeek、Kimi、WorkBuddy或普通Python脚本中运行。

分离两个提供商层

  • 智能体提供商仅用于编写教案、旁白、字幕、提示及Manim/Python源码。可对DeepSeek、Kimi或Hermes等提供商使用OpenAI兼容的聊天补全端点。
  • 视频提供商仅用于生成或增强视频片段。切勿将视频任务发送到聊天补全端点。
  • 将Agnes Video 2.5 Flash视为一个可选默认值,而非硬性依赖。
  • 在配置或调用任何提供商之前,请阅读参考资料/provider-config.md。

必要工作流

  1. 创建输出项目目录。将源码、音频、字幕、渲染文件和日志保存在其中。

  2. 在编写或渲染课程之前,运行:

    python3 scripts/ensure_manim.py --project-root <OUTPUT_PROJECT>
    

    此步骤是强制性的。它会在<OUTPUT_PROJECT>/.venv-manim中查找或安装Manim,验证版本,并执行一次真实的烟雾测试渲染。如果失败则停止。使用脚本打印的Manim可执行文件路径进行后续渲染。

  3. 当需要旁白时,在生成旁白之前运行此强制设置:

    python3 scripts/ensure_kokoro.py --project-root <OUTPUT_PROJECT>
    

    它会在<OUTPUT_PROJECT>/.venv-kokoro中安装固定的Kokoro中文栈,在.vendor下保留所需的kokoro-tts-zh源码修订版本,在首次使用时下载所选模型/音色,并合成一个真实的烟雾测试WAV文件。如果任何步骤失败则停止。请阅读参考资料/audio-config.md了解音色和旁白命令。

  4. 制作带时间轴的教案。为每个场景指定旁白、屏幕代码、动画、字幕文本和时长。对代码执行概念、状态变化、指针、轨迹、图表和确定性教育视觉元素使用Manim。

  5. 在锁定场景时间轴之前生成完整的旁白。使用scripts/kokoro_narrate.py,默认使用温暖教学音色zf_032,速度设为0.96,在整节课内保持同一音色和稳定适中的速度,并根据测量的WAV及其清单调整视觉/字幕的时间。

  6. 渲染Manim草稿,验证其测量时长、帧大小、文本边界、代码高亮和过渡是否与旁白计划匹配。

  7. 仅当云视频提供商能实质性改善课程时才调用它。在每次计费作业前运行下面的安全检查。

  8. 组装最终视频,然后验证音频、字幕时间轴、代码可读性、时长和可播放输出。

旁白来源策略

  • 对于每个有旁白的视频,使用集成的kokoro-tts-zh模型系列提供的中文语音。
  • 切勿使用macOS say、Windows SAPI、浏览器语音合成或其他操作系统语音作为自动后备。
  • 如果Kokoro安装、模型下载、语音加载或合成失败,则停止并报告失败。不要静默替换为机械语音。
  • Kokoro提供预设音色;它不克隆任意上传的说话人。链接仓库的克隆路径依赖于单独的StableTTS子模块和模型权重,这些不由本技能提供或验证。对于克隆请求,需要单独配置并验证的克隆后端,以及用户已获准使用该语音的确认。

强制计费安全检查

在每次云视频请求之前:

  1. 查询提供商当前的定价端点或官方定价源。
  2. 通过配置的配额端点查询账户配额/积分。
  3. 使用请求的时长、分辨率、模型和提供商定价计算最大预期成本。
  4. 与VIDEO_MAX_COST_PER_TASK和可用积分进行比较。
  5. 将检查结果记录到<OUTPUT_PROJECT>/usage/video-usage.jsonl。

如果价格或配额未知、端点无法验证、积分不足或最大成本可能超出,则不要提交作业。提供商宣传免费层不证明当前请求是免费的。

重试与轮询规则

  • 永远不要无限重试。
  • 对于异步作业,使用VIDEO_MAX_POLLS和VIDEO_POLL_INTERVAL_SECONDS。
  • 对临时网络故障或HTTP 429/5xx错误,最多重试VIDEO_MAX_RETRIES次,并采用有上限的指数退避。
  • 对于队列满、容量满、积分不足、身份验证、验证或定价策略错误,立即停止,除非提供商明确提供了短的Retry-After且配置的重试预算允许一次重试。
  • 切勿仅仅因为状态轮询失败就创建替换作业;首先通过ID检索原作业。

使用台账

每次预检和提供商调用向<OUTPUT_PROJECT>/usage/video-usage.jsonl追加一条JSON记录。绝不存储API密钥或授权令牌。包含:

{"timestamp":"ISO-8601","provider":"name","model":"id","job_id":"id-or-null","requested_seconds":10,"actual_seconds":10,"call_count":1,"status":"succeeded","price_source":"endpoint-or-url","estimated_cost":0,"actual_cost":0,"currency":"USD","cost_known":true,"error":null}

如果提供商未返回实际成本,将actual_cost设为null,cost_known设为false;不要静默记录为零。在结束时汇总总调用次数、生成的时长、已知成本和成本未知的调用次数。

输出契约

交付最终视频以及可编辑的Manim源码、Kokoro旁白WAV和清单、字幕文件、提供商安全配置模板、渲染命令和使用台账。说明所使用的Kokoro音色/模型/速度,并清晰说明何时未调用云视频API或无法验证成本。

不要将密钥暴露在源码、日志、提示、shell历史、截图或提交的.env文件中。使用环境变量,仅提供.env.example模板。

相关技能