フェイスレスリール
このスキルは、実際のリール(「この声は私じゃない」、2026年11月公開)で検証されたプロダクションチェーンを再現します。目標:1080 x 1920、30fps、60~120秒のリールを、視聴者の注意を最後まで引きつけること。なぜなら、すべてがその場で、音声のリズムに合わせて変化するからです。
設定
個人設定は、このスキルのルートにある config.json に保存されます。存在しない場合は config.example.json を config.json にコピーし、不足している項目(少なくとも elevenlabs_voice_id)をユーザーに尋ねてください。実行のたびに最初に読み込んでください。以下の <skill> はこのスキルのフォルダを指します。
| キー | 用途 |
|---|---|
creator_name | レポートでユーザーを参照する方法 |
language | リールのデフォルト言語(音声、キャプション、画面上のテキスト)。別の言語のリクエストがあればそちらが優先されます |
elevenlabs_voice_id, elevenlabs_model | クローンされた音声 |
whisper_model | チェックに使用するローカルのwhisper.cppモデル |
projects_root | 以前のリールプロジェクトが保存されている場所(node_modules を再利用するため) |
cta | リールの言語での、3つのクロージング動作の正確な文言 |
guides_page | ユーザーのプロフィールにリンクされている、ガイドが置かれているページ |
timezone, publish_hour, caps, telegram_env | 自律モードのみ |
ユーザールール
- 平易かつ直接的に書くこと。画面上でもメッセージでも、ダッシュやつなぎ言葉は使わないこと。
- リール言語のタイポグラフィに従うこと。フランス語の場合:
:?!の前には半角スペース、"5 réglages" 内や引用符「 »」も適切に。 - 音声は決してカットしないこと。 編集されるのはアニメーションのみ。長さの変更も、無音の除去も行いません。
- 動画には顔を映さないこと。 ただし、ユーザーの顔写真を使用するカバーは除きます。
- カバーは常に動画の最初のフレームであること。 また、別ファイルとしても提供されます。
- エンディングは常に3つの動作を行うこと: ガイド入手のためのチャンネル登録、プロフィールのリンクをクリック、キーワードを入力。音声、キャプション、画面上のすべてで(SUBSCRIBEDボタン、LINK IN BIOボタン、キーワードが入力されるフィールド)。キーワードはガイドとトピックに直接関連しており、Claudeが提案します。「リンクはプロフィールに」と言い、「リンクは概要欄に」とは決して言わないこと:ガイドページはユーザーのプロフィールにあります。
- すべての発言は真実でなければなりません:でっち上げの数字、出典のない最上級表現、偽のスクリーンショットは禁止。実際の証拠は約束に勝ります。
- トークン、パスワード、キーが画面上で読み取れないようにすること。
- 各リールのキャプション:ハッシュタグは最大5つ、リンクはなし、すべてのネットワークで共通。最後は必ずガイドの入手方法を示すこと。例:「5つのプロンプトはガイドにあり、コピー&ペーストするだけです。入手するには:チャンネル登録、プロフィールのリンクにアクセス、キーワードFIVEを入力してください。」
- クローンボイスを使用したフェイスレスリール:公開時にはAI生成コンテンツであることを宣言すること(例:BlotatoではTikTokに
isAiGenerated: true、YouTubeにcontainsSyntheticMedia: true)。 - BGMは音声の下で0.05、それ以上は不可。
- 有料生成の費用を事前に伝えること。ユーザーがすでにリクエスト内でAtlas CloudやElevenLabsを許可している場合は、その旨を伝えて続行する。それ以外の場合は、ユーザーの同意を待つこと。
- 止まらずに最後まで進み、自身の作業を確認し、何が検証され何がされなかったかを明確に伝えること。自律モード以外では、ユーザーが依頼しない限り公開しないこと。
- 小規模マシン(8 GB RAM)の場合:Remotionバンドルは一度に1つ、レンダリングはバックグラウンドで、中間ファイルは最後に削除すること。
ステップ
最初にすべてを計画します。各ステップにはガイドがあります:そのステップに到達したらガイドを読んでください。
- 配置を確認。 動画フォルダ、参考リール(ファイルまたはリンク)、トピック、ユーザーのカバー画像(動画フォルダ内の
cover.png、存在しない場合は<skill>/assets/cover/cover-template.pngを使用しその旨を伝える)、空きディスク容量(df -h /)。有用なreferences/とプロジェクトメモリを読む。 - 参考リールを分析。 ある場合:音声を抽出、Scribeで文字起こし、動画をフレームごとに確認、
_reel/reference/reel_analysis.mdを作成。references/script.mdを参照。 - スクリプトと約束されたガイドを作成。
_reel/script.md、各主張の真実性を伴う。references/script.mdを参照。 - プロジェクトを作成。
zsh <skill>/scripts/new_reel.sh "<video folder>"、次にremotion/reel.jsonを記入。references/editing.mdを参照。 - 無料のアニマティック。
python3 <skill>/scripts/fake_words.py、次にpython3 scripts/build_reel.py(reel.jsonをチェックし、その後数枚の静止画)。スクリプトは画面に収まるか? - 音声。 ElevenLabsで2テイク、選択したテイクでScribeによる単語タイムスタンプ、カットなしで処理。
references/voice.mdを参照。 - Atlas Cloudオープニングショット(任意、推奨)。 開始画像、終了画像、Kling、音声に合わせたリタイミング。
references/opening-shot.mdを参照。 - シーン。
src/reel/BRIEF.mdをビートごとに、その後シーングループごとに1エージェントを並行して、チェック用エージェントも1つ。references/editing.mdとreferences/scene-rules.mdを参照。 - カバー。 クリックを誘うタイトルとロゴ。
references/cover.mdを参照。 - 静止画でチェック、修正、その後レンダリング。
zsh scripts/render_final.shをバックグラウンドで(90秒で10~15分)。 - 最終ファイルを検証、
exports/instagram.mdを作成。references/checks.mdを参照。 - 完了。 プロジェクトREADME、プロジェクトメモリ、中間ファイルの削除、ファイルの送信、確認・決定すべき事項を含むサマリー。
自律モード
リクエストがスケジュールタスクから来た場合、またはユーザーが inspiration/ フォルダの処理を依頼した場合、references/autonomous-mode.md に従ってください:質問なし、コスト上限、ガイド、スケジュール投稿、通知。
リールを機能させる要素
- 3秒以内にフックを入れる。 証拠または約束を伴い、カバーの直後の最初のフレームから読めること。
- 可視のオープンループ。 N個の番号付き空ボックスがプログレスバーになる。
- 同じ形状のN個の要素。 難易度と価値が増大し、最後が最高で、再フックによって告知される。
- ワンショット。 同じ背景、同じウィンドウ。ハードカットは絶対にしない。
- すべての出現が話された単語に合わせられる。 画面上の変化がない状態が1.5秒を超えないこと。
- 簡潔なまとめ。 その後、視聴者のトピックに対する見方を変えるパンチライン。
- 動作で構成されたエンディング。 言葉だけでなく実際に表示される:カーソルがチャンネル登録、プロフィールのリンクをクリック、キーワードが入力される。
- ループ。 最後の文が最初の文に戻り、最後のフレームが再び最初のフレームになる。
ガイド
| ガイド | 参照タイミング |
|---|---|
references/script.md | 参考リールの分析、スクリプト作成、キーワードとガイドの選択 |
references/voice.md | 音声の生成、単語の取得、カットなしの音声処理 |
references/opening-shot.md | オープニングショットのプロンプトとリタイミング、費用 |
references/editing.md | プロジェクト構成、reel.json、エージェント、静止画チェック、レンダリング |
references/scene-rules.md | シーンを作成するエージェントに与えるルール |
references/cover.md | タイトル、ロゴ、フォーマット、最初のフレームとしての配置 |
references/checks.md | 最終ファイル、キャプション、人間に委ねるべきことのチェック |
references/autonomous-mode.md | inspiration/ フォルダのファイルを参照からスケジュール投稿まで単独で処理 |
assets/reel-template/ はRemotionプロジェクトです。assets/example-this-voice/ には検証済みのリール全体(スクリプト、分析、実際のシーン、概要)が含まれています。これが品質の基準です:その README.md を読み、シーンを作成する前に少なくとも Stakes.tsx と Setting2.tsx を読んでください。assets/example-6-tools/ には、ランキングや階層リスト用の再利用可能なシーンがあります。
既に支払われた教訓
- 2テイクのうち、Scribeが2番目のテイクを文字起こしした場合:結果内の
source.urlを読み、実際に文字起こしされたテイクを保持すること。 - Scribeの
words.jsonにはタグ([softly])や「:」が単語として含まれている:それらを削除し、scribe_words.jsonには{"words": [...]}の形式を保持すること。 - 「チャンネル登録」の前の文がウィンドウを空のままにしていた:
CtaGuide.tsxがその間「Save」を表示するようになった。 - チャイムとスパークルがキーワードとパンチラインを覆い隠していた(キーワードで音声が-1.9 dB):テンプレートで音量が下げられている。それでも最もタイトな部分は確認すること。
- Whisperはドリフトして誤認識する:タイミングはScribeから、テキストはスクリプトから取得する(
build_reel.pyが両者を整列させる)。 - 「Claude」を含むWhisperプロンプトにより、「clone」が「Claude」と読み取られた。プロンプトなしで、かつタイムスタンプ付きで確認すること:
-ntで文をスキップする。 - フックのキーワードに乗せた効果音が音声をマスクする:単語の終わりの後に配置すること(少なくとも7 dBのギャップ、測定済み)。
- セクションの終わりで正確に終了するシーンは、最終スタンプを切ってしまう:シーンは重なり(
Reel.tsxのSTAGES)、スタンプは文の最初から配置される。 - リストを告げる文の間に空のウィンドウがあると壊れて見える:文の開始からドットのスロットを配置すること。
- 数字を単語で書くとキャプションページが壊れる:
build_reel.pyは「5 settings」を一緒に保持する。 - GPUレンダリングは3フレームに1つ要素を消失させる:常に
GL=swangle CONCURRENCY=1(すでにrender_final.shに含まれている)。 - 動画に3D変換、
mixBlendMode、一意でないReactキーは使用しないこと。 - chrome-headless-shellがハングする:
CHROME_MODE=chrome-for-testing(すでにスクリプトに含まれている)。 - レンダリング後に文を作り直す場合:検証済みの音声を保持し、エンディングをワンピースで生成し、ポーズでスプライスする(
references/voice.md)。 - カバーで、ブランドロゴが記号に縮小されると誤読される可能性がある:ElevenLabsの2本のバーが一時停止ボタンのように見えたため、名前はその下に書かれたままにしている。