Communitygithub.com

DrFIRASS/faceless-reels

顔出し不要の縦型リールやショート動画(9:16、1~2分)を、参考リールの分析からスクリプト作成、ElevenLabsのクローンボイス、Atlas Cloudによるオープニングショット、Remotionによるマスコット&単語単位のキャプション付きアニメーション、クリックを誘うカバー画像、そして「チャンネル登録・リンク・キーワード入力」の3つの決まった動きで締めくくるエンディングまで、最初から最後まで自動生成します。

faceless-reels とは?

このスキルは、顔出し不要の縦型リール(TikTok、YouTubeショート、Instagramリール)を完全自動で生成するためのプロダクションパイプラインです。ユーザーが「こういうリールを作って」「このInstagramリンクと同じものを作って」「5つのツールについてのリール」などと依頼した場合に、参考リールの分析、スクリプト作成(フック・解説・CTA・キーワード)、ElevenLabsによる切り替えなしのクローンボイス生成、Atlas Cloudによるオープニングショット(任意)、Remotionによるマスコットと単語ごとのキャプション付きワンショットアニメーション、クリックを誘うカバー(動画の最初のフレームとして設定)、そして「チャンネル登録・プロフィールリンク・キーワード入力」の3ステップで必ず締めくくるエンディングを生成します。ユーザーが「顔出しなし」と明示しなくても、リール・ショート・TikTokの作成・リメイク・インスピレーション取得に利用でき、作成済みのリールの修正やカバー・キーワードの再調整にも対応します。ガイド付きの拡張可能なステップ構成により、各工程が独立して動作し、小規模マシンでも安定して動作します。

対応✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/DrFIRASS/faceless-reels-skill/tree/HEAD

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

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

ドキュメント

フェイスレスリール

このスキルは、実際のリール(「この声は私じゃない」、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つ、レンダリングはバックグラウンドで、中間ファイルは最後に削除すること。

ステップ

最初にすべてを計画します。各ステップにはガイドがあります:そのステップに到達したらガイドを読んでください。

  1. 配置を確認。 動画フォルダ、参考リール(ファイルまたはリンク)、トピック、ユーザーのカバー画像(動画フォルダ内の cover.png、存在しない場合は <skill>/assets/cover/cover-template.png を使用しその旨を伝える)、空きディスク容量(df -h /)。有用な references/ とプロジェクトメモリを読む。
  2. 参考リールを分析。 ある場合:音声を抽出、Scribeで文字起こし、動画をフレームごとに確認、_reel/reference/reel_analysis.md を作成。references/script.md を参照。
  3. スクリプトと約束されたガイドを作成。 _reel/script.md、各主張の真実性を伴う。references/script.md を参照。
  4. プロジェクトを作成。 zsh <skill>/scripts/new_reel.sh "<video folder>"、次に remotion/reel.json を記入。references/editing.md を参照。
  5. 無料のアニマティック。 python3 <skill>/scripts/fake_words.py、次に python3 scripts/build_reel.py(reel.json をチェックし、その後数枚の静止画)。スクリプトは画面に収まるか?
  6. 音声。 ElevenLabsで2テイク、選択したテイクでScribeによる単語タイムスタンプ、カットなしで処理。references/voice.md を参照。
  7. Atlas Cloudオープニングショット(任意、推奨)。 開始画像、終了画像、Kling、音声に合わせたリタイミング。references/opening-shot.md を参照。
  8. シーン。 src/reel/BRIEF.md をビートごとに、その後シーングループごとに1エージェントを並行して、チェック用エージェントも1つ。references/editing.md と references/scene-rules.md を参照。
  9. カバー。 クリックを誘うタイトルとロゴ。references/cover.md を参照。
  10. 静止画でチェック、修正、その後レンダリング。 zsh scripts/render_final.sh をバックグラウンドで(90秒で10~15分)。
  11. 最終ファイルを検証、exports/instagram.md を作成。 references/checks.md を参照。
  12. 完了。 プロジェクト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.mdinspiration/ フォルダのファイルを参照からスケジュール投稿まで単独で処理

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本のバーが一時停止ボタンのように見えたため、名前はその下に書かれたままにしている。

関連スキル