首页 / 全部技能 / 内容创作 / captions-overlay
内容创作 · heygen-com/hyperframes

captions-overlay

Overlay doctrine for the embedded-captions workflow — the caption MODEL (drop / rail / embed) and the rule that captions are an OVERLAY composited on top of the film, never a reserved bottom band you shift content up to avoid. Load when adding captions/subtitles to a talking-head or launch video, when deciding whether a phrase should be dropped, ride the verbatim rail, or be promoted to a scarce embedded climax, when laying out a composition that will carry captions (do NOT reserve a keep-out band), or when centering a composition on the true frame center under captions. Quotes the rail+embed model from embedded-captions and constraint #13 (captions overlay, keep-out band retired) from the product-launch-video scene agent. Applies ON TOP of embedded-captions.

风险提醒:绿色 · 放心使用AI 侦查报告
作者 heygen-comGitHub heygen-com/hyperframes ↗Stars 44283许可 Apache-2.0(仓库根 LICENSE 为 Apache License Version 2.0)commit d2f0bc7f34
agent 宿主通常会约束 skill 执行权限;风险提醒为 AI 侦查观点,不构成质量或安全保证。第三方 skill 仅作拆解与展示,安装使用风险自负,版权归原作者。

1实现原理 · 为什么它能做到

教义把两条规则缝成一条:① 字幕模型(每个口语句子只有 drop / rail / embed 三种命运,embed 是稀缺的「挣来的」峰值);② 叠层律(字幕行是合成在影片「之上」的 overlay,不是预留区,因此绝不为它上移内容或留死带)。

.claude/skills/captions-overlay/SKILL.md
Two ideas combine here. First, the **caption model** — every spoken phrase is `drop`, `rail`, or `embed`, and embed is the scarce earned peak, not the default. Second, the **overlay law** — a caption line is composited ON TOP of the film as an overlay; it is NOT a reserved zone, so you never shift content up or leave a dead band to "make room" for it.
注:这里在做什么:这不是可执行流程,而是一份判据文档——它给的是**分类决策**(每个短语属于三态中的哪一态)与**构图禁令**(不许留 keep-out 带);实际渲染由上游 embedded-captions 与 product-launch-video 的 finalize 执行。

稀缺度是硬约束:rail 承载绝大多数文字,embed ≤1/句(beat),不得相邻或同框,间隔 ≥ 一个 beat;短片通常一个 embed,长解说约每节一个,「把每个词都 embed」是常见错误。

.claude/skills/captions-overlay/SKILL.md
**The rail carries most of the text; embed is the scarce, earned peak** — ≤1 per beat, never two adjacent/co-visible, spaced ≥ a beat apart. A short clip → usually one embed; a long explainer → ~one per section. Embedding every word is the common mistake.
注:这里在做什么:用数量上限封杀「embed 一切」这个最常见错误,并同时给出 embed 的两种语境:Standard 模式(rail=逐字下三分之一,embed=主体后方的高潮)与 Cinematic 模式(取消 rail,全 embed-style)。

叠层律的可验收表述是「以真实垂直中心构图」:y = H/2(横屏 540、竖屏 960),内容可以一直画到画布底;0.42×H 加底部死带是 bug 不是 fix。

.claude/skills/captions-overlay/SKILL.md
- **Center the composition on the TRUE vertical center — y = H / 2** (landscape 540, portrait 960). Do not shift content up to "make room" for captions; a composition centered at 0.42 × H with a dead lower band is the bug, not the fix. - Content may extend to the canvas bottom.
注:这里在做什么:给出可判定的几何数字(0.42×H 是反面样本),让「有没有偷偷为字幕让位」成为可验证命题,而不是审美口味。

唯一保留的软避让:不要把小号关键可读文字(URL 行、法律条款、次级字幕)恰好停在底部 ~80px 中央带;大图形/卡片/环境内容压在字幕下是允许的。

.claude/skills/captions-overlay/SKILL.md
**One soft courtesy rule:** avoid parking _critical small readable text_ (a URL line, a legal line, a sub-caption) exactly in the bottom ~80px center span where the caption line sits — the overlay would fight it. Large imagery / cards / ambient content under the captions is fine; the caption skin is designed to read over content.
注:这里在做什么:把避让从「区域级」缩小到「关键小字」这一条,并明确它是软规则(courtesy)而非机器闸门。

机器闸门被废除:旧的 captions.mjs keepout 检查已退役,字幕压内容的可读性改由 finalize 的快照 QA 目视判定。

.claude/skills/captions-overlay/SKILL.md
- There is no machine keep-out gate (the old `captions.mjs keepout` check is retired). Finalize snapshot QA judges caption-over-content legibility visually.
注:这里在做什么:明确「没有自动验收」并把验收责任显式转交给快照目视检查——这是本 skill 的验收口径,也是它与有 keepout 检查的前代做法的差别。

与上游 skill 的关系是「叠加」而非「并入」:本教义 ON TOP of embedded-captions,别期待上游把它吸收。

.claude/skills/captions-overlay/SKILL.md
> **Overlay doctrine — supplements the upstream `embedded-captions` skill. Applies ON TOP of it; do not expect it folded into the upstream skill.**
注:这里在做什么:解释为什么这份内部技法 skill 会与 marketplace 的 skills/ 目录并存——仓库自用层(.claude/skills/)在这里打补丁,上游包不动。

加载时机(触发条件)由 description 写明:加字幕到 talking-head 或 launch 视频时、判定某短语该 drop / rail / embed 时、排布将承载字幕的构图(且「不要」预留 keep-out 带)时、以及在字幕存在下把构图对到真实画面中心时。

.claude/skills/captions-overlay/SKILL.md
Load when adding captions/subtitles to a talking-head or launch video, when deciding whether a phrase should be dropped, ride the verbatim rail, or be promoted to a scarce embedded climax, when laying out a composition that will carry captions (do NOT reserve a keep-out band), or when centering a composition on the true frame center under captions.
注:这里在做什么:触发词即「何时必须加载」清单,覆盖模型判定、构图排布、中心校正三类任务。

2核心能力

01口语句三态判定(drop / rail / embed)与每态的表现形式
02embed 稀缺度控制(≤1/beat、不相邻、≥1 beat 间隔、至多一个 apex)
03overlay 构图律(真中心 y=H/2、不放 keep-out 带、允许满幅到底)
04底部 ~80px 中央带的软避让判据(仅关键小字让位)
05Standard / Cinematic 两种模式的分派(前者逐字可读,后者仅在纯电影化诉求下用)
06验收路径:无机器闸门,改由 finalize 快照 QA 目视判定字幕压内容可读性
07明确字幕的默认渲染形态(单行、底部居中、约画布高 5-8%,是叠加层)

3外部依赖

类型依赖
package上游 skill 依赖(被本教义叠加):embedded-captions(rail+embed 模型出处)与 product-launch-video 的场景/finalize 代理(约束 #13)
cli已退役的 captions 检查入口(仅在文中被点名为「不再存在」的检查名,本目录不含该脚本)

4风险提醒 风险提醒:绿色 · 放心使用

风险提醒:绿色 · 放心使用
  • 唯一验收手段是人眼快照,弱视觉模型或快速 QA 下容易漏判 — keepout 机器闸门退役后,字幕压字(URL 行、次级字幕)只能靠 finalize 快照 QA 目视发现;本 skill 也自认没有自动保障。批量出片时这是最可能的漏网点。
  • 「真中心构图」与部分既有素材/模板的版式冲突 — 若某场景的既有模板本来就为下三分之一留了带,按本教义需重构构图(0.42×H 被判为 bug);照抄旧工程会持续踩这条规则。
  • 教义是软约束,无 lint 落地 — SKILL.md 只写规则,没有附带可运行的检查脚本(对比 motion-doctrine 自带 seam-gate)。不读这份文档的代理不会被任何闸门拦住。
  • prompt injection 面:教义以 verbatim 方式引用上游文本,上游被改写则教义随之漂移 — 本文件搬用了 embedded-captions 的条款与 constraint #13,但没有任何版本校验;上游更新后两者可能不一致。
风险提醒:绿色,放心使用。按六档口径逐项核对(判级对象=skill 自身目录):整目录仅 1 个 markdown 文件(SKILL.md,6095 字节),无脚本、无可执行代码块被要求运行、无 URL/域名(全文 URL 扫描零命中)、无 process.env/凭证/钥匙串读取、无本地写盘指令。它只规定「字幕是叠层、以真中心构图、embed 要稀缺」三类判据,并把验收交给人眼——接触面为零,故判绿。

5第二遍独立确认

  • [ok] 是否真的没有任何可执行物(green 档的关键前提) — rglob 全量列举:只有 `.claude/skills/captions-overlay/SKILL.md` 一个文件;无 scripts/、无 assets/、无 references/。全文无 shebang、无 ```bash 块。
  • [ok] 是否含隐藏的网络外发(域名/端点) — `https?://` 在本文件零命中;无 curl/npx/CLI 调用语句。被点名的 `captions.mjs keepout` 是「已退役」的历史检查名,本目录并不含该文件(全量清单已证)。
  • [discrepancy] meta.official_desc 是否与 frontmatter 原文一致 — 本 SKILL.md 的 description 是**未加引号的 plain scalar**,正文里含 `constraint #13 (...)`——YAML 把空格后的 `#` 当注释起点,`yaml.safe_load` 因此只解析到 `…embedded-captions and constraint`,丢掉后半段(解析长度 643 vs 原文该行 782 字符)。为避免展示层出现半句话,本 JSON 按**原文逐字**保留完整 description(含 `#13 (captions overlay, keep-out band retired) … Applies ON TOP of embedded-captions.`),该串在源文件中逐字可命中。此为上游 frontmatter 的书写瑕疵,非本 skill 的行为差异。
  • [ok] 「验收靠人眼」是否被误读为「无验收」 — 原文两条并存:`There is no machine keep-out gate … Finalize snapshot QA judges caption-over-content legibility visually.` 与底部 ~80px 的软避让规则。结论:有验收,但验收方式从机器闸门改为快照目视——第一遍表述准确。
  • [ok] 与上游 embedded-captions 的关系是否有事实依据 — SKILL.md 开篇 blockquote 与 description 双重声明 ON TOP 关系;引用的 rail+embed 与 constraint #13 均标注了出处(embedded-captions / product-launch-video scene agent),未见与上游冲突的改写。

6结论

  • 把「字幕该不该让位」这个长期靠手感的问题变成了可判定的几何命题
  • 稀缺度规则量化到可执行(≤1/beat、不相邻、≥1 beat 间隔),直接封杀「把整段话都 embed」这一最常见错误
  • 主动声明验收方式的变更(机器闸门退役 → 快照目视),不留下「有自动检查」的错觉
  • 把避让范围缩小到「关键小字」这一条软规则,保住了满幅构图的自由度
  • 对上游关系与触发条件写得直白,避免与 embedded-captions 产生互相矛盾的重复规定
  • 适合:适合:为 talking-head / 产品发布视频加字幕时确定「哪句丢、哪句上 rail、哪个词配得上 embed」;排布将承载字幕的构图(确认没有偷偷留 keep-out 带、以真实画面中心对位);需要一份能抵挡「为字幕上移内容」这种常见返工的判据文本。适合作为 /embedded-captions 与 /product-launch-video 的叠加层一起加载。
    不适合:不适合:① 想找可执行流程或工具的场合——这里没有任何脚本、模板或命令;② 需要机器可验的字幕安全区检查——keepout 闸门已退役,请改用快照 QA 或自建检查;③ 纯字幕烧制(无构图决策)的需求——应直接走上游 embedded-captions;④ 需要多语言/字幕格式(SRT/VTT)规范的场景,本教义不涉及。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-09-28
    方式 A · 人下载镜像包下载 captions-overlay.tar.gz
    sha256: 4983e91a90bd624b…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit d2f0bc7f34;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库heygen-com / heygen-com/hyperframes
    Stars44283
    最近推送2026-09-06
    本 skill commitd2f0bc7f34
    许可Apache-2.0(仓库根 LICENSE 为 Apache License Version 2.0)
    本站信息
    收录日期2026-09-06
    分类内容创作
    侦查报告AI 侦查 · 2 遍 · 2026-09-06
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。
    同分类邻近