general-video
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesegeneral-video — general composition authoring
general-video — 通用合成创作
Confirm the route before you build. This is the fallback for custom composition authoring. If the input clearly fits a specialized workflow, prefer it: marketed product →; general site →/product-launch-video; topic explainer →/website-to-video; GitHub PR →/faceless-explainer; existing footage →/pr-to-video·/embedded-captions; short unnarrated motion graphic →/graphic-overlays; Remotion port →/motion-graphics. Out of scope: live / at-render-time data, NLE-style editing of a finished video, or producing footage HyperFrames can't capture. Unsure? Read/remotion-to-hyperframesfirst./hyperframes-read-first
Build exactly what was asked. A title card is a title card — not a title card + three supporting scenes + ambient music + captions. If extra scenes or elements would genuinely improve the piece, propose them; don't add them silently. For small edits (fix a color, adjust one duration, add one element), skip the planning steps and go straight to the build.
开始制作前请确认路径。这是自定义合成创作的兜底方案。如果输入明显适合某个专门工作流,请优先选择:营销产品 →;通用网站 →/product-launch-video;主题讲解 →/website-to-video;GitHub PR →/faceless-explainer;现有素材 →/pr-to-video·/embedded-captions;无旁白短动态图形 →/graphic-overlays;Remotion迁移 →/motion-graphics。超出范围:实时/渲染时数据、对成品视频进行非线性编辑(NLE)风格的剪辑,或制作HyperFrames无法捕获的素材。不确定?先阅读/remotion-to-hyperframes。/hyperframes-read-first
严格按照需求制作。标题卡就是标题卡——不要额外添加三个辅助场景、环境音乐和字幕。如果额外场景或元素确实能提升作品质量,请提出建议;不要擅自添加。对于小修改(调整颜色、修改单个时长、添加一个元素),可跳过规划步骤直接开始制作。
Approach
方法
Discovery — open-ended requests only
探索阶段 — 仅适用于开放式需求
For vague, exploratory requests ("make something for our brand", "a cool intro") — understand intent before picking colors:
- Audience — who watches? developers / executives / general consumers?
- Platform — where does it play? social (15s) / website hero / product demo / internal?
- Priority — what matters most? motion quality / content accuracy / brand fidelity / speed?
- Variations — one best shot, or 2-3 meaningfully different options (different pacing, energy, or structure — not just color swaps)?
For specific requests ("add a title card", "fix the timing on scene 3"), skip discovery.
对于模糊、探索性的需求(如“为我们的品牌制作一些内容”“一个酷炫的片头”)——在选择颜色前先明确意图:
- 受众 — 谁会观看?开发者/高管/普通消费者?
- 平台 — 在哪里播放?社交平台(15秒)/网站首屏/产品演示/内部使用?
- 优先级 — 最重要的是什么?动效质量/内容准确性/品牌一致性/制作速度?
- 变体 — 提供一个最佳版本,还是2-3个有显著差异的版本(不同节奏、风格或结构——而非仅颜色差异)?
对于明确的需求(如“添加一个标题卡”“调整第3场景的时长”),跳过探索阶段。
Step 1 — Design system → hyperframes-creative
hyperframes-creative步骤1 — 设计系统 → hyperframes-creative
hyperframes-creativeEstablish the visual identity first. If the project has a design spec, read it (precedence → → ; treat it as brand truth — exact colors, fonts, constraints).
frame.mddesign.mdDESIGN.mdIf no spec exists, you MUST read BOTH AND before choosing any color or font. gives the "interpret the prompt / generate real content" opener, lazy-default list, and layer recipe; gives the video-medium density / scale / foreground detailing (data bars, registration marks, monospace metadata, "8-10 elements, two the user didn't ask for") that separates "produced" from "generated." Reading only one is the most common miss — is the one agents skip, and it is exactly the one that prevents flat, centered, web-page-looking output. Do not self-invent a palette and skip these; crossing into is mandatory here, not an optional branch. From there, also pull a named style/mood → , or the interactive picker → , as needed. The spec/style defines the brand, not the composition rules.
hyperframes-creative/references/house-style.mdhyperframes-creative/references/video-composition.mdhouse-style.mdvideo-composition.mdvideo-composition.mdhyperframes-creativereferences/visual-styles.mdreferences/design-picker.mdFind the angle (vague brief, no spec): before picking colors, write ONE sentence — what does this name/word/topic evoke, and what visual world (metaphor, setting, instrument, motif) expresses it? E.g. a cybersecurity tool → vault doors / perimeter scan lines / lock tumblers; a meditation app → tide, breath, slow light bloom. Read the meaning of the subject, not just its letters; pick a concrete angle over a literal restyle. This is the cheap substitute for prompt expansion (Step 2) on single-scene pieces, where expansion is correctly skipped — and it is the difference between a designed concept and a generic logo-on-a-gradient.
<HARD-GATE>
Before writing ANY composition HTML, verify you have ALL FOUR:
1. **A visual identity** grounded in the spec or `house-style.md` — not invented on the spot. (Reaching for `#333`, `#3b82f6`, or `Roboto`? You skipped it.)
2. **A one-sentence concept angle** (the "find the angle" step) for anything beyond a trivial edit — not a literal restyle of the prompt words.
3. **A font pairing from the embed list** (`hyperframes-creative/references/typography.md` → "Fonts that embed") chosen on purpose — not `Inter`/`Helvetica Neue`/`system-ui` by default, and never an un-embedded display font you're just hoping renders (un-bundled names embed only if auto-captured locally — and cloud renders won't capture them).
4. **A foreground/density plan from `video-composition.md`** — the anchor-to-edges, 8-10-elements, foreground-metadata, background-texture rules. (Centered stack on a flat color with fewer than ~6 elements and no edge-anchored detail? You skipped it — that is the generic tell.)
</HARD-GATE>首先确立视觉标识。如果项目有设计规范,请阅读(优先级: → → ;将其视为品牌准则——严格遵循颜色、字体、约束条件)。
frame.mddesign.mdDESIGN.md如果没有规范,你必须在选择任何颜色或字体前阅读和。提供了“解读需求/生成真实内容”的开篇指南、默认选项列表和图层制作方法;给出了视频媒介的密度/比例/前景细节(数据条、定位标记等宽元数据、“8-10个元素,其中2个是用户未要求的”),这是区分“专业制作”与“AI生成”的关键。只阅读其中一个是最常见的失误——是Agent常忽略的部分,但它恰恰能避免产出平淡、居中、类似网页的内容。不要自行创建调色板并跳过这些步骤;必须参考,而非可选分支。在此基础上,还可根据需要选用指定风格/氛围→,或交互式选择器→。规范/风格定义了品牌,而非合成规则。
hyperframes-creative/references/house-style.mdhyperframes-creative/references/video-composition.mdhouse-style.mdvideo-composition.mdvideo-composition.mdhyperframes-creativereferences/visual-styles.mdreferences/design-picker.md确定创作角度(模糊需求且无规范):在选择颜色前,写下一句话——这个名称/词汇/主题能唤起什么联想,用什么样的视觉场景(隐喻、设定、元素、主题)来表达?例如,网络安全工具→保险库门/边界扫描线/锁芯;冥想应用→潮汐、呼吸、缓慢的光效绽放。解读主题的内涵,而非仅字面意思;选择具体的创作角度而非字面重构。这是单场景作品中替代提示词扩展(步骤2)的低成本方法——而这正是区分设计概念与通用渐变Logo的关键。
<HARD-GATE>
在编写任何合成HTML前,请确认你已具备以下四点:
1. **视觉标识**:基于规范或`house-style.md`——而非临时自创。(如果你想用`#333`、`#3b82f6`或`Roboto`?说明你跳过了这一步。)
2. **一句话创作角度**(“确定创作角度”步骤):适用于除微小修改外的所有内容——而非对需求文字的字面重构。
3. **从嵌入字体列表中选择的字体搭配**(`hyperframes-creative/references/typography.md` → “可嵌入字体”):需有明确选择依据——不要默认使用`Inter`/`Helvetica Neue`/`system-ui`,绝不要使用未嵌入的显示字体(未打包的字体仅在本地自动捕获时可嵌入——云渲染无法捕获)。
4. **来自`video-composition.md`的前景/密度规划**:边缘锚定、8-10个元素、前景元数据、背景纹理规则。(如果是居中堆叠在纯色背景上,元素少于约6个且无边缘锚定细节?说明你跳过了这一步——这是通用AI生成内容的典型特征。)
</HARD-GATE>Step 2 — Prompt expansion → hyperframes-creative
hyperframes-creative步骤2 — 提示词扩展 → hyperframes-creative
hyperframes-creativeRun for every multi-scene composition (skip for single-scene pieces and trivial edits). Ground the request against the design spec + house style into a consistent intermediate that downstream work reads the same way. See .
hyperframes-creative/references/prompt-expansion.md适用于所有多场景合成(单场景作品和微小修改可跳过)。将需求与设计规范+品牌风格结合,生成一致的中间内容,确保下游工作解读一致。参见。
hyperframes-creative/references/prompt-expansion.mdStep 3 — Plan
步骤3 — 规划
Before writing HTML, think at a high level:
- What — the viewer experience: narrative arc, key moments, emotional beats.
- Structure — how many compositions, sub-comp vs inline, which tracks carry video / audio / overlays / captions. For the monolithic-single-file vs modular-sub-comp call, see § Two Architectures (rule of thumb: ≥3 hard scene cuts, or any reused scene → modularize; a short single-scene piece stays one file).
hyperframes-core/references/composition-patterns.md - Rhythm — name the pattern before implementing (e.g. ); see
fast-fast-SLOW-SHADER-hold.hyperframes-creative/references/beat-direction.md - Timing — which clips drive duration, where transitions land, the pacing.
- Layout — build the end state first (see below).
- Animate — then add motion via .
hyperframes-animation
编写HTML前,先进行高层级思考:
- 内容体验:观众体验——叙事弧线、关键节点、情感节奏。
- 结构:需要多少个合成、子合成还是内联、哪些轨道承载视频/音频/叠加层/字幕。关于单文件整体结构与模块化子合成的选择,参见§ 两种架构(经验法则:≥3个硬场景切换,或有重复场景→模块化;短单场景作品保持单文件)。
hyperframes-core/references/composition-patterns.md - 节奏:实现前先确定节奏模式(如);参见
fast-fast-SLOW-SHADER-hold。hyperframes-creative/references/beat-direction.md - 时长:哪些片段决定时长、转场位置、整体节奏。
- 布局:先构建最终状态(见下文)。
- 动效:然后通过添加动效。
hyperframes-animation
Layout Before Animation
先布局,后动效
Position every element where it sits at its most visible moment — fully entered, correctly placed, not yet exiting. Write that as static HTML + CSS first. No GSAP yet.
Why: if you position elements at their animated start state (offscreen, scaled to 0, opacity 0) and tween to where you think they land, you are guessing the final layout — overlaps stay invisible until render. Build the end state first and you see and fix layout problems before adding motion.
- Identify the hero frame for each scene — the moment the most elements are simultaneously visible. That is the layout you build.
- Write static CSS for that frame. The content container must fill the scene with padding, not absolute offsets:
css
.scene-content {
display: flex;
flex-direction: column;
justify-content: center;
width: 100%;
height: 100%;
padding: 120px 160px; /* padding positions content; fills any scene size */
gap: 24px;
box-sizing: border-box;
}Never use on a content container — it overflows when content is taller than the space. Reserve absolute positioning for decoratives.
position: absolute; top: Npx⚠ Theabove only resolves if every ancestor has a resolved height. The rootwidth/height: 100%and any wrapper between it and<div data-composition-id>must be sized (.scene-contenton the root — seeposition: relative; width: 1920px; height: 1080px→ "Root must be sized"). Skip this and the flex container collapses to ~0, content piles into the top-left corner, and the first glyph clips at x=0 — whilehyperframes-core/lintstill report 0 issues. And always keep theinspect(≥80px) onpadding: it is the title-safe margin. Never replace it with bare.scene-content.gap
- Add entrances — animate FROM offscreen/invisible TO the CSS position with (in sub-compositions prefer
gsap.from()so the start state is explicit; seegsap.fromTo()). The CSS position is ground truth; the tween is the journey to it.hyperframes-core/references/sub-compositions.md - Exits are transition-handled — per the scene-transition rules in , only the final scene animates elements out; between scenes the transition IS the exit.
hyperframes-animation/transitions/
Shared space across time: if element A exits before element B enters in the same area, both still need correct CSS positions for their respective hero frames — timeline ordering keeps them from coexisting, and the layout step catches accidental overlap. Layered glows/shadows and z-stacked depth are intentional overlap; the step is about catching unintentional collisions (two headlines on top of each other, content bleeding off-frame).
将每个元素定位到其最清晰可见的时刻——完全进入画面、位置正确、尚未退出。先编写静态HTML + CSS。暂不使用GSAP。
原因:如果你将元素定位在动画起始状态(屏幕外、缩放为0、透明度0)并补间到你预期的最终位置,你是在猜测最终布局——重叠问题在渲染前无法察觉。先构建最终状态,你可以在添加动效前发现并修复布局问题。
- 确定每个场景的核心帧——最多元素同时可见的时刻。这就是你要构建的布局。
- 为该帧编写静态CSS。内容容器必须通过内边距填充场景,而非绝对偏移:
css
.scene-content {
display: flex;
flex-direction: column;
justify-content: center;
width: 100%;
height: 100%;
padding: 120px 160px; /* padding positions content; fills any scene size */
gap: 24px;
box-sizing: border-box;
}绝不要对内容容器使用——当内容高度超过空间时会溢出。仅将绝对定位用于装饰元素。
position: absolute; top: Npx⚠ 上述仅在所有祖先元素高度已确定时生效。根元素width/height: 100%及其与<div data-composition-id>之间的任何包装器都必须设置尺寸(根元素设置.scene-content——参见position: relative; width: 1920px; height: 1080px→ “根元素必须设置尺寸”)。跳过这一步会导致flex容器收缩至约0,内容堆积在左上角,第一个字符在x=0处被截断——而hyperframes-core/lint仍会报告无问题。并且始终保留inspect的内边距(≥80px):这是标题安全边距。绝不要仅用.scene-content替代它。gap
- 添加入场动效——使用从屏幕外/不可见状态动画到CSS定位的位置(子合成中优先使用
gsap.from(),以便明确起始状态;参见gsap.fromTo())。CSS定位是基准;补间是到达基准的过程。hyperframes-core/references/sub-compositions.md - 退场由转场处理——根据中的场景转场规则,只有最后一个场景需要将元素动画退场;场景间的转场即为退场。
hyperframes-animation/transitions/
跨时间共享空间:如果元素A在元素B进入同一区域前退场,两者仍需为各自的核心帧设置正确的CSS位置——时间线顺序会避免它们同时存在,布局步骤会发现意外重叠。分层发光/阴影和z轴堆叠深度是有意的重叠;此步骤旨在发现无意的碰撞(两个标题重叠、内容溢出画面)。
Build — delegate to the domain skills
制作 — 委托给领域技能
This maps the skill's full surface (see the ) to its references — non-exhaustive; when an intent isn't listed, route through (look/concept), (motion), (contract), (audio/captions). The first row is ADDITIVE — read it AND your intent row, not one or the other.
descriptionhyperframes-creativehyperframes-animationhyperframes-corehyperframes-media| Building… | Read first (in order) |
|---|---|
| ALWAYS — every non-trivial piece, on top of your intent row below | |
| Kinetic typography / text-forward | |
| Title card / lower-third / overlay / PiP / text-behind-subject | |
| Logo / brand-mark reveal | |
| Data / stats / numbers | |
| Product / app / UI demo | |
| Audio-reactive / music-driven | |
| Narrated / voiceover / captions / subtitles | |
| Multi-scene / transitions | |
| Modular / sub-compositions | |
这将技能的完整范围(参见)映射到其参考文档——非详尽列表;当意图未列出时,通过(视觉/概念)、(动效)、(规范)、(音频/字幕)进行处理。第一行是附加要求——需同时阅读第一行和对应意图行,而非二选一。
descriptionhyperframes-creativehyperframes-animationhyperframes-corehyperframes-media| 制作内容… | 优先阅读(按顺序) |
|---|---|
| 始终适用——所有非微小作品,需结合下方对应意图行 | |
| 动态文字 / 文字主导内容 | |
| 标题卡 / 下三分之一字幕 / 叠加层 / 画中画 / 文字置于主体后方 | |
| Logo / 品牌标识展示 | |
| 数据 / 统计 / 数字 | |
| 产品 / 应用 / UI演示 | |
| 音频响应 / 音乐驱动 | |
| 旁白 / 语音解说 / 字幕 / 副标题 | |
| 多场景 / 转场 | |
| 模块化 / 子合成 | |
Output checklist → hyperframes-cli
hyperframes-cli输出检查清单 → hyperframes-cli
hyperframes-cli- and
npx hyperframes lintpass (block on results)npx hyperframes validate - design adherence verified if a spec (/
frame.md) exists — checklist indesign.mdhyperframes-creative/references/design-adherence.md - passes, or every overflow is intentionally marked
npx hyperframes inspect - contrast warnings addressed; for multi-scene work, review the animation map ()
hyperframes-animation/scripts/animation-map.mjs - deliver the preview; render to MP4 only on explicit request
- surface the preview only at handoff (it is the stable, final preview); don't pop one mid-build — build-phase snapshots are headless
- 和
npx hyperframes lint通过(需根据结果修改)npx hyperframes validate - 如果有规范(/
frame.md),已验证符合设计要求——检查清单见design.mdhyperframes-creative/references/design-adherence.md - 通过,或所有溢出均已标记为有意为之
npx hyperframes inspect - 已处理对比度警告;对于多场景作品,已检查动效映射()
hyperframes-animation/scripts/animation-map.mjs - 交付预览版;仅在明确要求时渲染为MP4格式
- 仅在交付时提供预览(这是稳定的最终预览);制作过程中不要提供预览——制作阶段的快照为无头渲染结果
Not this workflow
不属于此工作流的场景
- A specific product / company / SaaS / website being marketed, launched, or promoted →
/product-launch-video - A concept / topic / article / how-X-works being explained, no product →
/faceless-explainer - A GitHub PR / code change →
/pr-to-video - An existing talking-head video to add captions to →
/embedded-captions - Porting an existing Remotion composition →
/remotion-to-hyperframes - Cutting / editing a finished video file like an NLE → out of scope (HyperFrames composites HTML and media into a deterministic timeline; it does not edit footage)
- 正在营销、发布或推广的特定产品/公司/SaaS/网站 →
/product-launch-video - 讲解概念/主题/文章/原理,无产品内容 →
/faceless-explainer - GitHub PR/代码变更 →
/pr-to-video - 为现有访谈视频添加字幕 →
/embedded-captions - 迁移现有Remotion合成 →
/remotion-to-hyperframes - 像非线性编辑器(NLE)一样剪辑/编辑成品视频文件 → 超出范围(HyperFrames将HTML和媒体合成为确定性时间线;不支持素材剪辑)