From content-vault
Designs branded YouTube thumbnails for two-person interviews/podcasts. Uses rembg to cut faces from headshots and renders 1280×720 PNGs with brand colors and logo.
How this skill is triggered — by the user, by Claude, or both
Slash command
/content-vault:youtube-thumbnailThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The thumbnail factory for **two-person interview / podcast** videos.
The thumbnail factory for two-person interview / podcast videos.
HTML → PNG via headless Chrome, faces cut out with rembg. Produces the
high-CTR genre archetype (think Moonshots "AI Killed the Modern
Company") re-skinned to your brand: two head cutouts flush to the edges,
one bold 2–5 word headline with a single saturated highlight, bold name
labels, your wordmark lockup.
This is the still thumbnail skill. It feeds /youtube-publisher,
which sets the thumbnail on the uploaded video. For a text-only tutorial
style (single template, no faces), use /graphics-designer instead —
different genre.
<YOUR_BRAND>, <YOUR_ACCENT> (one saturated
highlight color, e.g. an emerald #10b981 or a max-interrupt red
#FF0000), <YOUR_LOGO> (your wordmark + mark), <YOUR_BRAND_DOC>.rembg once for the face cutouts (Python venv + the u2net
model, ~176MB one-time download). It runs locally; no API key.<YOUR_GRAPHICS_DIR> at wherever you keep render scripts +
templates + the brand HTML. No template yet? The skill builds the
1280×720 HTML from your brand tokens the first time.Trigger on:
/youtube-thumbnailSkip for:
/graphics-designer (text + slabs style)/graphics-designer/youtube-publisher (consumes this output)You can design a thumbnail in Figma and hand it over as the spec — export it as SVG (1280×720 frame). SVG is text/XML, so the agent reads your exact colors, geometry, and layout and rebuilds it in the HTML template (version-controlled, brand-locked, automated). Figma is the sketchpad; the HTML template is the source of truth that feeds the publish pipeline. For maximum fidelity, untick "Outline text" in Figma's SVG export so the literal words + font survive; either way the SVG can be rasterized and matched visually. PNG export also works, but SVG lets the agent read precise values.
Distilled from a verified, adversarially-checked research pass on 2026 thumbnail performance. The rules below are the confirmed ones; the debunked myths are listed so you don't chase them.
Load-bearing rules (verified):
HL (1–2 words on the highlight box) + REST (1–2 short lines).
Total ≤ 5 words is the ceiling; 3–4 is the target.<YOUR_ACCENT> is the default; a red #FF0000 is the
max-pattern-interrupt option (use white text on it). One accent,
never two.Debunked — do NOT design around these (all refuted under review):
Ask for whatever's missing in one batch:
FIRST LAST).
Rendered uppercase by default.HL (the highlight-box phrase) +
REST. Mirror the reference's contrarian energy (AI Killed /
Cold Outbound). Keep it ≤ 5 words.dark (default, recommended) or light (on-brand).<YOUR_ACCENT> default, #FF0000 red
option) + accent-text color (dark ink on a light accent, white on red).Not shipped until all are true:
Iterating on the visual is fine; declaring done without logging it is not.
Each face must be a transparent PNG. Reuse an existing cutout if you have
one. Otherwise run rembg on the headshot:
# one-time: python3 -m pip install rembg (downloads u2net model on first run)
rembg i public/speakers/<person>.png public/cutouts/<person>-cut.png
Open the result and check the alpha edges — stray pixels on hair/glasses are most visible on the dark skin.
Build the thumbnail from an HTML template (your brand tokens, a 1280×720 frame) and rasterize with headless Chrome. The template exposes the per-thumbnail fields; a thin render script substitutes them:
# render pattern: substitute fields, then screenshot at 1280x720
python3 render_interview_thumbnail.py \
--hl "AI Killed" --rest "Cold Outbound" \
--name-l "HOST NAME" --name-r "GUEST NAME" \
--face-l public/cutouts/host-cut.png \
--face-r public/cutouts/guest-cut.png \
--theme dark \
--out yt-interview-<topic>
Outputs yt-interview-<topic>.png (+ @2x). Use \n in --rest to
force a line break. Default skin is dark; pass --theme light for
the on-brand light skin. Render both if you intend to A/B test.
Proof-stack variant (red accent + notification stack, sentence-case names):
python3 render_interview_thumbnail.py \
--hl "Outbound Signals" --rest "that book calls" \
--name-l "Host Name" --name-r "Guest Name" --name-case title \
--face-l public/cutouts/host-cut.png --face-r public/cutouts/guest-cut.png \
--theme dark --font-size 76 \
--accent "#FF0000" --accent-text "#ffffff" \
--proof "New call booked" --proof-time "now" \
--out yt-interview-<topic>
Longer headlines need --font-size below the 96 default (76 fits a 2–3
word line; drop further for more words).
Defaults are tuned for ~800×800 portrait cutouts. For a new headshot, nudge per-side knobs until eyes sit on the upper third and the body bleeds off the outer edge (so the headline clears it): a head-height scale, an outer-edge bleed (x), and a vertical offset (y), per side. Re-render and re-check. Trust the render, not your expectation.
Downscale to thumbnail size and look. If the headline isn't instantly legible or the faces blur together, it fails — fix and re-render.
python3 -c "from PIL import Image; im=Image.open('output/yt-interview-<topic>.png'); im.resize((246,138)).save('/tmp/squint.png')"
Open /tmp/squint.png. Checklist:
<YOUR_LOGO> lockup present?<YOUR_BRAND_DOC>).Save the PNGs (1× + @2×) where your content lives — your Drive graphics folder, a Notion Content row (Format = Video, Channel = YouTube), or your content vault file. Capture the asset link. Note which skin(s) shipped if you rendered both for an A/B test.
One line: PNG paths, asset link(s), where logged. Note if both skins
shipped for an A/B test. Suggest the handoff: /youtube-publisher sets
this as the video thumbnail; /linkedin-copywriter for the launch post.
<YOUR_GRAPHICS_DIR> (1280×720 HTML +
substitute-and-screenshot script)<YOUR_BRAND_DOC> · voice rules + checklist/youtube-publisher (sets thumbnail on the video)/graphics-designer (tutorial / solo, text + slabs)npx claudepluginhub timscheuerai/content-vaultGenerates bold high-contrast YouTube thumbnail images with dramatic framing exaggerated expressions and click-optimized compositions using Gemini. Triggers on youtube thumbnail thumbnail youtube video thumbnail yt thumbnail.
Generates thumbnails and cover images optimized for click-through rate using Gemini models. Supports YouTube, blogs, courses with platform dimensions, references, and editing via NanoBanana skill.
Generates high-CTR video thumbnails for Bilibili/YouTube/TikTok using the pop-out technique: cutout person overlays a dimmed original with text, auto-layout to 16:9/4:3/3:4 via HTML/CSS. Useful when users need video covers, thumbnails, or pop-out portraits.