ThumbAPI logoThumbAPI

Photo in Thumbnail — Your Face, Automatically

Face-in-thumbnail is one of the most reliable click drivers on YouTube. But manually placing your face into every thumbnail takes 15–30 minutes per video — masking, positioning, lighting adjustments, composing around the text. Set usePhoto: true on the ThumbAPI generate call and the AI does it in one API call.

YouTube thumbnail generated with usePhoto: true — creator photo composited into a "2026 Home Income Blueprint" scene
usePhoto:true
sourceSaved Personal Photo asset used as source

The saved Personal Photo (source, right) composited into a full YouTube thumbnail scene by a single usePhoto: true call.

How It Works

Upload your headshot once in the ThumbAPI dashboard as your saved Personal Photo. After that, every generation request with usePhoto: true composites your face into the thumbnail automatically. No inline photo upload per request. No re-uploading.

curl -X POST https://api.thumbapi.dev/v1/generate \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "I quit my SaaS job to build a YouTube channel",
    "format": "youtube",
    "usePhoto": true
  }'

Not Just Overlay — Real Composition

Some thumbnail tools "add your face" by pasting a masked cutout on top of a background. That gives you a face floating in front of a scene it does not belong to. ThumbAPI passes your photo to the image model as part of the generation, so the AI composes the scene around your face — matching lighting direction, color palette, and composition weight. The result looks intentional, not layered.

Inline Override — Different Photo per Request

Sometimes you want a specific photo for a specific video — a shocked expression, a laughing shot, a specific outfit. Pass photoImage as a base64-encoded data URL (PNG or JPEG, max 2MB) and it overrides your saved photo for that single request. Your saved photo stays untouched for future calls.

const fs = require("fs");
const photoBase64 = fs.readFileSync("./shocked-face.jpg", "base64");

const response = await fetch("https://api.thumbapi.dev/v1/generate", {
  method: "POST",
  headers: {
    "x-api-key": "YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    title: "The bug that cost us $50K",
    format: "youtube",
    usePhoto: true,
    photoImage: `data:image/jpeg;base64,${photoBase64}`,
  }),
});

Choosing a Good Source Photo

  • Clear headshot — no motion blur, no heavy filters, face fully visible
  • Good lighting — flat or lightly directional, avoid harsh shadows across the face
  • Neutral or removed background — helps the AI integrate you into the generated scene without dragging the original background along
  • Multiple expressions available — save the highest-frequency one (typically confident or curious) as your main, then use photoImage inline for one-off expressions

One Person or a Group

The source photo does not have to be a solo headshot. You can pass a two-person shot, a family photo, a small team photo, or any group image and usePhoto: true will composite that group into the generated scene. Useful for co-hosted podcasts, sibling channels, couple travel vlogs, family cooking channels, and any content where more than one person is the focus.

A few practical notes:

  • Best results with a single person — the AI has more room to compose the scene when it only has one face to place. For brand consistency across many videos, one clean headshot beats a group shot.
  • Group photos work well too — for family-run channels, duo hosts, or team content, upload the group and expect the AI to preserve everyone in frame. Keep the group tight (2 to 5 people); very large groups start to feel crowded once thumbnail text is added.
  • Framing matters — a horizontally-framed group photo composites into 16:9 YouTube thumbnails more cleanly than a vertical one. If the group photo is tall/portrait, consider cropping before upload.

Faceless vs. Face-Forward — Both Are Supported

usePhoto is a flag, not a mode lock. Some videos benefit from your face, others do not. Send usePhoto: true for opinion videos and personality-driven content; usePhoto: false (default) for tutorials, data-driven pieces, or when the topic itself carries the visual.

The same API key, same channel, same brand style — mixed thumbnail strategy per video. For fully faceless workflows, see the Faceless Thumbnails feature.

Who This Is For

Solo Creators

Face-in-thumbnail on YouTube reliably beats faceless CTR for personality-driven content. Automating the composite step means you skip 15–30 minutes of Photoshop per video.

Podcast Hosts

Same face, hundreds of episodes. Save your photo once, generate every episode's cover with usePhoto: true. Consistency without the manual work.

Agencies With Multiple Creator Clients

Save each client's photo as their own personal photo (per-client API key) or override inline with photoImage. One codepath, many creators.

Pricing

usePhoto: true is a +2 credit add-on per generation. A 1K generation with a photo costs 12 credits (10 base + 2 add-on). Combining with useLogo adds another +2. Full breakdown on the generate endpoint documentation.

Add your face to every thumbnail — zero manual work

Try ThumbAPI free — 50 credits per month, no credit card. Upload your photo from the dashboard once.