hf-kit は何をしますか?
HyperFrames 0.8.77 のレイヤー。すべては測定研究に基づいています:16 のニッチにわたる 48 の YouTube 動画。数値は research/ にあります。以下のパスはリポジトリルートからの相対パスです。契約については SPEC.md を読み、hyperframes-core の構成ルールに従ってください。
hyperframes は以下では npx [email protected] または 0.8.77 のローカルインストールを意味します。Python ツールは Python 3.10+ と numpy、Pillow、さらに PATH に ffmpeg が必要です。
ワークフロー
-
スタイルを選ぶ。
styles/README.mdは、ニッチ → スタイル ID → ブロック、キャプション、ミックスプリセット をマッピングします。スタイル JSON は測定範囲(セグメントごとのカット/分、ショット長、wpm、LRA、無音)とマスターターゲット(-14 LUFS、-1 dBTP)を保持します。 -
スキャフォールドする。
python tools/scaffold.py <dir> --format 16:9|9:16 --duration S --style <id> [--blocks a,b]これはindex.htmlをスタイルのトークンで書き、hyperframes.jsonを v0.8.77 レジストリに固定し、ブロックをcompositions/にコピーします。空でないディレクトリへの上書きは拒否します。 -
ブロック。
blocks/README.mdのカタログ:pill-label、chapter-card、number-card(クリーンまたはマネー)、progress-badge、question-card、doc-highlight、film-gate、world-camera、ui-window、tier-board、face-banner-stack(topic-topレイアウトで丸みを帯びた 16:9 トピックボックスを備える)、zoom-through、blur-swap。各ブロックはdata-composition-variablesを持つサブコンポジションです。値はdata-variable-valuesで渡します。examples/<block>/に各ブロックの動作デモがあります。すべてのブロックはプレーンな#rootとプレーンな子孫セレクターでスタイルします。複合セレクター#root[data-composition-id=...]は絶対に使わないでください。リントは通っても空でレンダリングされます。 -
キャプション。
python tools/captions.py words.json --variant cards|karaoke|speaker|keyword|punch --format 9:16 --out compositions/captions.html入力は[{text,start,end,speaker?,class?}]またはhyperframes transcribeの JSON です。 -
サウンド。
sound/MIX.mdには 10 のコピー可能なhyperframes-audioプリセット(ボイス優先フラット、ターンでポーズ、最も重いラインで無音、クリップの前にディップ、など)があり、それぞれがソース行を参照しています。sound/sfx/には 11 の生成効果音があり、sound/SFX.mdはイベントをファイルとレベルにマッピングします。7 つのムード BGM はコミットされていません:python sound/gen_bed.pyで全てをsound/beds/に -20 LUFS でレンダリングし、python sound/gen_bed.py --mood <name> --seconds N --out bed.wavで任意の長さをレンダリングします。どちらのジェネレーターも決定論的で、出力は CC0 です。 -
YouTube からの背景映像または音楽。
python tools/bg_source.py <url> [--download --out assets/ --audio]- ACCEPT(終了コード 0)は、yt-dlp が Creative Commons ライセンスを報告した場合のみ。説明用のクレジット行を出力します。動画のダウンロードには少なくとも
--min-height(デフォルト 1080)が必要です。--audioには高さの下限はありません。 - REVIEW(終了コード 3)は、標準ライセンスのアップロードでタイトルまたは説明に再利用が主張されている場合。「著作権なし」というタイトルはアップロード者の主張です。アップロード者が元の作成者であることを確認し、利用条件のスクリーンショットを保持してください。
- REFUSE(終了コード 2)はそれ以外の場合。
すべての決定は
sources/provenance.jsonlに追記されます(--logで変更可能)。Content ID は、Creative Commons で再アップロードされた他人の作品をまだ主張できるため、元のチャンネルを優先してください。ダウンロードはプロジェクトのassets/に保持し、公開リポジトリには絶対に置かないでください。 - ACCEPT(終了コード 0)は、yt-dlp が Creative Commons ライセンスを報告した場合のみ。説明用のクレジット行を出力します。動画のダウンロードには少なくとも
-
レンダリング前にチェックする。
hyperframes lint <dir>とhyperframes check <dir>を実行。次にhyperframes snapshot <dir> --frames 6を実行してコンタクトシートを確認します。リントが通っていても視覚的な合格とは限りません。 -
レンダリングして測定する。
hyperframes render <dir> --output out.mp4を実行し、次にpython tools/check.py out.mp4 --style <id>を実行します。各測定値とスタイルの範囲およびマスターラウドネスラインを出力します。これはアドバイスです:測定値の逸脱はカットが基準からずれたことを示し、それが重要かどうかはあなた自身の分析で判断します。
研究結果(簡略版)
- 全 16 ニッチにおいて、カット率とラウドネスは外れ値と対照群を分離しませんでした。危機に瀕した人物、最初の数秒で述べられるステーク、画面に映る証拠、そして保持される答えが分離しました(仮説;
research/TECHNIQUES.mdの「外れ値と対照群を分離しなかったもの」を参照)。 - ハードカット数は下限です。テンポはナレーションの下では信頼できません。音声は聞いていません:サウンドの所見は R128 数値、スペクトル、キャプションタグから得られています。
ファイルの場所
| 必要事項 | パス |
|---|---|
| 契約とルール | SPEC.md |
| スタイルとその測定範囲 | styles/README.md、styles/<id>.json |
| ブロックカタログとデモ | blocks/README.md、examples/<block>/ |
| ミックスプリセットと SFX マップ | sound/MIX.md、sound/SFX.md |
| テクニックライブラリ、ムードテーブル | research/TECHNIQUES.md |
| スティールリスト付きニッチ DNA シート | research/niches/<niche>.md |
| 動画ごとに 1 つのカードと 1 つのデータファイル | research/cards/<niche>/<id>.md、research/data/<id>.json |
| 知識チャプター(音楽とムード、サウンドデザイン、VFX とモーション) | research/knowledge/ |