YouTube Thumbnail
Design a high-CTR YouTube thumbnail — striking imagery, bold text placement, and emotional face/subject if needed.
Inputs
| Name |
Type |
Required |
Default |
Description |
title |
text |
yes |
— |
The video title or topic (e.g. "I tried 7 AI tools in 24 hours — here's what happened"). |
channel_style |
text |
no |
bold, high contrast, bright colors, clean design, YouTube tech aesthetic |
Channel brand style (e.g. "dark moody gaming", "bright educational", "minimal corporate"). |
subject_description |
text |
no |
— |
Optional description of the person or subject to feature (e.g. "a surprised young man in a hoodie"). |
Steps
Thumbnails are the #1 factor in YouTube CTR. Generate a single, maximum-impact 16:9 image.
Phase A — Plan the composition
Before generating, briefly reason about the best thumbnail formula for this topic:
- Emotion-first: shocked/curious face if relevant + bold text = high CTR
- Text overlay: 3–5 words max, high-contrast (white/yellow on dark, or vice-versa)
- Contrast & saturation: thumbnails compete in a grid — they must pop
Phase B — Generate the thumbnail
- Build the image generation prompt:
- Subject:
{{subject_description}} if provided, otherwise design an object/scene that dramatizes the topic.
- Mood: derives from
{{channel_style}}.
- Composition: rule-of-thirds, subject on left or right with empty space for text.
- Style tags:
{{channel_style}}, youtube thumbnail composition, ultra detailed, vibrant, high contrast, 16:9.
- Call
muapi image generate (model=gpt-image-2-text-to-image, aspect_ratio=16:9).
Phase C — Text overlay guidance
After generation, return:
- Suggested overlay text: 3–5 bold words that complement the title
{{title}}.
- Text placement: where on the canvas to position text (e.g. "bold yellow text, top-right third").
- Font recommendation: style suggestion (e.g. "Impact-style all-caps with black outline").
Notes
- Never put too much text in the prompt — text rendering in image models is unreliable. Guide the user on adding text in post-production (Canva, Photoshop).
- If the user already has a channel image or face photo in the session, use
muapi image edit to incorporate it.
- Suggest A/B variants only if the user asks.
Trigger Keywords
youtube thumbnail, yt thumbnail, thumbnail, video thumbnail, youtube cover
Notes for the Executing Agent
- This recipe is LLM-orchestrated: read each phase, gather any missing inputs from the user, then call
muapi CLI commands. Use muapi auth configure first if MUAPI_API_KEY is unset.
- For model IDs without a CLI alias yet, fall back to the raw endpoint via
curl -X POST https://api.muapi.ai/api/v1/<endpoint> -H "x-api-key: $MUAPI_API_KEY" -H 'content-type: application/json' -d '{...}' and poll with muapi predict wait <request_id>.
- Substitute
{{input_name}} placeholders with the user's actual inputs before issuing each call.
Source: hashgraph-online/awesome-codex-plugins → plugins/SamurAIGPT/Generative-Media-Skills/library/visual/youtube-thumbnail/SKILL.md
1---2name: muapi-youtube-thumbnail3description: Design a high-CTR YouTube thumbnail — striking imagery, bold text placement, and emotional face/subject if needed.4---5678# YouTube Thumbnail910**Design a high-CTR YouTube thumbnail — striking imagery, bold text placement, and emotional face/subject if needed.**1112## Inputs1314| Name | Type | Required | Default | Description |15|:---|:---|:---|:---|:---|16| `title` | text | yes | — | The video title or topic (e.g. "I tried 7 AI tools in 24 hours — here's what happened"). |17| `channel_style` | text | no | bold, high contrast, bright colors, clean design, YouTube tech aesthetic | Channel brand style (e.g. "dark moody gaming", "bright educational", "minimal corporate"). |18| `subject_description` | text | no | — | Optional description of the person or subject to feature (e.g. "a surprised young man in a hoodie"). |192021## Steps2223Thumbnails are the #1 factor in YouTube CTR. Generate a single, maximum-impact 16:9 image.2425### Phase A — Plan the composition2627Before generating, briefly reason about the best thumbnail formula for this topic:28- **Emotion-first**: shocked/curious face if relevant + bold text = high CTR29- **Text overlay**: 3–5 words max, high-contrast (white/yellow on dark, or vice-versa)30- **Contrast & saturation**: thumbnails compete in a grid — they must pop3132### Phase B — Generate the thumbnail33341. Build the image generation prompt:35 - Subject: `{{subject_description}}` if provided, otherwise design an object/scene that dramatizes the topic.36 - Mood: derives from `{{channel_style}}`.37 - Composition: rule-of-thirds, subject on left or right with empty space for text.38 - Style tags: `{{channel_style}}, youtube thumbnail composition, ultra detailed, vibrant, high contrast, 16:9`.392. Call `muapi image generate` (model=gpt-image-2-text-to-image, aspect_ratio=16:9).4041### Phase C — Text overlay guidance4243After generation, return:44- **Suggested overlay text**: 3–5 bold words that complement the title `{{title}}`.45- **Text placement**: where on the canvas to position text (e.g. "bold yellow text, top-right third").46- **Font recommendation**: style suggestion (e.g. "Impact-style all-caps with black outline").4748## Notes49- Never put too much text in the prompt — text rendering in image models is unreliable. Guide the user on adding text in post-production (Canva, Photoshop).50- If the user already has a channel image or face photo in the session, use `muapi image edit` to incorporate it.51- Suggest A/B variants only if the user asks.5253## Trigger Keywords5455`youtube thumbnail`, `yt thumbnail`, `thumbnail`, `video thumbnail`, `youtube cover`565758---5960## Notes for the Executing Agent6162- This recipe is LLM-orchestrated: read each phase, gather any missing inputs from the user, then call `muapi` CLI commands. Use `muapi auth configure` first if `MUAPI_API_KEY` is unset.63- For model IDs without a CLI alias yet, fall back to the raw endpoint via `curl -X POST https://api.muapi.ai/api/v1/<endpoint> -H "x-api-key: $MUAPI_API_KEY" -H 'content-type: application/json' -d '{...}'` and poll with `muapi predict wait <request_id>`.64- Substitute `{{input_name}}` placeholders with the user's actual inputs before issuing each call.6566---6768**Source:** [`hashgraph-online/awesome-codex-plugins`](https://github.com/hashgraph-online/awesome-codex-plugins) → `plugins/SamurAIGPT/Generative-Media-Skills/library/visual/youtube-thumbnail/SKILL.md`