Communitygithub.com

logo-popups

話し手が指を指すと、その指先からClaude、Codex、ChatGPT、Grok、Gemini、Cursorなどのロゴが飛び出すポップアップ効果を動画に追加します。手の動きを追跡し、発言と同期。元の音声はそのまま保持します。

logo-popups とは?

このスキルは、動画内で話し手が指を指すと、その指先からブランドロゴが飛び出すポップアップ効果を自動生成するAIエージェント(Claude Code、Codex、Cursorなど)向けのツールです。話し手が「Claude」「Codex」などと発言したタイミングや指の動きを検出し、ロゴを表示する正確なタイミングを自動的に決定。ロゴのサイズ、色、位置、顔を避ける機能など、細かな調整が可能で、最終的にはH.264形式の動画として出力します。このスキルは主に動画編集者やコンテンツクリエイター向けで、ブランドレビューや解説動画の視覚的インパクトを高めるために使用されます。コードベースはPythonスクリプト群で構成され、手の追跡(MediaPipe)、音声認識(Whisper)、動画レンダリング(FFmpeg)を統合。ユーザーはロゴのプリセット名を指定するだけで、手動で複雑な編集を行うことなくプロフェッショナルなポップアップ効果を動画に追加できます。

対応✓Claude Code✓Codex CLI✓Cursor✓Gemini CLI
npx skills add https://github.com/sknitd/logo-popups/tree/HEAD

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

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

ドキュメント

ロゴポップアップ:指先からロゴが飛び出す効果

ユーザーは通常、技術者ではありません。返信は短く、代わりに作業を行い、コマンドを実行するよう依頼しないでください。

すべてのパスは、このスキルのフォルダ(このSKILL.mdが置かれているフォルダ)からの相対パスです。コマンドではその絶対パスを使用してください。以下のPYは、このフォルダ内の.venv/bin/python(Windowsでは.venv\Scripts\python.exe)を意味します。

1. 初回実行:セットアップ(一度だけ)

bash scripts/setup.shを実行します。完了するとREADYと表示されます(初回は1~3分かかります)。

  • NEED_FFMPEG:FFmpegをインストールし(Mac:brew install ffmpeg、Windows:winget install ffmpeg)、再度セットアップを実行します。
  • NEED_PYTHON:Python 3.12をインストールし(Mac:brew install [email protected]、Windows:winget install Python.Python.3.12)、再度セットアップを実行します。

2. 指の動きと発言の検出

両方の処理を動画に対して実行します。

  • PY scripts/track.py <video>:手を追跡し、<video>.hands.jsonを保存して、指を指している区間(指が立てられている時間)を出力します。
  • PY scripts/words.py <video>:各単語が発声された時刻を出力します。

各区間を、その区間内またはその近くで話し手が名付けたブランド名と照合します。Whisperはブランド名を誤認識することがよくあります。「cloud」は通常Claude、「codecs」はCodex、「croc」/「grok」はGrok、「chat GPT」はChatGPT、「Gemini」、「cursor」はCursorです。ユーザーが既に使用するロゴを指定している場合は、それらを指の順序に従って使用します。 発言にブランド名が含まれておらず、ユーザーも指定していない場合は、短い質問を1つ行います:「どのロゴを、どの順番で表示しますか?」

3. 計画ファイルの作成

動画と同じ場所に<video-name>_logos.jsonとして保存します。

{"pops": [
  {"logo": "claude", "start": 1.12, "end": 1.85},
  {"logo": "codex",  "start": 2.10, "end": 3.05},
  {"logo": "grok",   "start": 3.45, "end": 4.50}
]}
  • start:手が静止した後の一拍(区間の開始時)か、対応する単語が発声された時刻の、遅い方。end:指が下がるか、次のポップが始まる時刻。各ポップは0.7~1.2秒が最適です。ポップ同士が重ならないようにしてください。
  • logo:下記のプリセット名、lobehub.com/icons のアイコン名(例:notion、figma、vercel;<name>-colorを優先的に試します)、またはユーザーが指定したPNG/SVGへのパス。

ポップごとのオプション(すべて任意):

key説明デフォルト値
labelアイコン下のピル内のテキスト。""で非表示ブランド名
bgタイルの色(16進数)プリセット、それ以外は白
fg単色SVGロゴの色暗いタイルでは白、明るいタイルでは黒
accentポップリングの色プリセット、それ以外はロゴの色
sizeタイルの幅(動画の幅に対する比率)0.24
logo_scaleタイル内のロゴサイズ0.66
gap指先からアイコンまでの距離(タイルサイズ単位)0.85
nudge追加の [x, y] オフセット(幅に対する比率)[0, 0]
avoid_face顔を覆う場合に自動で上にずらすtrue
burstポップ時のリングとスパークエフェクトtrue

プリセット:claude、anthropic、codex、openai、chatgpt、grok、gemini、cursor、perplexity、deepseek、copilot、mistral、meta。

4. 確認、そしてレンダリング

  1. まず静止画で確認(高速):PY scripts/render.py <plan.json> <video> <folder>/check.png --still 1.5,2.6,4.0 のように、各ポップの中間の時刻を指定します。生成されたPNGファイルを確認し、顔を覆っていないか、端で切れていないか、指から離れすぎていないか(gap、nudge、size、タイミング)を修正します。
  2. レンダリング:PY scripts/render.py <plan.json> <video> <video-name>_logos.mp4。出力はH.264 MP4、幅1080、同じfps、元の音声を保持。
  3. 出力ファイルの場所をユーザーに伝え、公開前に確認するよう促します。

ルール

  • 決して顔を覆わないでください。顔回避はデフォルトで有効ですが、静止画でも確認してください。
  • 1回の指さしにつき1つのロゴ。同じブランドに2回指をさした場合は、2つのポップを使用します。
  • ロゴは各所有者の商標です。本ツールは解説やレビュー目的で使用します。ユーザーが要求しない限り、話し手が言及していないロゴを追加しないでください。

関連スキル