AI Thumbnail Generator - Faces + Hook Headlines avatar

AI Thumbnail Generator - Faces + Hook Headlines

Pricing

from $150.00 / 1,000 thumbnail generateds

Go to Apify Store
AI Thumbnail Generator - Faces + Hook Headlines

AI Thumbnail Generator - Faces + Hook Headlines

Make a video thumbnail with AI. Give it a title or a story. It reads the emotion and writes a short all-caps hook. Then it draws a close-up face with gpt-image-1. The headline is burned on with a real font, so it stays sharp. Sizes: 9:16, 16:9 and 1:1. Bring your own OpenAI key.

Pricing

from $150.00 / 1,000 thumbnail generateds

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

20 hours ago

Last modified

Share

AI Thumbnail Generator: a close-up face and a hook headline, from your title

Give it a video title, or the whole story. It works out the emotion, writes a short all-caps hook, draws a close-up face with that expression, then burns the headline on with a real font so the words stay sharp. You get a PNG in 9:16, 16:9 or 1:1.

The image is drawn on your own OpenAI key, which you paste into the input. The $0.15 below is what this actor charges per thumbnail; the image generation itself is billed to you by OpenAI. Leave the key out and the run writes a free sample record showing the exact output shape, with no image and no thumbnail charged.

InputA title, or a title plus the story text
OutputOne thumbnail PNG in the key-value store per run
CeilingOne thumbnail per run
Account neededYour own OpenAI key
Price$0.15 per thumbnail, flat on every plan

🖼️ What AI Thumbnail Generator does

Three steps, and the middle one is the one people get wrong on their own.

It reads your title or story and picks an emotion: betrayal, rage, shock, disgust, heartbreak, fear, guilt or defiance. That emotion becomes an explicit facial description in the image prompt, which is why the face reads at phone size instead of looking mildly concerned. You can override it.

It then pulls a short hook out of your text, in all caps, and keeps the bottom quarter of the image deliberately plain so the words have somewhere to sit.

Finally the headline is drawn on afterwards with Montserrat ExtraBold, not asked for inside the image prompt. Image models are famously bad at letters. Burning the text on with a real font is the difference between a headline and a smear of glyph-shaped noise.

Sizes follow the ratio: 9:16 gives 1024x1536, 16:9 gives 1536x1024, 1:1 gives 1024x1024.

📥 What you give it

{
"title": "AITA for refusing to pay for my sister's wedding?",
"aspectRatio": "9:16",
"openaiApiKey": "sk-...",
"burnText": true
}
FieldWhat the run uses if you leave itWhat it is
titlebox starts with an exampleThe video title or story headline. This drives both the emotion and the hook.
storyemptyThe full story or script. Longer text gives the emotion detection more to work with.
subredditemptyInforms the hook style. amitheasshole fixes the hook to AM I THE A-HOLE ?.
aspectRatio9:169:16 for Shorts, Reels and TikTok, 16:9 for YouTube, 1:1 for square.
emotionauto-detectedForce one of the eight instead of letting it read the text.
hookTextderived from your textForce the burned-in headline word for word.
genderthe model's own defaultBias the face, for example feminine or masculine.
burnTexttrueTurn it off to get the raw face with no headline on it.
openaiApiKeynoneYour OpenAI key, stored as a secret. Without it you get the sample record.
imageModelgpt-image-1The image model name.
imageQualityhighlow, medium or high. This changes what OpenAI bills you, not what this charges.
imageBaseUrlOpenAI's ownAn OpenAI-compatible images endpoint of your own, if you use one.

📤 What you get back

One dataset row per thumbnail, with the PNG itself in the run's key-value store under thumbnail-<timestamp>.png.

Below is the real record a keyless run wrote, cut short where the note and the prompt run long. A real run returns the same fields with output.imageKey and output.imageUrl filled in:

{
"ok": true,
"_sample": true,
"sampleData": true,
"note": "SAMPLE OUTPUT ...",
"title": "AITA for refusing to pay for my sister's wedding?",
"subreddit": null,
"emotion": "shock",
"hookText": "REFUSING TO PAY",
"aspectRatio": "9:16",
"size": "1024x1536",
"imagePrompt": "Generate one ultra-high-quality viral YouTube thumbnail image. VERTICAL 9:16 portrait (1024x1536). ...",
"output": { "imageKey": null, "imageUrl": null },
"processingSeconds": 0
}
FieldWhat it is
output.imageKey, output.imageUrlThe finished PNG in the key-value store, and a link to it.
emotionWhich of the eight it read out of your text, or the one you forced.
hookTextThe headline as it was burned on, already uppercased.
imagePromptThe whole prompt that was sent. Worth reading once: it is how you learn what to change.
sizeThe pixel size that matches your ratio.
subredditEchoed back as null when you left it empty.
processingSecondsHow long the run took end to end.

🧾 Reading the output

Only a delivered thumbnail is written to the dataset. Everything else goes somewhere it cannot bill.

RowWhere it landsCharged
A thumbnailthe dataset, one rowyes
The sample recordthe key-value store, under SAMPLE_AND_NOTICESno
A notice or a failure recordthe same keyno

That split is deliberate. This actor is billed per dataset row, so a sample, a notice or a failure must never be written there, and it is not. If you start a run with no key, your dataset stays empty and the sample sits in SAMPLE_AND_NOTICES for you to read.

If the headline overlay fails for any reason, the run still hands you the image without the text rather than failing, and says so in the log.

▶️ How to run it

  1. Open AI Thumbnail Generator and click Try for free.
  2. Put your video title into Title / headline. Paste the story into Story if you have one.
  3. Pick an Aspect ratio.
  4. Paste your key into OpenAI API key. It is stored as a secret.
  5. Click Start, then open the Storage tab and download thumbnail-*.png.

💰 How much does it cost?

$0.15 per thumbnail. Flat on every Apify plan, no volume tiers. One run makes one thumbnail, so a run is one charge.

A keyless run is not charged for a thumbnail, because no thumbnail is made and nothing is written to the dataset. Image generation is billed to you by OpenAI on your own key and does not appear here. imageQuality changes that side of the bill, not this one.

💡 What people use it for

  • Covers for Reddit story channels, where the hook and the face are the whole click.
  • Testing three emotions on the same title to see which one gets the click, by forcing emotion.
  • Making the 16:9 and the 9:16 version of one cover so a long video and its short match.
  • Getting the raw face with burnText off, then setting your own type in an editor.
  • Batching through a task with different titles, one run each.

🚧 What it does not do

  • One thumbnail per run. There is no batch mode.
  • It needs your own OpenAI key. There is no shared key on this actor.
  • It draws a face, not your face. No photo upload, no likeness of a real person, no face swap.
  • No logos, no brand assets, no product shots. The prompt asks for a clean image with no text, no watermark and no UI.
  • The model still decides what it draws. Two runs on the same title give you two different faces, which is useful for testing and annoying if you wanted the same one twice.
  • No editing after the fact. To change the headline, set hookText and run it again.
  • The headline is one line in one typeface. Montserrat ExtraBold, lower third, uppercase.
  • No A/B testing or analytics. It makes the image, what happens after is yours.

🧭 Which creator tool do you need?

If you wantUse
A thumbnail with a face and a hookThis one
Captions burned into the videoAuto Caption Burner
A whole faceless short built from a scriptAI Faceless Short Generator
A long video cut into short clipsAI Viral Clip Cutter
A hook scored before you shoot itHook Virality Scorer

❓ Questions people ask

Why do I need my own OpenAI key? The image is generated on your key, so the usage and the cost of generation stay on your account.

Can I use my own face? No. It generates a person, it does not edit a photo you upload.

Why is the headline added afterwards instead of inside the image? Because image models garble text. Drawing it on afterwards with a real typeface is the only way to get letters that read.

Can I force the exact headline? Yes, put it in hookText and it is used word for word, uppercased.

What does the emotion actually change? It swaps in a specific facial description, like a dropped jaw and raised eyebrows for shock. That is the bit that makes a thumbnail readable at phone size.

What happens if I run it without a key? You get the sample record in the key-value store under SAMPLE_AND_NOTICES, no image, and no thumbnail charge.

🆘 If something breaks

Open the Issues tab on the actor page. Send the run ID and the title you used. Read imagePrompt on the row first: most surprises are the prompt doing exactly what the title asked for.