全部技能 / 内容创作 / faceless-explainer
内容创作 · heygen-com/hyperframes

faceless-explainer

Turn arbitrary text — an article, notes, a topic, a brief — into a faceless explainer video: there is no site or footage to capture, so the visuals are invented per scene (typography, abstract graphics, diagrams, data-viz). Use for topic explainers, concept breakdowns, how-tos, listicles. Not a video built from a website (/product-launch-video — promo or tour). Unclear → /hyperframes.

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

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

核心前提是「无素材可抓」:刻意不做 capture、不建 asset-descriptions.md、不 populate capture/assets/,画面全部在下游被发明(排版/抽象图形/图表/数据可视化)。

skills/faceless-explainer/SKILL.md
Do **not** run `npx hyperframes capture` (there is no URL). Do not create `asset-descriptions.md` or populate `capture/assets/` — faceless visuals are invented in Steps 4-5, not captured.
注:这里在做什么:与同批 product-launch-video 共用同一条六步流水线(同样的 Step 0/3/6 用户门禁、同样的脚本名),但把 Step 1 的抓取换成「把用户文本原样存成 visible-text.txt + 手造一个 tokens.json」。Quick Reference 里专门列了『Faceless deltas vs a captured-asset workflow』四项差异。

设计系统不靠手写调色:选定一个 shipped frame preset 后,由 build-frame.mjs 把 preset 的 FRAME.md 重映射成项目 frame.md 并生成 caption skin;无品牌色时保留 preset 自身完整配色。

skills/faceless-explainer/SKILL.md
A faceless explainer usually has **no brand colors/fonts** (`tokens.json` colors/fonts empty) → the script keeps the preset's own palette, a complete shippable design.
注:这里在做什么:把「设计系统」退化成一次选型(挑 preset)+ 一条确定性命令,作者不手改规格('no hand-editing of the spec'),脚本自校验失败即 exit 1。

故事顺序来自叙事设计而非输入文本的段落顺序:明确要求重排/合并/省略/压缩,并按「角色→蓝图」菜单给每个 beat 选候选镜头形状,但禁止为了套形状而造 beat。

skills/faceless-explainer/SKILL.md
The video's sequence comes from **narrative design, not the input text's paragraph order** — reorder, merge, omit, compress.
注:这里在做什么:素材是一篇文章/一堆笔记,最偷懒的做法是按段落顺序逐段配图;本 skill 在 Step 3 明确禁止这种做法,并要求 blueprint 只是**软指引**('Teaching truth still decides which beats exist — never force a beat to fit a blueprint')。

配音与音乐走媒体侧脚本:可指定 voice/provider,默认声线写死在流程里(HeyGen Marcia / Kokoro am_michael),并定义「完全静音」的规范标记组合。

skills/faceless-explainer/SKILL.md
The pipeline default is otherwise **Marcia (female)** on HeyGen / `am_michael` on Kokoro — so a request like "a male voice" is silently ignored unless you pass the flag.
注:这里在做什么:把「用户说了男声但默认是女声」这种静默失配写成显式警告,要求先解析 provider 再取 voice id。静音标记是 `music: none`(STORYBOARD 顶部 YAML)+ 无 SCRIPT.md,audio.mjs 识别后会清掉陈旧 audio_meta.json(absent = 静音),Step 5 的 duration sync 与 fetch-sfx 一并跳过。

构建期一帧一个子代理:packet 构建器把「该帧的 storyboard 块 + blueprint 正文 + 所有引用规则」内联成有界 packet,再拼出完整 worker 角色文件 _role.md,worker 只读这两份文档。

skills/faceless-explainer/SKILL.md
Workers read only their packet and `frame.md`; they never open `STORYBOARD.md` or the skill documents (the packet inlines what was selected upstream). Each worker writes only `compositions/frames/NN-*.html`. Workers must never edit `STORYBOARD.md`.
注:这里在做什么:把上下文隔离做成硬约束——worker 看不到全局,因此不会越权改故事板;编排者负责在 worker 返回后把该帧标成 animated。帧的地面(纯色/渐变/网格)被要求挂在 `class="clip"` 图层上而不是 #root,理由是 #root 的背景会被 clip 门控到帧窗口,暗色内容可能落到黑色 body 上渲染不可见。

收尾门禁 + 一个被显式登记的已知假阳性:check 可能在 caption 词上报 1–4px 的 text_box_overflow,skill 要求不要追它、也不要用放大 line-height 的坏办法掩盖。

skills/faceless-explainer/SKILL.md
**Known false-positive — do not chase it.** `check` may report a handful of `text_box_overflow` findings of ~1–4px on the **caption** highlight words (selector `#caption-word-*` / `.caption-line`).
注:这里在做什么:把「工具噪声 vs 真缺陷」的判据写进流程(只有指到帧元素 `#el-NN-*` 时才需要处理),并警告不要用 inflate line-height 的方式掩盖——这属于把工程经验固化成纪律,减少 agent 在假阳性上空转。

审核与渲染门禁:先 inject/verify 转场、lint、check、snapshot 接触表,再暂停给用户看 Studio 预览,最后才渲染 MP4;渲染后不再重跑 lint/check/snapshot。

skills/faceless-explainer/SKILL.md
**Gate:** `lint` and `check` passed and the snapshots were inspected before render; user approved at the review pause (autonomous: checks passed and the delivery includes the contact sheet); `renders/video.mp4` exists. Final reply states MP4 path and final duration.
注:这里在做什么:把「检查通过」与「人类看过」分成两个条件;autonomous 模式下退化为「先问预览还是直接渲染」这一个保留问题(来自 brief-contract 的规范问句)。

2核心能力

01任意文本 → 无脸解说片(题目解说、概念拆解、how-to、listicle),视觉全部现场发明
02合成式输入包:把用户全文原样存证 + 手造最小 tokens.json(title/description/可选品牌色字体),保留用户自带脚本(VO_MODE verbatim/restructured)
03一脚本设计系统:preset → frame.md + caption skin(含品牌 token 按角色重映射与自校验)
04解说结构设计:hook 策略、价值先于证据、清晰度技巧、情绪节拍、类型枚举映射与 VO_MODE
05逐帧视觉设计(时间编码镜头序列 + 内联 Layout/运动词表 + 视频级 ## Video direction 块),并发音轨起步
06并行逐帧构建(一帧一子代理,packet + _role.md)与字幕/装配流水线(captions 后台 + assemble-index)
07静音项目的规范处理(music: none + 无 SCRIPT.md 的组合语义,含清理陈旧 audio_meta.json)
08协作模式下的草稿板(sketch pass):先给每帧线框、拼满后只问一个版面问题、只改被点名的草稿

3外部依赖

类型依赖
clihyperframes CLI(init / lint / check / snapshot / preview / render / skills update;注意本 skill 不调用 capture)
apiHeyGen(TTS 与音乐库检索;凭证 ~/.heygen,由媒体侧脚本使用)
api本地离线 TTS(Kokoro)作为无登录态降级路径
cliffprobe / ffmpeg(装配期音频探测与补齐,由 assemble-index.mjs 调用)
networkGSAP CDN(写进装配产物 HTML,带 SRI 完整性校验)
climedia-use 侧脚本(prefs.mjs 记偏好、recipe.mjs 应用配方、heygen-tts.mjs 列语音)
package兄弟 skill 依赖(/hyperframes 路由、/hyperframes-core、/hyperframes-creative 的 frame-presets、/hyperframes-animation 的 blueprints+rules、/media-use)

4风险提醒 风险提醒:橙色 · 评估后使用

风险提醒:橙色 · 评估后使用
  • 核心音频能力依赖外部账号凭证(~/.heygen) — TTS 与音乐库检索走 HeyGen,可能产生费用与数据出境(文本/脚本会被送到该服务);未登录才走本地 Kokoro。使用前需确认账号与额度,且不要在处理敏感文本时误用在线引擎。
  • 用户长文本直接进入模型上下文 — 文章/笔记/题目被原样写入项目文件并成为故事与画面内容来源;若文本含指令式语句,理论上可影响编排者与各 worker 的输出。这是内容层注入面,本 skill 无隔离机制。(相较 product-launch-video 少了『不可信远端页面』这一层。)
  • 视觉质量高度依赖 blueprint/rule 库与模型发挥,可验证性有限 — 无脸视频的画面是现场发明的,正确性只能靠 check/lint 的结构门禁 + 接触表肉眼判断;『教学是否讲清』这类语义质量无自动判据。
  • 并行 worker 增加成本且依赖宿主子代理能力 — Step 5 一帧一个子代理,需要宿主支持并行子代理;不支持时只能串行,时长显著上升。worker 具备宿主工具权限,边界靠 packet 与 _role.md 的文字约束。
  • 产出 HTML 依赖外部 CDN([email protected]) — 装配结果的可见性依赖 jsdelivr 可达(虽有 SRI);离线渲染环境需自行内联。
  • 跨 skill 依赖面广 — 需要 hyperframes CLI 与 /hyperframes-core、/hyperframes-creative(frame-presets)、/hyperframes-animation(rules/blueprints)、/media-use 同时就位,缺任一项流程失效。
风险提醒:橙色,评估后使用。触发橙档的是**凭证面**:音频步骤使用 ~/.heygen 登录凭证调 HeyGen(语音合成 + 音乐库检索),未登录才走本地 Kokoro;同时流程要求把 `npx hyperframes auth status` 的输出原样转述给用户(属于把账号状态带进对话)。除此之外行为面干净:本 skill 不做网页抓取、不探测视觉 key(这一点与 product-launch-video 明显不同),17 个脚本零 HTTP 调用,产出 HTML 引用的 CDN 资源带 SRI。之所以不落黄色而是橙色,是因为『依赖外部账号凭证 + 第三方服务完成核心功能』本身需要使用者评估(可能产生费用与数据出境)。

5第二遍独立确认

  • [ok] 『无抓取、无视觉 key』这一关键差异是否属实 — 整目录 grep GEMINI/GOOGLE_API_KEY/OpenRouter → 0 命中;SKILL.md 明确 'Do **not** run `npx hyperframes capture` (there is no URL).';URL 扫描仅 2 处(同一 gsap CDN 字符串出现在 assemble-index.mjs 与 captions.mjs)。差异成立。
  • [discrepancy] 是否与 product-launch-video 真正共享脚本(第一遍的资产描述是否正确) — 第一遍初稿把本 skill 写成『无 build-frame』——复核发现**错误**:Step 2 原文就是 `node <SKILL_DIR>/scripts/build-frame.mjs --preset <name> --hyperframes .`,scripts/ 下确有 build-frame.mjs。真实差异是:本 skill 无 capture(Step 1 改为手造输入包)、无 stage-assets(SKILL.md 写明 'There is **no asset-staging step**'),而 build-frame / audio / captions / transitions / frame-packets / assemble-index 六个脚本两家都有。已按源码更正 analysis 与 internal_assets 的表述。
  • [ok] 『外部资源』逐条回查调用点 — hyperframes init/lint/check/snapshot/preview/render 均在 SKILL.md 出现;HeyGen 与 ~/.heygen 在 Step 3.1 原文;Kokoro 离线降级与 am_/bm_ 前缀在 Step 3.1 原文;prefs.mjs/recipe.mjs 在 Step 0 原文并定义了 <MEDIA_DIR>;ffprobe/ffmpeg 在 assemble-index.mjs 的 spawnSync 可验。
  • [ok] 静音标记的实现语义是否与文档一致 — SKILL.md 规定 `music: none` + 无 SCRIPT.md = 全静音,且『audio.mjs recognizes it and generates nothing (it removes any stale audio_meta.json; an absent audio_meta.json is what assemble treats as silent)』;Step 5 的 sync-durations / fetch-sfx 在静音时跳过。语义自洽(以「文件不存在」作为静音的真值载体)。
  • [unlocatable] 正文自述的已知假阳性是否真实存在于工具链 — SKILL.md 声称 `check` 会在 caption 高亮词上报 1–4px 的 text_box_overflow(选择器 `#caption-word-*` / `.caption-line`),且该 pill 的 snug line-height 由 scripts/captions.mjs 设定。caption pill 的 line-height 设定可在本 skill 的 captions.mjs 中定位,但『该假阳性确实会出现』这一行为需要实际跑 `npx hyperframes check` 才能证实——本任务为只读侦查,未执行构建/渲染(亦被任务书禁止)。故记为无法在源码内定位,不做进一步断言。

6结论

  • 把「没有素材」当成设计前提而不是缺陷:明确禁止伪造资产清单,视觉全部在下游发明
  • 故事顺序纪律:叙事设计优先于输入文本段落顺序,且 blueprint 只是软指引,不许为套形状造 beat
  • 并行 worker 的上下文隔离是硬约束(只读自己的 packet + frame.md,禁止碰 STORYBOARD)
  • 静音与声线这类易错点被显式规范(music: none 组合语义、默认女声会吞掉男声诉求)
  • 门禁与审批链完整:lint/check/snapshot 通过 + 用户看过预览才渲染,渲染后不重复跑检查
  • 已知工具假阳性被登记为流程纪律,避免 agent 在噪声上空转或用坏办法掩盖
  • 适合:适合手里只有文字(一篇文章、一堆笔记、一个题目或一份 brief)而完全没有素材/网站的口播型解说视频:概念拆解、how-to、listicle,或需要把长文压缩成有教学节奏的短片。也适合需要中英双语场景——TTS 走 HeyGen 或本地 Kokoro,字幕与故事板格式与其它 HyperFrames workflow 一致(便于复用同一套项目目录习惯)。
    不适合:不适合:① 有网站或产品要展示的推广/导览片——应走 /product-launch-video(description 点名);② 短、无旁白、以动效为主的作品——应走 /motion-graphics;③ 需要真实素材(实拍、截图、产品图)的片子——本 skill 明令不抓取、不建资产清单,唯一例外是用户自己放进 public/<basename> 的单张图;④ 不想使用任何外部账号/凭证的纯离线场景(音频默认依赖 HeyGen,仅部分可降级到 Kokoro);⑤ 期望无审批直出——Step 0/3/6 有用户门禁;⑥ 要求严格按原文章节顺序逐段配图的场景(本 skill 明确要求重排/合并/省略)。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-09-15
    方式 A · 人下载镜像包下载 faceless-explainer.tar.gz
    sha256: 2b565aaa0ac76062…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit b8328f9573;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库heygen-com / heygen-com/hyperframes
    Stars44283
    最近推送2026-09-06
    本 skill commitb8328f9573
    许可Apache-2.0(仓库根 LICENSE 为 Apache License Version 2.0;池内值亦为 Apache-2.0)
    本站信息
    收录日期2026-09-06
    分类内容创作
    侦查报告AI 侦查 · 2 遍 · 2026-09-06
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。
    同分类邻近