Communitygithub.com

logo-popups

在说话者指尖弹出品牌 Logo(Claude、Codex、ChatGPT、Grok、Gemini、Cursor 等),与所说的词语同步。手部追踪跟随手指,Logo 避开面部,保留原始音频。当用户输入 /logo-popups 或要求在视频中手指指向的位置添加 Logo、图标或品牌弹出时使用。

logo-popups 是什么?

该技能能够自动检测视频中说话者手指指向的动作,并在指尖位置弹出对应的品牌 Logo,与说话者所说的词语同步。它支持 Claude、Codex、ChatGPT、Grok、Gemini、Cursor 等多种预设品牌,也允许用户自定义图标(来自 lobehub.com/icons 或本地图片)。技能通过手部追踪(`track.py`)和语音识别(`words.py`)两个步骤分别获取指向时间窗口和词语时间点,然后自动匹配出每个指向对应的品牌,生成渲染计划 JSON。渲染时支持面部避让、颜色、大小、偏移等多种参数微调,最终输出带原始音频的 H.264 MP4 视频。该技能适用于内容创作者制作产品评测、技术教程等视频,让观众直观看到正在讨论的工具或品牌。

兼容平台✓Claude Code✓Codex CLI✓Cursor✓Gemini CLI
npx skills add https://github.com/sknitd/logo-popups/tree/HEAD

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Logo 弹出:从指尖弹出的 Logo

用户通常是非技术背景。回复尽量简短,直接帮他们完成工作,不要要求他们运行命令。

所有路径均相对于本技能文件夹(即此 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),然后重新运行 setup。
  • NEED_PYTHON:安装 Python 3.12(Mac:brew install [email protected],Windows:winget install Python.Python.3.12),然后重新运行 setup。

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。如果用户已经告诉你要用哪些 Logo,则按照他们指向的顺序使用。 如果没有任何词语提到品牌名,且用户也没有说明,则问一个简短的问题:使用哪些 Logo,按什么顺序。

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 文件路径。

每个弹出可选的参数(均为可选):

键含义默认值
label图标下方药丸中的文字;"" 隐藏它品牌名称
bg瓷砖背景色(十六进制)预设值,否则为白色
fg单色 SVG Logo 的颜色深色瓷砖上为白色,浅色上为黑色
accent弹出环的颜色预设值,否则为 Logo 颜色
size瓷砖宽度占视频宽度的比例0.24
logo_scaleLogo 在瓷砖内的大小比例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,帧率与原始视频相同,保留原始音频。
  3. 告知用户文件位置,并提醒他们在发布前观看一遍。

规则

  • 绝不能遮盖面部。面部避让默认开启;但仍需检查静态图片。
  • 每次指向只弹出一个 Logo。如果对同一品牌指向两次,则使用两次弹出。
  • Logo 是其所有者的商标;本技能仅用于评论和评测。除非用户要求,否则不要添加说话者未提及的 Logo。

相关技能