Communitygithub.com

heygen-com/hyperframes

既存のトーキングヘッド/インタビュー/ポッドキャスト動画に、タイミングを合わせたデザイン性の高いグラフィックオーバーレイカード(キネティックタイトル、ローワーサード、データコールアウト、引用、サイドパネル、ピクチャー・イン・ピクチャー)をパッケージ化します。台本に同期し、選択した16:9/9:16/4:5のキャンバス上で、クリップそのものはそのまま再生されます。

hyperframes とは?

このスキルは、既存のトーキングヘッド動画(インタビュー、ポッドキャストなど)に、**デザイン性の高いグラフィックカード**(タイトル、ローワーサード、データコールアウト、引用、サイドパネル、ピクチャー・イン・ピクチャー)を重ねて、専門的な雰囲気の動画に仕上げます。動画の音声はそのまま再生され、グラフィックカードは台本に完全に同期します。 `/hyperframes` ルートを経由してアクセスし、`hyperframes` CLIを使用します。トランスクリプションはローカルのWhisper(APIキー不要)で行い、カードのデザインとHTMLはエージェントが会話内で直接作成し、最終的な合成HTMLを生成してMP4にレンダリングします。 主なプラットフォームはClaude Code、Cursor、CodexなどのAIエージェント向けで、動画編集の専門知識がなくても、AIの指示だけで高品質なグラフィックオーバーレイ動画を作成できるように設計されています。`embedded-captions`(プレーンな字幕)とは異なり、こちらは視覚的なデザイン要素を追加します。 ワークフローは、環境チェック、作業ディレクトリ作成、メタデータと音声の抽出、Whisperによる文字起こし、文字起こしの修正、ストーリーボードの作成、カードHTMLの記述、最終的な合成、レンダリングの順で進みます。カードの数やタイミングは、動画の長さと情報密度から自動的に推奨されます。

対応~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/heygen-com/hyperframes/tree/main/skills/talking-head-recut

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

プラグインのインストール: セットアップや更新コマンドの前に、このスキルがHyperFramesプラグイン内にある場合は、プラグイン実行ルール に従ってください。スタンドアロンインストールの場合は、以下の更新手順を参照してください。

最初に、このスキルを最新の状態に保ってください — ユーザーに確認してから実行: npx hyperframes skills update talking-head-recut。すべてが最新の場合は高速なno-opで終わり、そうでなければこのスキルとそれが依存するコアドメインスキルを更新してから作業を開始します。

トーキングヘッド・リカット

Talking Head Recutは、ローカル動画をそのままフル再生し、その上にタイミングを合わせたデザイン性の高いグラフィックカード(タイトル、ローワーサード、データコールアウト、引用、サイドパネル、ピクチャー・イン・ピクチャー)を重ねます。これは話されている内容に同期します。エージェントはカードのデザイン(タイミング+内容)を行い、各カードのHTMLを会話内で直接記述し、単一の合成HTMLをアセンブルして hyperframes 経由でMP4にレンダリングします。固定されたアーキタイプリストや所定のカード構造はなく、オーバーレイは実際の書き起こしから自然に生成されます。

フロントドアは /hyperframes です。 このスキルは、既存のトーキングヘッドクリップをデザイン性の高いグラフィックカード(タイトル、ローワーサード、データコールアウト、引用、サイドパネル、PiP)でパッケージ化します — プレーンなキャプション(話し言葉をテキストとして表示)ではありません。クリップはそのまま再生されます。 その他の意図 — プレーンな字幕、スタンドアロンのグラフィック、ゼロからの動画作成 — または不明な点があれば → まず /hyperframes を読んでください:インテントレイヤーがすべてのルートの決定を担当します。

embedded-captions のグラフィックパッケージ版(兄弟関係)。 キャプションは_話し言葉_を読みやすい字幕として追加します。これに対して、このスキルは再生中の動画の上に_デザインされたグラフィック_を追加します。プレーンな字幕 → embedded-captions。ゼロから動画を作成する場合 → 作成ワークフロー(product-launch-video / faceless-explainer / …)。

/hyperframes 経由でルーティングされた場合、インテントレイヤーは入力(どのクリップか)のみを確認し、レンダリング戦略に関する質問は先送りされた質問として通知します — アスペクト比、レイアウト、スタイルグループ、カード数はステップ7で、プローブされたフッテージと書き起こしに基づいて推奨されます。レイヤーの実行形状に関する質問は適用されません。BRIEF.md が存在する場合、確認された入力とユーザーノートが含まれています — 最初に読んでください。

調査可能な中間ファイル(作業ディレクトリ内):

  • metadata.json — 長さ / 幅 / 高さ / fps
  • audio.mp3 — 抽出された音声
  • transcript.json — フラットな単語配列 [{ text, start, end }, …](Whisper; segmentsやwordsラッパーはなし)
  • storyboard.json — 簡易カードアウトライン(エージェントの計画)
  • public/cards/card-XX.html — カードごとのHTML断片
  • public/index.html — 最終的な合成構成
  • output.mp4 — レンダリングされた動画

CLI解決

# hyperframes — 文字起こし(ローカルWhisper)+ アセンブルされたHTMLのMP4へのレンダリング
npx hyperframes --help

このスキルは完全に hyperframes CLIとシステムの ffmpeg / ffprobe 上で動作します。文字起こしはローカルの Whisper を hyperframes transcribe 経由で使用します — サードパーティサービス、APIキー、レート制限のあるプロキシは不要です。

ワークフロー

1. 環境の確認

npx hyperframes doctor          # ffmpeg, ヘッドレスブラウザ, レンダリング依存関係
# バンドルされたアセットの確認:
ls "<SKILL_DIR>/assets/fonts" "<SKILL_DIR>/assets/vendor/gsap.min.js"

必要条件:

  • ffmpeg / ffprobe(システム)
  • <SKILL_DIR>/assets/fonts/*.woff2, <SKILL_DIR>/assets/vendor/gsap.min.js(このスキルにバンドルされ、ステップ9で作業ディレクトリにステージングされます)

文字起こしにはキー不要 — hyperframes transcribe はWhisperをローカルで実行します(ステップ4)。

macOSで hyperframes render を使用する場合、強く推奨:

export PRODUCER_BROWSER_GPU_MODE=hardware

2. 作業ディレクトリの作成

すべての成果物は videos/<プロジェクト名>/ 以下に配置されます — 他の動画ワークフロー(product-launch-video / faceless-explainer / pr-to-video)と同じ規則です。カレントディレクトリはワークスペースルートに保ち、以下のすべてはこの1つのサブディレクトリ以下に書き込まれます。

VIDEO_PATH="/絶対パス/input.mp4"
WORK_DIR="videos/$(basename "$VIDEO_PATH" | sed 's/\.[^.]*$//')"
mkdir -p "$WORK_DIR"

3. 音声とメタデータの抽出

# メタデータ — 長さ / 幅 / 高さ / fps
ffprobe -v error -select_streams v:0 \
  -show_entries stream=width,height,r_frame_rate \
  -show_entries format=duration -of json "$VIDEO_PATH" > "$WORK_DIR/metadata.json"
# 音声
ffmpeg -y -i "$VIDEO_PATH" -vn -acodec libmp3lame -q:a 2 "$WORK_DIR/audio.mp3"

出力: metadata.json(width/height/durationを読み取る; fpsは r_frame_rate の分数を評価、例: 30000/1001 → 29.97)+ audio.mp3。

4. 文字起こし

npx hyperframes transcribe "$WORK_DIR/audio.mp3" -d "$WORK_DIR" --json --model small.en

ローカル Whisper — APIキー不要、プロキシ不要、レート制限なし。単語レベルの transcript.json を作業ディレクトリに書き込みます(単語の text + start / end タイムスタンプ)。これを読み取って、ステップ6でカードのタイミングを決めるための単語/文のタイミングを取得します; 句読点やポーズで自分で単語を文にグループ化して、セグメントレベルのチャンクが必要な場合に備えてください。

メディアの長さにクランプすること。 Whisperは最終単語の end が実際のクリップ長をわずかに超えることがあります — すべてのカードの endSec と composition.durationSeconds を metadata.json の長さにクランプしないと、レンダリング時に動画の後に黒いテールが表示されます。

5. 文字起こしの修正

transcript.json は単語オブジェクトのフラットな配列です — [{ "text": "...", "start": s, "end": s }, …](segments 配列や words ラッパーはなし; 単語ごとのキーは text)。これを読み取り、明らかなASRエラーを修正します:

  • 同音異義語、製品名、専門用語、句読点
  • 単語の text をその場で編集; start / end タイムスタンプは保持
  • 事前にグループ化された segments 配列はありません — カードのタイミングのためにセグメントレベルのチャンクが必要な場合は、自分で単語を文にグループ化します(終端の句読点やポーズで分割)

6. 軽量なストーリーボードの作成(チャット内)

CLIは不要。 transcript.json + metadata.json を読み取り、直接カードをデザインします。storyboard.json はエージェント内部の計画用成果物です — 消費するCLIコマンドはありません; ステップ9で作成する合成HTMLを駆動する同じアウトラインを、タイミングと内容について明確に考えるために存在します。以下の例と一貫した形状を保つことで、同じアウトラインがステップ9で作成する合成を駆動できます:

{
  "schemaVersion": 3,
  "composition": {
    "fps": 30,
    "width": 1080,
    "height": 1920,
    "durationSeconds": 121.2,
    "layout": "portrait",
    "themeId": "noir",
    "seed": 42
  },
  "videoTrack": {
    "sourcePath": "input-video.mp4",
    "startSec": 0,
    "endSec": 121.2,
    "bounds": { "x": 0, "y": 0, "width": 1080, "height": 1920 }
  },
  "subtitles": { "enabled": false },
  "cards": [
    {
      "id": "card-01",
      "intent": "話し手の真夜中の不安な質問でフックする",
      "startSec": 0.5,
      "endSec": 13.0,
      "accentIndex": 0,
      "zone": "fullscreen",
      "contentHints": {
        "kicker": "率直な質問",
        "title": "午後11時の魂の探求",
        "detail": "クライアントの60秒音声メッセージ: '人民元が上昇した場合、私の米ドル保険は大きな損失になるということですか?'"
      }
    }
  ]
}

必須カードフィールド:

フィールド種類目的
idstringカードHTMLとGSAPセレクターで使用される安定したID
intentstring自然言語による説明; カード合成に供給される
startSec / endSecnumber秒単位の時間(endSec > startSec)
accentIndex0 | 1 | 2 | 3 | 4このカードが使用する5つのテーマアクセントカラーのうちどれか
zone列挙型(下記参照)カードがキャンバス上のどこに配置されるか
contentHintsobject自由形式のバッグ; エージェントはここにキッカー/タイトル/詳細/データ/引用を入れます
archetype (optional)string自由形式のラベル; カードのパターンを覚えておくために付けることができます; 省略時は自由形式(デフォルト)
transition (optional)列挙型: cut | fade | slide | wipe宣言的なカード間トランジション

5つの zone 値:

zone解決された境界使用タイミング
fullscreenキャンバス全体をカバーヒーローモーメント、大きな数字、マントラ
whiteboard-area40pxマージン(またはポートレート高さの45%)でインセット密集したデータ/注釈付きコンテンツ
lower-third下部30%の帯表示されている動画上の注釈
side-panel右42%(ランドスケープ)または下部40%(ポートレート)データが片側、動画が反対側
video-overlayキャンバス全体、ほぼ透明なカードを想定フルブリード動画上の注釈オーバーレイ

ステップ9で合成をアセンブルする際に、各カードの zone を上記の表に従ってカードホストラッパー上のピクセル境界に解決します。動画の境界は合成レベルで1回だけ設定されます(videoTrack.bounds); 動画をカード間で「移動」させるには、合成の<script>内で#video-wrapに対するGSAPトゥイーンを作成します(ステップ9参照)。

所定のカードロールはなく、所定のナラティブアークもありません。 カードは動画が実際に語る内容から生まれます — すべて引用でもすべてデータでもよく、数字で始まることもストーリーで始まることもあります。書き起こしにリズムを決めさせてください。

テイクアウトの数は?— 長さと密度から自動推論。 固定の上限はありません。動画の長さからベースペースを選び、その後情報密度で調整します。下限のみ固定: 最低5枚のカード — 短い動画でもリズムが生まれるように。

ステップ1 — 長さによるベースペース(中程度の密度での自然な秒/カード):

動画の長さベースペース(カードあたりの秒数)根拠
< 60秒(短いリール)6–8秒視聴者は短尺動画では速いカットを期待する
60秒 – 3分8–12秒通常のソーシャルペース
3 – 10分12–20秒呼吸の余地を与える; 各カードがより多くを担う
10 – 30分20–35秒長尺講義/インタビューのリズム
> 30分30–60秒エピソード的、チャプター風の感触

ステップ2 — 密度乗数(ベースペースを乗算):

書き起こし内のシグナル乗数効果
高密度 — 多くの数字、明確な主張、スタッカート調のペース、リスト的な列挙、1~2文ごとに新しいアイデア× 0.7より速くカット、より多くのカード
中密度 — データとナラティブが混在したフロー× 1.0ベースペース
低密度 — 1つの拡張ストーリー、繰り返されるリフレーミング、ゆっくりとした内省的なペース、展開する単一の議論× 1.5より遅くカット、より少ないカード

ステップ3 — 計算:

secPerCard = basePace × densityMultiplier
cardCount  = max(5, round(videoDurationSec / secPerCard))

例(注意 — 上限なし; 長い動画は自然に多くのカードを生成します):

  • 30秒リール、単一のオチ(低密度) → 7 × 1.5 = 10.5秒/カード → round(30/10.5)=3 → 下限 5 カード
  • 60秒内省的なモノローグ(低密度) → 10 × 1.5 = 15秒/カード → 4 → 下限 5 カード
  • 121秒トーキングヘッド、豊富なデータ(高密度) → 10 × 0.7 = 7秒/カード → 17 カード
  • 5分インタビュー、混合密度 → 16 × 1.0 = 16秒/カード → 19 カード
  • 10分ディープダイブ、高密度 → 16 × 0.7 = 11秒/カード → 55 カード
  • 30分講義、中密度 → 28 × 1.0 = 28秒/カード → 64 カード
  • 1時間ポッドキャスト、低密度 → 45 × 1.5 = 67.5秒/カード → 53 カード

カードが約15秒以上保持される場合、よりリッチなカードを計画してください(データブロック、マルチステップの表示、段階的なアニメーションで展開するいくつかのサブポイント)— 静的なひとことを8秒以上続けると退屈になります。多くのカードが30秒を超える長尺の作品では、タイムラインをサブコンポジションにチャンク分割することを検討してください(チャプターごとに1つの.html、data-composition-srcでマウント)— ファイルごとのGSAPタイムラインを管理可能に保つためです — 詳細は timeline_track_too_dense HyperFramesリント警告を参照してください。

content はプレーンな文字列("Title: annualized 5.69%\nNotes: ...")またはデータをキャプチャする任意のJSON形状にできます。エージェントがカードごとに形状を決定します。

オプションのアウトロ。 このスキルには固定のブランドアウトロは付属していません。ユーザーが終了カードを希望する場合、自分でニュートラルなものをデザインしてください(ワードマーク+1行のタグライン、約1.5-2秒、フェードイン -> 短いホールド -> フェードアウト)、それを cards[] に追加し、composition.durationSeconds を延長して、アウトロの.html断片も作成します。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

general-video

>

heygen-com/animejs

Anime.js adapter patterns for HyperFrames. Use when writing Anime.js animations or timelines inside HyperFrames compositions, registering animations on window.__hfAnime, making Anime.js seek-driven and deterministic, or translating Anime.js examples into render-safe HyperFrames HTML.

heygen-com/claude-design-hyperframes

Use when running inside Claude Design specifically. Produces a valid, brand-accurate HyperFrames video draft using pre-valid skeletons. For Claude Code / Cursor / Codex, use the `hyperframes` skill instead.

heygen-com/contribute-catalog

Author a new HyperFrames registry block (caption style, VFX block, transition, lower third) or component (text effect, overlay, snippet) and ship it as an upstream PR to the hyperframes repo. Use ONLY when the user wants to CONTRIBUTE to the public catalog — for in-project caption/transition authoring use the `hyperframes` skill, for installing existing registry items use the `hyperframes-registry` skill.

heygen-com/css-animations

CSS animation adapter patterns for HyperFrames. Use when authoring CSS keyframes, animation-delay based timing, animation-fill-mode, animation-play-state, or CSS-only motion that HyperFrames must seek deterministically during preview and rendering.

heygen-com/gsap

GSAP animation reference for HyperFrames. Covers gsap.to(), from(), fromTo(), easing, stagger, defaults, timelines (gsap.timeline(), position parameter, labels, nesting, playback), and performance (transforms, will-change, quickTo). Use when writing GSAP animations in HyperFrames compositions.

heygen-com/hyperframes

Leaves sweep through the frame and part to reveal the headline. HyperFrames block, 1920×1080, 12s, 11 variables.

heygen-com/hyperframes

Render-correctness doctrine for scene-to-scene seams in HyperFrames launch videos — the prerequisites that make transitions composite correctly on the master timeline. Load when assembling the master timeline / index.html, when a white flash appears at a cut or crossfade seam (especially on dark films), when reasoning about why a transition opacity dip shows through, or when verifying the render-side mechanics of how overlapping scene wrappers blend. Covers the opaque stage-ground (#root background) white-flash guard and how the injector overlaps wrappers, holds final frames, ping-pongs tracks, and stamps lint-clean template code onto the master timeline. Does NOT contain the per-transition catalog — see the transition registry for individual transition entries.

heygen-com/hyperframes

The technique catalog: five velocity-matched SEAMS (zoom-through, INVERSE zoom-through, cut-the-curve, waterfall cut, rack-focus blur-cut) plus the two in-scene techniques — waterfall ENTRY (staggered arrival cascades for title cards / segment openers) and the nudge curve (slow-fast-slow three-phase group slides). Covers partial-travel (~12% of frame) velocity matching via mirrored power4 eases, the Z scale-sign rule, size-scaled blur (10px text / 18-20px full-frame), word-by-word staggered cuts, cascade pacing by element weight, and the 10/65/25 slide ratio. Read before authoring any transition, text-beat handoff, kinetic text entry, or group reposition. [depth, zoom, inverse-zoom, scale-sign, mirrored-zoom, rack-focus, pacing, velocity, cut-the-curve, waterfall, stagger, cascade, kinetic-text, title-card, segment-opener, nudge, slide, easing, group-motion, z-depth, motion-graphics, cinematic, transition, blur, directional-continuity]

heygen-com/hyperframes

Glass shards fly in through fog and tile themselves into the headline. HyperFrames block, 1920×1080, 12.16s, 19 variables.

heygen-com/hyperframes

A single feature card orbits a dot sphere on approved Blender camera motion. HyperFrames block, 1920×1080, 10s, 4 variables.

heygen-com/hyperframes

A wireframe portal bursts open, the title comes through, then its letters swap into a second phrase. HyperFrames block, 1920×1080, 8s, 9 variables.

heygen-com/hyperframes

An orbiting camera follows an ice logo as it breaks apart, reforms into two text moments, and fades. HyperFrames block, 1920×1080, 22.5s, 216 variables.

heygen-com/hyperframes

House-style oversized macOS cursor technique for HyperFrames launch videos. Load whenever a scene involves cursors or a pointer-led action, when kicking off a UI scene, when igniting a morph/transition/typing run with a click, or when a scene reads as static, dead, or stale and needs a cheap high-yield source of motion to carry the viewer's eye and segment them out of the stale state. Covers cursor size/look (incl. brand-motif cursors), the off-screen entry law, tip-targeting and the click tap, click-ignites-the-next-beat, and exit / cross-scene handoff.

heygen-com/hyperframes

name: embedded-captions

heygen-com/hyperframes

A chain of bevelled cuboids rides a travelling wave as a content carousel. HyperFrames block, 1920×1080, 6.666666666666667s, 40 variables.

heygen-com/hyperframes

A tiled headline surface flips cell by cell under a sweeping depth field to reveal the rear headline. HyperFrames block, 1920×1080, 8s, 18 variables.

heygen-com/hyperframes

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.

heygen-com/hyperframes

Import Figma content into a HyperFrames composition — rendered assets, brand tokens, components, storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI), connector-assisted motion when available, and shaders from a connector or native export. Use when the user pastes a figma.com link or asks to bring a Figma design, frame, logo, brand, or animation into a video/composition.

heygen-com/hyperframes

GATEWAY — load FIRST before composing any HyperFrames animation or video. The high-level motion law that makes a multi-scene video feel like ONE continuous camera move instead of a stack of independently-animated slides. Covers the vector law (how you exit determines how you enter, incl. the Z scale-sign rule), the film's current, carrier elements, causal motion, the Seam Gate (build-gate enforcement), the ban on idle wobble (motion must PERFORM, not breathe), stillness-before-climax, and the sustained-motion routes. Routes to the low-level technique skills (cut-the-curve — the full catalog incl. waterfall entry + nudge curve, oversized-cursor, seam-craft). These rules SUPERSEDE generic / upstream motion guidance. [continuity, direction, vector, momentum, seam, transition, ease, performance, idle-motion, narrative-motion, film-grammar]

関連スキル