動画編集ワークフロー
ユーザーが生の動画を送信するたびに、以下の手順に従ってください。ツールルート: /home/user/video-workflow
(VW=/home/user/video-workflow)。動画ごとにスクラッチパッド内に新しい作業ディレクトリを使用します(例: $SCRATCH/<name>/work)。
手順4の前に、STYLE_GUIDE.md(スタイル)、EFFECTS.md(17のエフェクトライブラリ - すべての動画で複数使用)、およびtemplates/STORYBOARD_REFERENCE.md(構文)を読んでください。
0. セットアップ(コンテナごとに1回)
$VW/vw.sh setup を実行します。huggingface.co がブロックされていると警告された場合は、環境のネットワーク設定で huggingface.co(および *.hf.co)を許可するまで文字起こしが実行できないことをユーザーに伝えてください。代わりの文字起こしを捏造しないでください。
1. 準備 + 文字起こし + カット案の作成
$VW/vw.sh prep RAW.mp4 WORK [--language ro|en] [--model small|medium]
- 「洗われた」SDRフッテージ(圧縮アプリでトーンマッピングされずに再エンコードされたiPhone HDR:ミルキーな黒、くすんだ白 – 例: *_compressed.mp4)は、黒点がY45以上、または白点がY203未満(同じセットのトーンマッピングされた.movクリップと隣り合うくすんだ白)で検出され、prepare.pyでレベルが復元されます(輝度をY34..〜215にストレッチ、クロマx1.08)。これにより、トーンマッピングされたHDR(Mindri-Box-v3)の承認された自然なルックと一致します。
- すべてのクリップに対する承認済みカラールック(ユーザールール - 「話し合ったフィルター」):正規化後、prepare.pyは
source.movに対してlook_matchを実行します。フレームの上部60%(背景+人物)を測定し、すべてのクリップが承認されたルック(Mindri-Box-v3 / Comanda-Ionut-v2/v4:深い黒、鮮やかなオレンジ、清潔な白いTシャツ。ターゲットはp5 38、p25 52、p50 76、p95 226、彩度59)に一致するようにトーンカーブ+彩度を適用します。影/中間色のみを深め、くすんだ白を持ち上げ、色を追加します(ポイントあたり最大35レベル、彩度最大x1.3)。すでにルックに合っているクリップは変更されません。これにより、マルチクリップ動画間で一致します。gradeは上部でnaturalのままです。 - HDRスマートフォンフッテージ(iPhone:HLG/PQ、BT.2020、10ビット、Dolby Vision)は、自動的にSDR BT.709にトーンマッピングされます(zscale + hable、100 nits)。これがないと、すべてが青白くミルキーに見えます。出力はBT.709とタグ付けされます。
- 30 fps CFR、1080x1920(カバークロップ)に正規化し、顔を検出し(MediaPipe全範囲)、タイトルゾーンの明るさを測定して
layout.json(安全ゾーン、明るいゾーンはタイトルをボックス化し、ガラステキストに色合いを付けます)を作成します。 - 単語タイムスタンプ付きで文字起こしします(「えーと」/言い直しを表示)→
transcript.json。 - フィラー、どもり、途切れた単語、言い直しを自動フラグします →
edit.json+review.txt。 - ルーマニア語またはノイズの多い音声には
--model mediumを使用します。それ以外は自動言語検出。 - ソースが横向きだった場合(警告が出力される)、センタークロップされたことをユーザーに伝えてください。
1b. 複数の生クリップ(1つのストーリー)
ユーザーが複数のクリップを送信した場合、最初に各クリップを文字起こしし、発話内容から順序を決定します(通常は撮影順)。各クリップに手順1〜2およびcutを実行し(WORK_k)、次にそれらを結合します:
python3 $VW/scripts/merge_clips.py WORK WORK_1 WORK_2 … → 1つのタイムライン。layout.jsonは各クリップ独自のフレーミングを保持し(clips[])、レンダラーとエフェクトは画面上のクリップのフレーミングを使用します。マージされたwords.jsonでキャプションテキストを修正し、WORKで手順4に続けます。すべてのクリップ境界にトランジション(zoom_through、flash、glitch)を配置します。
2. 編集内容の確認(判断ステップ - スキップしないこと)
WORK/review.txtをエディターのように上から下まで読み、WORK/edit.jsonを修正します:
- 削除:検出器が見逃した失敗テイク/言い直し(最後の良いテイクを残す)、噛んだ文章、「ちょっと待って、やり直す」、脱線した余談、退屈なイントロ(「やあ、みんな」「えーっと、今日は…」) – 動画はフックラインで始まる必要があります。
- 保持(`