首页 / 全部技能 / 内容创作 / 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.

L1 基础 · 登记来源即可V1 已固定Dual-pass Audit
Author heygen-comGitHub heygen-com/hyperframes ↗Stars 44283License Apache-2.0(仓库根 LICENSE 为 Apache License Version 2.0)Commit d2f0bc7f34
管控等级描述 skill 的能力与建议配套的管控措施,不代表质量或安全认证,也不表示可用或不可用。是否使用由用户和管理者决定。不同 agent 宿主对权限的约束各不相同,请勿假定宿主一定会提供安全兜底。第三方 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外部依赖

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

4管控建议与判定依据

建议配套管控措施
面向 Agent
可自动加载
面向管理者
登记来源与版本
判定依据(文件路径与关键语句摘要)
  • SKILL.md: 纯提示词指令与规则文本,无脚本执行与外部影响
审计说明: 。按六档口径逐项核对(判级对象=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)规范的场景,本教义不涉及。
    Install Agent-Ready
    ① Verified Mirror 2026-09-28
    Option A · Direct DownloadDownload captions-overlay.tar.gz
    sha256: 4983e91a90bd624b…
    Option B · Copy Guide for Agent
    install.json
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit d2f0bc7f34.