YouTube Thumbnail Maker
Generate YouTube thumbnails from scratch using Gemini (BananaBananaPro). Supports reference photos for face consistency, style cloning from competitor thumbnails, and iterative editing.
When to Use
- User says "make a thumbnail", "generate thumbnail", "thumbnail for this video"
- User shares a video concept and needs a thumbnail
- User wants to clone a competitor's thumbnail style with their own face/branding
Quick Start
# Generate from a text description
python3 ~/.claude/skills/youtube-thumbnail-maker/generate_thumbnail.py \
--prompt "Person looking at phone timer showing 17:43, videos uploading in background" \
--title "How I Post Every Day in Under 20 Minutes" \
--style "clean, high-contrast, bold text overlay"
# Generate with a reference photo of the creator
python3 ~/.claude/skills/youtube-thumbnail-maker/generate_thumbnail.py \
--prompt "Person looking shocked at their phone" \
--title "This Changed Everything" \
--reference path/to/creator_photo.jpg
# Clone style from a competitor thumbnail
python3 ~/.claude/skills/youtube-thumbnail-maker/generate_thumbnail.py \
--clone path/to/competitor_thumbnail.jpg \
--prompt "Recreate this style but with different person and text" \
--title "My Version of This Topic" \
--reference path/to/my_photo.jpg
# Edit an existing thumbnail
python3 ~/.claude/skills/youtube-thumbnail-maker/generate_thumbnail.py \
--edit path/to/generated_thumb.jpg \
--prompt "Make the text bigger, change background to dark blue"
# Generate from YouTube URL (downloads their thumbnail, clones the style)
python3 ~/.claude/skills/youtube-thumbnail-maker/generate_thumbnail.py \
--youtube "https://youtube.com/watch?v=VIDEO_ID" \
--prompt "Same style but about posting daily" \
--title "How I Post Every Day"
Parameters
| Flag |
Description |
--prompt, -p |
Description of what the thumbnail should show |
--title, -t |
Text overlay for the thumbnail (the YouTube title shown ON the image) |
--subtitle |
Secondary text (smaller, below title) |
--reference, -r |
Reference photo(s) of the creator for face consistency |
--clone, -c |
Competitor thumbnail to clone the style of |
--youtube, -y |
YouTube URL to download thumbnail from and clone style |
--edit, -e |
Existing thumbnail to edit/refine |
--style, -s |
Style keywords (e.g. "clean, bold, dark background, neon accents") |
--variations, -n |
Number of variations to generate (default: 3) |
--resolution |
Output resolution: 1K, 2K, 4K (default: 2K) |
--output, -o |
Custom output path |
Output
Thumbnails saved to .tmp/thumbnails/YYYYMMDD/ organized by date.
HHMMSS_v1.jpg, HHMMSS_v2.jpg, HHMMSS_v3.jpg for variations
HHMMSS_edited.jpg for edit passes
Thumbnail Best Practices (Built Into Prompts)
- 16:9 aspect ratio (1280x720 native YouTube)
- High contrast - must read at small sizes (mobile)
- Max 3-5 words of text on thumbnail
- Face = clicks - close-up emotional faces outperform
- Complementary to title - thumbnail shows, title tells
- Bold colors - yellow, red, white on dark backgrounds
- Rule of thirds - subject on left or right third, text on opposite
API
- Model:
gemini-3-pro-image-preview
- API Key:
GEMINI_API_KEY env var (from ~/.claude/.env)
- Cost: ~$0.14-0.24 per generation
- Format: 16:9, 2K default resolution
1---2name: youtube-thumbnail-maker3description: YouTube Thumbnail Maker4---5# YouTube Thumbnail Maker67Generate YouTube thumbnails from scratch using Gemini (BananaBananaPro). Supports reference photos for face consistency, style cloning from competitor thumbnails, and iterative editing.89## When to Use10- User says "make a thumbnail", "generate thumbnail", "thumbnail for this video"11- User shares a video concept and needs a thumbnail12- User wants to clone a competitor's thumbnail style with their own face/branding1314## Quick Start1516```bash17# Generate from a text description18python3 ~/.claude/skills/youtube-thumbnail-maker/generate_thumbnail.py \19 --prompt "Person looking at phone timer showing 17:43, videos uploading in background" \20 --title "How I Post Every Day in Under 20 Minutes" \21 --style "clean, high-contrast, bold text overlay"2223# Generate with a reference photo of the creator24python3 ~/.claude/skills/youtube-thumbnail-maker/generate_thumbnail.py \25 --prompt "Person looking shocked at their phone" \26 --title "This Changed Everything" \27 --reference path/to/creator_photo.jpg2829# Clone style from a competitor thumbnail30python3 ~/.claude/skills/youtube-thumbnail-maker/generate_thumbnail.py \31 --clone path/to/competitor_thumbnail.jpg \32 --prompt "Recreate this style but with different person and text" \33 --title "My Version of This Topic" \34 --reference path/to/my_photo.jpg3536# Edit an existing thumbnail37python3 ~/.claude/skills/youtube-thumbnail-maker/generate_thumbnail.py \38 --edit path/to/generated_thumb.jpg \39 --prompt "Make the text bigger, change background to dark blue"4041# Generate from YouTube URL (downloads their thumbnail, clones the style)42python3 ~/.claude/skills/youtube-thumbnail-maker/generate_thumbnail.py \43 --youtube "https://youtube.com/watch?v=VIDEO_ID" \44 --prompt "Same style but about posting daily" \45 --title "How I Post Every Day"46```4748## Parameters4950| Flag | Description |51|------|-------------|52| `--prompt`, `-p` | Description of what the thumbnail should show |53| `--title`, `-t` | Text overlay for the thumbnail (the YouTube title shown ON the image) |54| `--subtitle` | Secondary text (smaller, below title) |55| `--reference`, `-r` | Reference photo(s) of the creator for face consistency |56| `--clone`, `-c` | Competitor thumbnail to clone the style of |57| `--youtube`, `-y` | YouTube URL to download thumbnail from and clone style |58| `--edit`, `-e` | Existing thumbnail to edit/refine |59| `--style`, `-s` | Style keywords (e.g. "clean, bold, dark background, neon accents") |60| `--variations`, `-n` | Number of variations to generate (default: 3) |61| `--resolution` | Output resolution: 1K, 2K, 4K (default: 2K) |62| `--output`, `-o` | Custom output path |6364## Output6566Thumbnails saved to `.tmp/thumbnails/YYYYMMDD/` organized by date.67- `HHMMSS_v1.jpg`, `HHMMSS_v2.jpg`, `HHMMSS_v3.jpg` for variations68- `HHMMSS_edited.jpg` for edit passes6970## Thumbnail Best Practices (Built Into Prompts)71721. **16:9 aspect ratio** (1280x720 native YouTube)732. **High contrast** - must read at small sizes (mobile)743. **Max 3-5 words** of text on thumbnail754. **Face = clicks** - close-up emotional faces outperform765. **Complementary to title** - thumbnail shows, title tells776. **Bold colors** - yellow, red, white on dark backgrounds787. **Rule of thirds** - subject on left or right third, text on opposite7980## API8182- **Model:** `gemini-3-pro-image-preview`83- **API Key:** `GEMINI_API_KEY` env var (from `~/.claude/.env`)84- **Cost:** ~$0.14-0.24 per generation85- **Format:** 16:9, 2K default resolution