/edit-my-video
生クリップを入力として、完成した1080x1920のリールをユーザーのスタイルで出力します。ユーザーは通常、技術者ではありません。短い平易なメッセージで、一度に一つのステップを伝え、すべての技術作業を自分で行い、決してコードに触れさせないでください。AskUserQuestionポップアップは使用せず(チャットで質問してください)。どこにも投稿したりアップロードしたりしないでください。ユーザーに書いたり画面に表示したりするものには、ダッシュ(—)を使用しないでください。
SK = このスキルのフォルダ。STYLE = スタイルフォルダ(デフォルト:SK/config.jsonに保存されたもの、なければ/build-my-styleが作成したもの、なければ~/edit-style。どのフォルダにもSTYLE.mdがない場合は、場所を尋ねるか、先に/build-my-styleを提案してください)。WORK = 動画ごとのフォルダで、<edits folder>/<slug>/(slugは短いケバブケース。例:github-repos)。すべてのパスは引用符で囲んでください。パスにスペースが含まれています。スクリプトはpython3 "SK/scripts/<name>.py" ...として実行します。各スクリプトは引数なしで実行すると使用方法を表示します。
セッションの最初の編集前に以下を読んでください:references/creative-rules.md(最も重要なファイル:デザイン方法と厳しいテイストチェックについて)およびreferences/engine.md(レンダリングのHyperFramesパターン)。ステップ4の前にreferences/storyboard.mdを読んでください。
最も重要なルール
STYLE.mdはガードレールであって、メニューではありません。ルック(色、フォント、動きの感触、サウンドレベル、セーフゾーン、却下されたもの)を固定します。作成するものを制限するものではありません。すべてのラインについて、このアイデアを最もよく説明するビジュアルは何かを問い、ルックの範囲内で新しくデザインしてください。最初のテスト編集では、スタイルページからテンプレートをコピーしたため(「3つのことしかできない」というチェックリスト)、クリエイターは「非常に制限されている」「まったく即興性がない」と評価しました。レイアウトは変化をつけてください。同じレイアウトを2回続けて使用しないでください。ビジュアルは大きく表示してください。
ステップ(どのステップにいるかを短い1行で伝えてください:「ステップ3/8:最高のテイクを選んでいます」)
1. セットアップ確認(数秒)
python3 "SK/scripts/setup.py" --check。不足しているものを短いリストで表示します:そのアイテム、用途、修正方法(1行で)。インストールが必要なもの(ffmpeg、Node、Python、Chrome)については、ターミナルアプリ(Command + Spaceでターミナルと入力)にその行を貼り付け、「完了」と言うよう伝えてください。--install(faster-whisper、playwright、HyperFrames、スピーチモデル)は、ユーザーが「無料の編集ツールをインストールしてもいいですか?約5分、一度だけです」と承諾した場合のみ実行してください。その後、python3 "SK/scripts/style.py" check "STYLE"(スタイルフォルダが完全かどうか)とpython3 "SK/scripts/style.py" serve "STYLE"(まだ実行されていない場合、ページサーバーを起動します。URLをメモしてください)。初回のみ:編集結果をどこに保存するか尋ねてください(スタイルフォルダの隣のフォルダ、edits/を提案)。そして保存します:setup.py --save --style "STYLE" --edits "<folder>"。
2. 取り込み(1メッセージ)
まだ持っていないものだけを尋ねてください:
- 生クリップフォルダ(多くの場合、何度も繰り返されたテイクが含まれています。各ラインの最後のクリーンテイクを使用します)
- 動画の内容、およびスクリプトやメモがあればそれら
- コールトゥアクション用のコメントキーワード
- 目標の長さ(25~40秒を提案)
- 音楽:ユーザーがトラックを指定した場合のみ。それ以外はなし(クリエイター自身が音楽を選びます)。
次に、
mkdirWORKを実行し、python3 "SK/scripts/style.py" resolve "STYLE" --out "WORK/style.json"を実行します。STYLE.mdを全文読んでください:特にFeedback from edits、Rejected、Keptを最新のものから順に。これらは、過去の編集に対するクリエイター自身の修正であり、他のすべてに優先します。
3. テイク、カット、文字起こし(映像5分あたり約1分)
takes.py "WORK" "<clip>" ... --prompt "<彼らが言う名前>"はすべての試行をリストし、リテイクをマークします。WORK/takes/*.txtを読んでください。各ラインの最後の完全なクリーンテイクを選びます(つまずきはスキップ、悪いスタートはinを移動してトリミング)。WORK/edl.jsonを書き込みます(フォーマットはcut.pyの使用方法にあります)。cut.py "WORK" --prompt "<名前>":フレーム単位のセグメントをWORK/hf/assets/v/に、音声は-16 LUFS、エッジはタイトに、words.json/words.txtにリール時間を出力します。progress/01-cut-takes-in-order.jpgを確認してください。words.txtを、ユーザーが言いたかった内容と照合してください。Whisperは名前を聞き間違えることがあります。captions.py fix "WORK" "49=ArtCraft"でwords.jsonを修正してください(実際に言われた内容に一致させるためにのみ使用)。 各ビートを1行で、カットの長さとともにユーザーに伝えてください。
4. 先にストーリーボード(ユーザーが承認してからレンダリング)
references/storyboard.mdに従ってください:WORK/storyboard.jsonを書き込みます(ビートごとに:言葉、時間、レイアウト、ビジュアル、アニメーション、キャプション、サウンド)、実際のフッテージ上に計画したビジュアルを合成した静止画をビートごとに1枚作成します(実際のスクリーンショット、実際のアプリアイコン、JPG)、主要な3〜4ビート(フック、メインアイデア、決めの部分、CTA)では2〜3の選択肢(A/B/C)を用意します。その後、storyboard.py page "WORK" --style "STYLE"を実行し、http://localhost:<port>/storyboards/<slug>/を開きます(open <url>)。次のように伝えてください:「ストーリーボードが開きました。選択肢のあるビートはA、B、Cを選んでください。各ビートを承認または変更し、任意の場所にメモを追加してください。送信を押したら、完了と教えてください。」**「完了」を待ちます。**その後、storyboard.py review "WORK" --style "STYLE"が選択とメモをstoryboard.jsonに反映します。ユーザーが変更したビートのみを再構築し、すべてが承認されるまで再度表示します。
5. バリエーション(オプション。一度だけ提案します:「本編を作る前に、フック部分の動くバージョンを2~3種類見てみますか?」)
2〜3のキーモーメントについて:ステップ6で編集を十分に作成し、hf/index.htmlをhf/index-<beat>-B.htmlにコピーしてそのビートを再デザインし、render.py slice "WORK" <beat>-A <start> <end>とrender.py slice "WORK" <beat>-B <start> <end> --index "WORK/hf/index-<beat>-B.html"を実行します(各2〜4秒、レンダリング約6秒)。storyboard.jsonのそれらの代替案に"video": "variations/<name>.mp4"を追加し、storyboard.py page "WORK" --style "STYLE" --variationsを実行、.../storyboards/<slug>/variations.htmlを開き、完了を待ち、storyboard.py review ... --variationsを実行し、勝者をindex.htmlに残します。
6. 編集の構築(クリエイティブな部分)
render.py new "WORK" --title "<video> v1":スタイルの色、フォント、キャプションシャドウ、モーションキット(engine/kit.js)を使用した固定のHyperFramesプロジェクトをWORK/hf/に作成します。- 実際のものを収集します:
shoot.py web <url> <png> --mobile(ページが完全に読み込まれた後)、shoot.py icon "<App>" <png>(実際のmacOSアプリアイコン)、公式ロゴはそれ以外の場合はツールのサイトから取得します。 - 承認されたストーリーボードに基づいて
WORK/hf/index.htmlをビートごとに記述します(パターンとキットAPIはreferences/engine.mdにあります)、すべてのビジュアルをwords.txt内の該当する単語にタイミングを合わせます。各ビートは新しくデザインし、すべてのビジュアルシーンにdata-visual="<what it is>"とdata-layout="face|split|full"を設定します。 - キャプション:
captions.py make "WORK" --skip <a-b>(画面上のテキストがすでに単語を言っている場合はスキップ)、その後WORK/caps.jsonを手動で編集します:自然に読めるようにチャンク化(2〜3単語)、口の上に重ならないようにtopを設定、ビートごとにcls、アクセントとなる単語にhtmlを設定。captions.py inject "WORK"を実行します。 - サウンド:
WORK/cues.jsonを記述します(すべてのカット、パネル、アイコン、ライン、ヒーローワードにそれぞれのレベルでキューを設定、ダブルヒットなし)、ユーザーが指定した場合のみ音楽を追加し、mix.py "WORK"を実行します(ミックスを-16 LUFSに調整)。 render.py check "WORK"(すべてのエラーを修正)、render.py snap "WORK" <times> --name <beat>を実行して変更したフレームを確認します。各ステップで番号付きの画像をWORK/progress/に保存します(スクリプトがほとんど行います)。
7. 表示する前に自分でレンダリングとレビュー
render.py render "WORK" --out "WORK/<Video name> - v1.mp4"を実行し、qa.py "WORK" "<そのmp4>"を実行します。すべてのFAILを修正します。次に、実際にリストされたすべての画像(2fpsのコンタクトシートと、セーフゾーンが描かれたフルサイズのクローズアップ)を確認します:テキストの混雑、ビジュアルが小さいまたは空スペースとともに高い位置にある、キャプションが口の上にある、同じレイアウトが2回続く、飛び出すもの、黒いもの、数字/名前が言葉と一致しない。自動チェックでは見逃されるものを目で確認します(このスキルの最初のテストでは、濁ったヒーローワードと空のハーフカードがある状態でチェックを通過しました)。1回の修正パス、再レンダリング、qa.pyの再実行、その後open "<mp4>"を実行します。ファイルの場所、長さ、ビートごとの内容、推測したことを数行でユーザーに伝えてください。
8. フィードバックループ(ノートがあるたびに)
修正し、再レンダリング(再レンダリング約20秒)、qa.pyを再実行、開きます。さらに、次回の編集ですでに反映されるように、そのノートをスタイルに書き込みます:
python3 "SK/scripts/feedback.py" "STYLE" --video <slug> --rule "<これからはこれにしてください>"(または--rejected "<二度としない>"、--kept "<これが良かった>")。ユーザーの言葉を使い、フラグごとに1つのノートを。好きだったものは嫌いだったものと同じくらい重要です。STYLE.mdを先にバックアップし、ログに記録します。追加した内容を1行で伝えてください。ノートがロックされた値(輝き、ズームカーブ、キャプションシャドウ)に関するものである場合は、その値はスタイルページのラボにあることを伝え、ロックを黙って上書きするのではなく、開くことを提案してください。
所要時間(MシリーズMac、約8分の映像から15秒の完成リール)
テイク選択:映像5分あたり約1分 · カット+文字起こし:約15秒 · ストーリーボード静止画:約2分 · バリエーションスライス:各約6秒 · レンダリング:約20秒 · QA:約30秒。