Community图像github.com

binay-py/thumbnail-maker

使用 Pillow 制作 YouTube 和社交媒体缩略图(1280x720,以及 1080x1920 的 Shorts/Reels 和 1200x630 的链接预览),支持大号自动适配标题、高亮关键词、截屏红圈箭头或人物照片。

thumbnail-maker 是什么?

thumbnail-maker 是一个 Python 脚本工具,利用 Pillow 库自动生成专业级的 YouTube 缩略图、社交媒体封面和视频标题卡。它支持两种主要视觉风格:技术教程风格(截屏 + 手绘红圈箭头)和人物出镜风格(透明背景人物照片置于文字前方)。工具能自动检查标题在 YouTube 搜索缩略图大小下的可读性、对比度、模糊测试(眯眼测试)以及视频时长标记角落是否被遮挡,并输出预览表单。支持 dark/light/pop/red/green/tech 等多种配色风格,以及 clean(纯色或模糊背景)、burst(渐变)等布局。该技能适用于 Claude Code、Cursor、Codex 等 AI 编程助手,用户只需要描述需求(如“为这个代码错误做个缩略图”),助手即可调用脚本生成符合 2025 年最佳实践的缩略图。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/binay-py/claude-skills/tree/HEAD/skills/thumbnail-maker

Installed? Explore more 图像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜欢的 AI 中提问

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

文档

thumbnail-maker 是做什么的?

scripts/thumbnail.py(旁边需有 scripts/fonts.py)。需要 Python 3.9+ 和 pip install pillow。

# 技术/教程:截屏,重要行被圈出,箭头从标题指向圆圈
python thumbnail.py --title "Claude almost deleted *everything*" --style dark --shot terminal.png --circle 0.19,0.17,0.18 --arrow --out t.jpg

# 人物出镜:透明背景人物站在标题前
python thumbnail.py --title "I tested *every* AI coding tool" --style dark --photo me-cutout.png --out t.jpg

# 照片背景,Shorts 尺寸
python thumbnail.py --title "A day as a *dev*" --bg desk.jpg --style dark --size 1080x1920 --out short.jpg
选项作用
--title3–5 个单词效果最佳。用 *word* 标记关键词(一个框或颜色)。默认大写,除非使用 --keep-case。
--styledark(近黑色 + 黄色)、light(米白色 + 红色),或更抢眼的 pop、red、green、tech。
--lookclean(默认):纯色加轻微暗角,或 --bg 照片模糊变暗以增强对比。burst:旧的渐变 + 放射光效果。
--shot img截屏作为主要视觉。宽幅裁切(终端或界面的一两行文字)会全宽放在标题下方;较高的截屏则放在标题旁边。按比例放大填充空间。
--circle x,y,r截屏上的手绘红色椭圆。x,y = 中心点,r = 物体半宽,均以截屏尺寸的分数表示。
--arrow从标题指向圆圈的手绘箭头(如果上方空间不足,会绕开标题)。--mark-color 可改变红色。
--photo img人物照片。带透明通道的 PNG(已抠图)会加轮廓并放在标题边缘前方以增加层次感;普通照片会变成带边框的卡片(--photo-shape circle、--tilt 可调整形状和倾斜)。
--subtitle、--emoji、--accent、--highlight color、--size、--align、--font其他选项:小号副标题、表情贴纸、关键词颜色、无需框的彩色关键词、输出尺寸、对齐方式、标题字体。

设计规则(来自 2025 年顶级缩略图的做法)

  • 一个想法,3–5 个词。 标题与图片互补,不要重复描述图中内容。
  • 展示真实内容。 截取实际错误、结果或界面的截屏,比通用插图更好。紧贴关键行并圈出。
  • 人脸: 使用已抠图的清晰表情人物,占据画面 40–60% 的高度。不要在眼睛上放置文字。
  • 两种颜色。 纯色背景 + 一个强调色。避免放射光、表情墙或渐变文字,这些会显得像模板或 AI 生成。
  • 保持右下角空白:YouTube 会在此处显示视频时长。

检查项(打印在控制台,并生成 <名称>.preview.png)

  • 标题字母在 168 像素宽(YouTube 搜索缩略图尺寸)下的高度小于 8 像素 → 警告。
  • 标题的有效对比度(填充色与背景,以及轮廓)低于 3:1 → 警告。
  • 眯眼测试: 标题区域模糊到 48 像素宽后,仍必须与周围环境区分。
  • 视频时长角落: 标题延伸至右下角 20% x 16% 区域 → 警告。
  • 关键词框与背景融合,关键词与框/轮廓对比度过低,单词数超过 6 个。 任何警告都会导致退出码为 1。使用图片前请查看预览表单。

限制

  • 不支持自动去背景:请传入已经抠好的 PNG(可使用 remove.bg、Photoshop、macOS 的“复制主体”功能)。
  • 圆圈和箭头的位置取决于你提供的 --circle 数值:检查预览,如果椭圆形偏移则调整 x/y/r。
  • 字体:标题默认使用 Impact(Windows/macOS;Linux 需安装 ttf-mscorefonts,或设置 FONT_TITLE=/path/Anton-Regular.ttf)。可通过 FONT_TITLE、FONT_BOLD、FONT_EMOJI 覆盖。
  • 表情符号:仅支持单个码点(Pillow 在不启用 libraqm 的情况下无法处理 ZWJ 序列)。
  • 无人脸检测:裁切照片时请确保人脸不靠近边缘。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能