跳到主要内容
BLKBLKTECH

指南 / ai

玩转 HyperFrames:从 AI Coder 到 AI Layout Driver

通过 Block Registry、Scene JSON、设计 token 和音频时间数据,把 HyperFrames 从每次现场写代码升级为可复用、可验证的视频生产系统。

作者 BLKTECH 编辑部更新 2026年7月25日19 分钟难度 进阶低成本HyperFramesJSON SchemaGSAPFFmpegAI Agent

玩转 HyperFrames 的关键,是把 AI 从每次重写 HTML、CSS 和动画的 Coder,转变为选择 Block、填充 Scene JSON、绑定主题和编排时间的 Layout Driver,再由固定编译器和检查流水线生成视频。

真正的升级不是让 AI 写得更快

刚开始使用 HyperFrames 时,最直接的方式通常是:

用户提出需求

AI 阅读 Skills 和项目规范

现场编写 HTML、CSS、GSAP

执行 check

根据错误反复修改

渲染视频

这条路线适合第一条视频,也适合探索新的视觉形式。但如果每条视频都这样生产,成本很快会暴露出来:

  • 相同的标题场景被重复编写
  • 相同的终端窗口被重复实现
  • 每次重新决定字体、颜色和圆角
  • 每次重新设计时间轴
  • Composition ID、根尺寸和媒体路径问题反复出现
  • Agent 输出大量重复代码
  • 修改一个数据也可能触发整页重构
  • 视频之间的品牌风格难以保持一致

真正玩转 HyperFrames,不是继续要求 AI “把代码写得更快”,而是改变 AI 在系统中的角色:

从 AI Coder 转向 AI Layout Driver。

AI 不再为每条视频重新发明组件和动效,而是在已经验证过的 Block、主题、动画 Recipe 和数据协议中做选择、填充和编排。

AI Coder 和 AI Layout Driver 有什么区别

AI Coder 模式

AI 负责:

  • 设计 DOM 结构
  • 决定 CSS
  • 创建 Timeline
  • 选择动画
  • 计算场景时间
  • 绑定媒体
  • 处理所有异常

输入可能只有一句:

做一个科技感的终端安装场景。

输出是几百行一次性代码。

AI Layout Driver 模式

AI 负责:

  • 从 Registry 中选择 terminal-command Block
  • 输出符合 Schema 的 Scene JSON
  • 选择已有主题和 Motion Recipe
  • 把旁白 Cue 映射给 Block
  • 决定场景顺序和时间
  • 根据检查结果调整数据

输出可以变成:

{
  "scene_id": "03-install",
  "block": "terminal-command",
  "start": 6,
  "duration": 5.5,
  "track": 1,
  "theme": "code-editorial",
  "motion": "type-and-confirm",
  "props": {
    "command": "npm install hyperframes",
    "output": "Installed successfully"
  }
}

两种模式并不是互相排斥。

AI 仍然可以写代码,但应该集中在高价值工作上:

  • Registry 中没有合适 Block
  • 已有 Block 缺少必要能力
  • 一个新场景未来会被多次使用
  • 需要升级主题、编译器或验证规则
  • 需要修复组件本身的技术问题

对于已经成熟的场景,AI 更适合驱动数据,而不是重复实现。

一张图看懂数据驱动的视频工厂

一个更成熟的 HyperFrames 系统可以拆成五层:

┌──────────────────────────────────────────┐
│ 1. Intent:Brief / Script / Storyboard   │
├──────────────────────────────────────────┤
│ 2. Scene Data:内容、时间、素材、Block   │
├──────────────────────────────────────────┤
│ 3. Registry:Block / Component / Recipe  │
├──────────────────────────────────────────┤
│ 4. Design:Theme / Token / Motion Rules  │
├──────────────────────────────────────────┤
│ 5. Compiler + QA:HTML / Check / Render  │
└──────────────────────────────────────────┘

完整数据流是:

Prompt / Brief

AI 生成 Scene JSON

JSON Schema 验证

语义检查

选择 Registry Block

绑定 Theme、Motion 和 Audio Cue

编译为 HyperFrames Composition

lint / check / snapshot / preview

render

这里最关键的变化是:

Agent 的输出不再直接等于最终视频源码,而是先成为一份受约束的视频描述数据。

第一层:先建立 Block Registry

什么是 HyperFrames Block

在当前 HyperFrames Registry 模型中,Block 是一个可以独立渲染的 Sub-composition,拥有:

  • 自己的 Composition ID
  • 自己的宽度和高度
  • 自己的时长
  • 自己的 HTML 和 CSS
  • 自己的可 Seek Timeline
  • 自己支持的变量和媒体

主 Composition 通过 data-composition-src 加载它:

<div
  data-composition-id="terminal-command"
  data-composition-src="compositions/terminal-command.html"
  data-start="6"
  data-duration="5.5"
  data-track-index="1"
  data-width="1920"
  data-height="1080"
></div>

Block 的内部 Timeline 独立运行。HyperFrames 会按照 Host 的 data-start 计算相对时间,不需要主 Timeline 再手动调用 Block 的动画函数。

Block 和 Component 不一样

HyperFrames Registry 中有两种主要复用单元:

类型 特征 适合内容
Block 独立 Composition,有尺寸、时长和 Timeline 标题场景、图表、终端、CTA、完整信息页
Component 合并到现有 Composition 的片段 Grain、Shimmer、字幕样式、局部装饰和效果

Block 更像剪辑软件里的预合成;Component 更像一段可以复制进现有场景的效果代码。

可以通过 CLI 发现和安装 Registry 内容:

npx hyperframes catalog
npx hyperframes catalog --type block
npx hyperframes catalog --type component
npx hyperframes catalog --json

npx hyperframes add data-chart

对于 Agent 或 CI,推荐使用 catalog --json 获取结构化结果,再显式选择和安装一个 Block,而不是让脚本在交互界面中随意挑选。

不要混淆 Registry 和 Web Components

浏览器原生 Web Components 也可以提高复用率:

class TerminalView extends HTMLElement {
  connectedCallback() {
    const command = this.getAttribute("data-command") || "";

    this.innerHTML = `
      <div class="terminal">
        <span class="prompt">$</span>
        <span class="command"></span>
      </div>
    `;

    this.querySelector(".command").textContent = command;
  }
}

customElements.define("hf-terminal-view", TerminalView);

但它属于浏览器组件机制,不自动等于一个 HyperFrames Registry Block。

推荐的边界是:

HyperFrames Block
├── 负责 Composition ID、尺寸、时长、变量和 Timeline
└── 内部可以选择使用 Web Component 组织 DOM

而不是:

自定义 HTML 标签
= HyperFrames Registry Block

Web Component 可以是 Block 的内部实现方式,但仍要遵守 HyperFrames Composition 合约。

第二层:让 AI 只输出 Scene JSON

建立 Registry 后,下一步是把视频内容变成标准数据。

一个更完整的 Scene JSON

{
  "schema_version": "1.0",
  "scene_id": "03-install",
  "block": "terminal-command",
  "block_version": "1.2.0",
  "start": 6,
  "duration": 5.5,
  "track": 1,
  "theme": "code-editorial",
  "motion": {
    "preset": "type-and-confirm",
    "intensity": "medium"
  },
  "props": {
    "command": "npm install hyperframes",
    "output": "Installed successfully"
  },
  "audio": {
    "cue": "scene-03",
    "sync": "word"
  }
}

这份数据描述了:

  • 使用哪个 Block
  • 从什么时候开始
  • 持续多久
  • 位于哪条 Track
  • 使用哪个主题
  • 使用哪个动画预设
  • 传入什么内容
  • 与哪段音频对齐

Agent 不需要输出任意 CSS 和 JavaScript。

为什么必须有 schema_version

没有版本号时,今天生成的 Scene JSON 可能在几个月后无法被新 Builder 正确理解。

例如:

{
  "schema_version": "1.0"
}

未来如果字段结构发生变化,可以升级为:

{
  "schema_version": "2.0"
}

编译器可以拒绝未知版本,或者先执行迁移脚本,而不是静默生成错误视频。

JSON Schema 能解决什么

JSON Schema 可以检查:

  • 必填字段是否存在
  • startduration 是否为数字
  • duration 是否大于零
  • scene_id 是否符合命名格式
  • theme 是否属于允许值
  • motion.preset 是否属于预设
  • props.command 是否过长
  • 是否出现了未知字段

简化示例:

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "required": [
    "schema_version",
    "scene_id",
    "block",
    "start",
    "duration",
    "track",
    "props"
  ],
  "properties": {
    "schema_version": {
      "const": "1.0"
    },
    "scene_id": {
      "type": "string",
      "pattern": "^[a-z0-9-]+$"
    },
    "start": {
      "type": "number",
      "minimum": 0
    },
    "duration": {
      "type": "number",
      "exclusiveMinimum": 0
    },
    "track": {
      "type": "integer",
      "minimum": 0
    },
    "theme": {
      "enum": ["code-editorial", "terminal-green"]
    }
  },
  "additionalProperties": false
}

Schema 能减少格式和类型错误,但不能保证视频一定正确。

还需要第二层语义检查

以下问题无法只靠单个 Scene 的 JSON Schema 发现:

  • 两个 Scene 使用了相同 ID
  • 同一 Track 上出现意外重叠
  • start + duration 超出视频总时长
  • Registry 中不存在指定 Block
  • Block 不支持当前画幅
  • Block 不支持某个 Motion Preset
  • 音频 Cue 不存在
  • 本地媒体文件缺失
  • 标题长度超过 Block 容量
  • 两个 Block 组装后产生重复 DOM ID

因此完整验证应该是:

JSON Schema

Registry 能力检查

全局时间轴检查

媒体文件检查

编译 HTML

HyperFrames check

可以把它概括为:

Schema 验证“数据长得对不对”
Semantic Validator 验证“数据组合得对不对”
HyperFrames check 验证“浏览器最终渲染得对不对”

第三层:使用编译器,而不是渲染时动态请求

一个常见想法是在浏览器加载后执行:

const data = await fetch("./video.json");
buildScenes(data);

对于普通网页,这很自然;对于确定性视频渲染,不建议把关键工程结构依赖在运行时异步请求上。

更可靠的方式是构建时编译:

node scripts/validate-scenes.mjs
node scripts/build-composition.mjs
npx hyperframes check

Builder 在渲染前完成:

  1. 读取 JSON
  2. 验证 Schema
  3. 执行语义检查
  4. 查找 Registry Block
  5. 生成 Host 元素
  6. 绑定变量
  7. 计算总时长
  8. 输出稳定的 index.html

然后 HyperFrames 读取的是已经确定的 Composition,而不是等待运行时临时生成。

为什么这对确定性更友好

渲染阶段不再依赖:

  • 网络请求
  • 异步 JSON 加载
  • 临时 DOM 构建顺序
  • 运行时接口返回值
  • Timeline 延迟注册

同一份 Scene JSON 和同一版本 Builder,应该生成相同 Composition 源码。

第四层:让音频驱动视觉

视频节奏最可靠的来源通常不是 Agent 估算的秒数,而是真实音频。

推荐顺序:

锁定 Script

生成或导入 Voiceover

获得词级或句级时间

生成 Audio Map

Scene 引用 Cue

Block 把 Cue 映射到 Timeline

Audio Map 示例

{
  "version": "1.0",
  "duration": 15.42,
  "cues": {
    "scene-03": {
      "start": 6.18,
      "duration": 4.96,
      "words": [
        {
          "text": "安装",
          "start": 6.42,
          "duration": 0.38
        },
        {
          "text": "HyperFrames",
          "start": 6.86,
          "duration": 0.72
        }
      ]
    }
  }
}

Scene 只需要引用:

{
  "audio": {
    "cue": "scene-03",
    "sync": "word"
  }
}

Block 可以消费标准 Cue:

scene.start
command.start
result.start
scene.duration

它不需要知道语音来自哪个 TTS 服务。

不要把“毫秒级数据”写成“毫秒级画面”

TTS 时间可以用毫秒表示,但最终画面会映射到视频帧。

30 FPS 的一帧约为 33.3 毫秒,60 FPS 的一帧约为 16.7 毫秒。因此更准确的目标是:

使用统一 Audio Map,让相同事件稳定落在相同的视频帧附近。

实际效果还取决于 TTS 时间数据、媒体 Seek 和解码准确性。

第五层:建立真正的设计真值系统

单独写一个 theme.css 是好开始,但还不够。

真正的设计系统至少包括:

frame.md          视觉原则与禁止事项
theme.css         颜色、字体、圆角、阴影和间距
Theme Schema      允许 Agent 选择的主题名称
Block Contract    每个 Block 支持的主题和密度
Motion Tokens     速度、缓动、位移和能量等级
Visual QA         check、snapshot 和人工审阅

Theme Token 示例

:root {
  --hf-bg: #12131c;
  --hf-surface: #1a1c29;
  --hf-foreground: #f6f7fb;
  --hf-muted: #9296a8;
  --hf-accent: #ff6b4a;

  --hf-font-main: "Inter", sans-serif;
  --hf-font-code: "Fira Code", monospace;

  --hf-radius-sm: 12px;
  --hf-radius-lg: 28px;
  --hf-safe-margin: 96px;

  --hf-motion-fast: 0.35s;
  --hf-motion-normal: 0.65s;
  --hf-motion-slow: 1.1s;
}

Agent 不直接选择颜色值

不推荐:

{
  "background": "#100B28",
  "accent": "#FF00C8"
}

推荐:

{
  "theme": "code-editorial",
  "accent_role": "primary",
  "density": "spacious",
  "motion_energy": "medium"
}

由系统把这些语义值转换为真实 token。

否则,即使存在 CSS Variables,Agent 仍然可以通过内联样式绕过设计系统。

第六层:把动画变成 Motion Recipe

在 AI Coder 模式中,Agent 可能为每个元素写不同动画。

在 Layout Driver 模式中,Agent 只选择预置动作:

{
  "motion": {
    "preset": "type-and-confirm",
    "intensity": "medium"
  }
}

一个 Motion Recipe 应该声明:

{
  "name": "type-and-confirm",
  "version": "1.0.0",
  "supported_blocks": ["terminal-command"],
  "min_duration": 3.5,
  "seek_safe": true,
  "randomness": "none",
  "checkpoints": [0.1, 0.35, 0.7, 0.95]
}

第一批值得沉淀的 Recipe

  • title-rise-reveal
  • terminal-type-and-confirm
  • diagram-build
  • number-count-up
  • mask-wipe
  • card-focus
  • logo-resolve
  • caption-highlight

不要一开始建立几十种效果。先围绕真正高频场景做 5~8 个稳定 Recipe。

高级插件不是自动的“高级感开关”

ScrambleTextPlugin

适合文字解码和科技感 Hook,但要检查字符扰动是否可以稳定 Seek。如果效果依赖未固定随机状态,应改为:

  • 固定字符池
  • 预先生成字符序列
  • 使用固定种子
  • 对同一时间点多次 Snapshot 比较

FlipPlugin

FLIP 可以实现元素在两个布局间平滑过渡,但它会涉及布局状态测量。

更安全的做法是:

  • 在初始化时同步捕获布局状态
  • 不在 Tween 执行期间重复测量 DOM
  • 不依赖当前播放顺序才能得到目标状态
  • 用 transform 完成运动
  • 直接 Seek 到中间时间进行测试

Lottie

Lottie 适合勾选、Spinner 和品牌矢量动画,但必须让 HyperFrames 能够控制播放进度。

不要只让 Lottie 自然播放,而要使用对应运行时适配,让任意时间点都能定位到确定帧。

先注册能力,再允许 Agent 使用

可以维护一个能力表:

{
  "scramble-reveal": {
    "status": "experimental",
    "seek_safe": false
  },
  "flip-card-to-detail": {
    "status": "verified",
    "seek_safe": true
  },
  "lottie-success": {
    "status": "verified",
    "seek_safe": true
  }
}

Agent 只能选择 verified Recipe。实验效果先经过多时间点、多次渲染检查,再进入生产 Registry。

怎样判断 Registry 是否真的提高了效率

“生成时间缩短 90%”“5 分钟出片”可以作为目标,但不应该在没有测试数据时直接写成普遍结论。

更可靠的做法是记录项目 Benchmark:

指标 冷启动模式 Registry 模式
Agent 输出 Token 实测 实测
首次 lint 通过率 实测 实测
首次 check 通过率 实测 实测
首次预览耗时 实测 实测
平均修改轮数 实测 实测
人工调整时间 实测 实测
Block 复用率 0% 实测

最终应该能回答:

  • 哪些 Block 使用最频繁
  • 哪些 Block 经常需要返工
  • 哪些字段最容易被 Agent 填错
  • 哪些主题组合质量最高
  • 哪些动画 Recipe 最稳定
  • Registry 模式实际减少了多少代码和时间

工业化不是一句口号,而是一个可以度量、优化和回归测试的系统。

从现有项目迁移的四个阶段

阶段一:统计重复场景

先分析过去的视频:

  • 哪些标题场景重复出现
  • 哪些终端和代码演示重复出现
  • 哪些 CTA 基本相同
  • 哪些数据图表只是替换数字
  • 哪些错误反复发生

阶段二:抽取第一批 Block

推荐先做:

  1. Title Card
  2. Terminal Command
  3. Process Flow
  4. Big Number
  5. CTA

这五类通常已经能覆盖大量技术解释视频。

阶段三:定义 Scene Schema 和 Theme

先让一个画幅、一种主题、一套语言跑通。

不要同时解决:

  • 16:9、9:16、1:1
  • 中文、英文、日文
  • 五种主题
  • 十种转场
  • 三种动画运行时

边界越小,第一版越容易稳定。

阶段四:加入 Builder、Validator 和 QA

最后把人工组装步骤自动化:

Scene JSON
→ validate
→ compile
→ lint
→ check
→ snapshot
→ preview
→ render

一份适合 Layout Driver 的 Agent 指令

你现在是 HyperFrames Layout Driver,不要默认从空白 HTML 开始。

执行顺序:
1. 读取 BRIEF.md、STORYBOARD.md、frame.md 和 Registry Catalog。
2. 为每个 Scene 选择已验证的 Block。
3. 只输出符合当前 Scene Schema 的 JSON。
4. Theme、Motion 和 Density 只能使用 Registry 中声明的枚举值。
5. 不输出自定义 CSS、JavaScript 或远程媒体 URL。
6. 如果现有 Block 无法表达内容,先报告能力缺口,不要偷偷重写整个场景。
7. 使用 Audio Map 中的 Cue 校准场景与动作时间。
8. 运行 Validator 和 Builder,生成 Composition。
9. 执行 lint、check 和关键帧 snapshot。
10. 等待最终 preview 确认后再 render。

验收:
- Scene JSON 通过 Schema 和语义检查
- 所有 Block 和 Recipe 都来自已验证 Registry
- 主题没有越过设计 token
- 没有运行时网络、未固定随机数和异步 Timeline
- 生成结果可以由相同数据重复构建

总结

从 AI Coder 转向 AI Layout Driver,真正改变的是视频生产的责任边界:

AI 负责:
理解内容、选择 Block、填充数据、编排时间、响应检查结果

系统负责:
画面结构、主题样式、动画实现、Schema、编译和质量门槛

最终目标不是完全禁止 AI 写代码,而是让代码生产发生在正确层级:

  • 高频场景通过 Block 复用
  • 内容通过 Scene JSON 输入
  • 品牌通过 Theme Token 固定
  • 动画通过 Motion Recipe 复用
  • 音频通过 Cue Map 对齐
  • Composition 通过 Builder 生成
  • 视频通过固定 QA 流水线验证

当这些层稳定后,HyperFrames 才真正从“AI 能生成的视频网页”,升级为“AI 可以持续驱动的视频生产系统”。

下一篇将实际搭建一个 Terminal Block、Scene JSON Schema、语义验证器和 Composition Builder,完成从数据到 HyperFrames 视频工程的闭环。

系列导航

  1. HyperFrames 原理详解:AI Agent 如何把 HTML 渲染成视频
  2. HyperFrames Skills 实战:从 Brief 到 MP4 生成第一条视频
  3. HyperFrames 进阶:如何提高画面质量与生产效率
  4. 玩转 HyperFrames:从 AI Coder 到 AI Layout Driver
  5. HyperFrames 官方 Registry 指南:让 Agent 自动查、拉、挂、验
  6. HyperFrames Registry 实战:Block + JSON Schema 视频流水线

配套资源:

参考资料

NEXT ACTION / 下一步

先学会使用官方 Registry

把读到的方法变成一个小行动,完成后再回来迭代。

继续

RELATED / 相关推荐

接着读这些

按同一栏目、标签与技术栈为你挑选。