Community编程与开发github.com

denameidina/hyperframes-video-workflow

HyperFrames 视频工作流工作区,包含 R2/Repliz 发布辅助工具。

hyperframes-video-workflow 是什么?

HyperFrames 是一个强大的视频创作框架,它通过 HTML 渲染视频,利用 DOM 元素的 `data-*` 属性精确控制动画和媒体的时序。该技能(Skill)提供了一个完整的工作流路由系统,能够将“为我制作一个视频”这样的模糊需求,智能地导向如产品发布视频、网站导览、无人物解说、代码变更解说等十几种专业化工作流。它支持多种 AI Agent 平台,其核心能力按需加载,包括动画、创意方向、媒体处理和 CLI 开发循环,使 AI 能够高效地完成从创作、验证到渲染、发布的完整视频制作流程。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/denameidina/hyperframes-video-workflow/tree/main/.claude/skills/hyperframes

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

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

文档

HyperFrames — 从这里开始

HyperFrames 通过 HTML 渲染视频——一个合成物就是一个 HTML 文件,其 DOM 使用 data-* 属性声明时序,动画运行时是可寻址的,媒体播放由框架本身控制。完整的创作约定位于 /hyperframes-core;在编写合成 HTML 之前请先阅读它。

以下是能力地图(按需加载的领域技能)和意图路由器(为任何“制作一个视频”的请求选择工作流)。

能力地图 — 领域技能

按需加载的原子能力——并非完整的视频工作流。对于“制作一个视频”,请使用下面的意图路由器。

您想…技能
创作/编辑 HTML 合成物 — data-* 约定、片段、轨道、子合成、变量/hyperframes-core
动画 — 原子运动、场景蓝图、转场、运行时适配器 (GSAP / Lottie / Three.js / Anime.js / CSS / WAAPI / TypeGPU)/hyperframes-animation
创意方向 — frame.md / design.md、调色板、字体、叙事、节拍规划、音频响应/hyperframes-creative
媒体 — TTS 画外音、背景音乐、转录、背景移除、字幕/hyperframes-media
媒体解析 — 从 HeyGen 目录查找并冻结 BGM、SFX、图片、图标到 .media/ 目录,并附带清单追踪/media-use
CLI 开发循环 — 初始化、lint、验证、检查、预览、渲染、发布、诊断/hyperframes-cli
安装注册表块/组件 (hyperframes add)/hyperframes-registry

意图路由 — 选择工作流

本部分仅了解顶层工作流;不会加载其内部引用或上述领域技能。

路由前 — 确认输入,而非规格

路由需要知道视频是关于什么的——它的输入和主题。如果未指定(“制作一个关于我们产品的视频”,但没有 URL、产品、主题或素材),请在进入任何工作流之前先询问——因为承诺一个工作流本身就是路由决策。最多问两个问题:

  • 输入 — 一个产品(URL / 简介)、一个普通网站、一个 GitHub PR、一个要解释的主题、或一个现有的对话式视频?

规格默认值——直接使用,无需询问(它们永远不会改变路由):宽高比 16:9(仅当有命名的竖屏目标——TikTok / Reels / Shorts 时才使用 9:16);旁白/字幕语言 = 用户的语言。选定的工作流会在其第一步重新确认自己的具体细节。

工作流速查表

工作流使用场景
/product-launch-video推广产品 (SaaS、应用、公司/产品网站) — 从 URL、简介或脚本 → 宣传片。任何商业 URL 的默认选项,即使只是提及了网站名。
/website-to-video展示网站本身 — 基于网站本身截图的导览/展示。适用于非商业网站(作品集、博客、文档、个人、活动),或用户只想要导览而非宣传片。
/faceless-explainer解释一个主题/概念 — 基于文本,无产品,无 URL;所有视觉内容由 LLM 创造
/pr-to-videoGitHub PR / 代码变更 → 变更日志/功能展示/Bug 修复/重构解说
/embedded-captions为现有对话式视频添加字幕/说明文字(不修改原视频画面)
/talking-head-recut为现有对话式视频包装设计好的图形叠加层 — 下方三分之一栏、数据标注、动态标题、引用高亮
/motion-graphics一个简短的、不配音、以设计为主导的动态图形 — 动态文字、数据/图表冲击、Logo 片头、下方三分之一叠加层
/music-to-video音乐轨道 → 节拍同步视频 — 歌词视频、幻灯片或动态宣传片;音乐驱动节奏(可选的用户图片/视频按节拍网格剪辑)
/slideshow演示文稿/路演/交互式演示 — 离散幻灯片、碎片化内容、分支、热点;输出为可导航的展示,而非渲染的视频
/general-video其他任何情况 — 较长或多场景作品、静态循环/海报、自定义合成
/remotion-to-hyperframes将现有的 Remotion (React) 合成迁移到 HyperFrames(迁移,非新建)

歧义消除(仅针对易混淆的情况):

  • 运动优先且无旁白(约 10 秒以下,运动本身就是信息)→ /motion-graphics,不论输入为何。
  • 一个 URL 或脚本 — 问一件事:这个网站是在卖产品吗? 是(SaaS / 应用 / 产品 / 公司网站)→ /product-launch-video — 宣传片,任何商业 URL 的默认选项,即使只是提及了网站名。否,或用户只想按原样展示网站(作品集/博客/文档/个人/活动)→ /website-to-video — 导览。GitHub PR 链接 → /pr-to-video;没有产品或网站的概念 → /faceless-explainer。
  • 现有视频素材 — 纯文本字幕 → /embedded-captions;设计好的叠加卡片 → /talking-head-recut。两者都不会编辑原始素材本身(重新计时/重新着色/重新构图/重新排序/音频属于非线性编辑——超出了范围)。
  • 输入是一个音乐轨道(音频文件,或提取音频的视频)并且没有旁白 → /music-to-video — 音乐的节拍/能量驱动节奏。(有旁白的作品仍使用上面输入匹配的工作流;/motion-graphics 用于简短、无旁白、非音乐驱动的运动图形。)
  • 演示文稿 / 路演 / 交互式演示(离散幻灯片、导航、演示者模式)→ /slideshow — 输出是可导航的展示,而非渲染的视频。明确的“幻灯片”请求直接进入;相近的触发词(“deck / slides / presentation / convert this page”)会使 /slideshow 在创作前确认是否为幻灯片,如果不是,则切换到适当的非幻灯片工作流。
  • 时长是指南,而非限制 — 意图决定工作流;只有当作品明显超过约 3 分钟,或是静态/循环/自定义格式时,才转到 /general-video。

如果匹配的工作流未安装

一旦您选择了工作流,请检查它是否确实可用。如果匹配的工作流技能未安装,不要退而求其次去猜测——请告知用户先安装它:

  • 仅此工作流: npx skills add heygen-com/hyperframes --skill <workflow-name> (例如 --skill pr-to-video — 使用裸名称,不要前导 /)。
  • 一次性安装所有工作流: npx skills add heygen-com/hyperframes --all (核心 + 每个工作流,跳过选择器)。

在他们运行之后,重新读取工作流的技能并继续。

保持技能最新

HyperFrames 技能是版本化的。npx hyperframes init 会检查已安装的技能是否与 GitHub 上的最新版本一致,并在有任何过时或缺失时安装/刷新完整的技能集——因此新初始化的项目始终拥有完整、最新的版本(而在最新的项目上重新运行 init 则无操作)。此检查是一次快速的 GitHub 往返;离线(或遇到速率限制)时,会在短暂超时后回退到安装状态,因此 init 永远不会因网络问题而硬性失败。创作工作流通过 init 进行脚手架搭建,因此启动新项目时始终会运行此检查,并在技能过期时从 GitHub 拉取我们的最新技能。--skip-skills 标志目前已被禁用(这是在 skills.sh 注册表追赶进度时的临时措施):传递该标志不再跳过检查,因此每次 init 都会检查 GitHub。CI/测试通过 HYPERFRAMES_SKIP_SKILLS=1 环境变量选择退出。

如果任务行为异常,或在进行长时间构建之前,请确认已安装的技能是最新的:

  • 检查: npx hyperframes skills check(添加 --json 可获取机器可读的结论;在任何技能过时或缺失时以非零退出码退出)。
  • 更新: npx hyperframes skills update — 拉取完整技能集至最新版本,安装任何尚未存在的技能(与 init 的安装步骤相同)。

当 render / lint / validate 运行时检测到过时的技能时,CLI 还会显示一行提醒。

工作流详情

/product-launch-video

  • 输入: 一个正在被营销的产品 — (a) 一个产品 URL(使用无头 Chrome 抓取资源和品牌标记)、(b) 一个提到产品网站(即使没有链接)的脚本/简介(PLV 会解析并抓取该网站,除非用户选择退出)、或 (c) 一个无法推导出网站或“不要抓取”的脚本(无捕获模式——选择一个提供调色板和设计系统的样式预设)。提供的脚本可以是逐字画外音,也可以是按场景重构的——PLV 会询问。
  • 输出: 一个产品发布 / SaaS 宣传片,作为 HyperFrames 合成物 → MP4(最佳时长 30–90 秒)——主题是产品的价值,而非网站的导览。如需纯粹的网站导览,请使用 /website-to-video。
  • 触发词: “为 X 制作启动视频”、“我们网站的宣传片”、“一分钟解释我的 SaaS”、“将我的脚本变成 60 秒宣传片”、“纯文本启动视频,不要抓取”。

/website-to-video

  • 输入: 一个网站/URL,其目标是展示网站本身,而非推销产品。最适合非商业网站(作品集、博客、文档、个人、活动),或者用户明确希望按原样导览网站时。使用无头 Chrome 捕获真实截图和品牌素材。

相关技能