/venice-youtube-thumbnail
Thumbnail and cover workflow with Venice. Use when a user needs a YouTube thumbnail, a podcast or video cover, or a vertical cover for Shorts, Reels or TikTok. Covers a truthful concept from the video's actual topic, 16:9 and 9:16 framing, leaving room for a headline, in-image
Claude Code
$ npx -y skills add veniceai/skills --skill venice-youtube-thumbnail --agent claude-code
Codex
$ npx skills add veniceai/skills --skill venice-youtube-thumbnail -a codex -y
Cursor
$ npx skills add veniceai/skills --skill venice-youtube-thumbnail -a cursor -y
Gemini CLI
$ npx skills add veniceai/skills --skill venice-youtube-thumbnail -a gemini-cli -y
GitHub Copilot
$ npx skills add veniceai/skills --skill venice-youtube-thumbnail -a github-copilot -y
OpenCode
$ npx skills add veniceai/skills --skill venice-youtube-thumbnail -a opencode -y
Windsurf
$ npx skills add veniceai/skills --skill venice-youtube-thumbnail -a windsurf -y
SKILL.md
venice-youtube-thumbnail.SKILL.mdname: venice-youtube-thumbnail
description: Thumbnail and cover workflow with Venice. Use when a user needs a YouTube thumbnail, a podcast or video cover, or a vertical cover for Shorts, Reels or TikTok. Covers a truthful concept from the video's actual topic, 16:9 and 9:16 framing, leaving room for a headline, in-image text vs adding text afterwards, using a real person's face only from their own photo, generating and comparing variants, focused edits, and saving at the right size. Uses venice_image_generate, venice_image_edit and venice_image_multi_edit from the Venice MCP server, or POST /image/generate and /image/edit.
Thumbnails and covers with Venice
A thumbnail has one job: show, honestly and at a glance, what the video is about. This workflow produces a few strong options, then refines the winner. Built on [`venice-create-image`](../venice-create-image/SKILL.md).
| Step | Venice MCP tool | REST endpoint | |---|---|---| | Generate concepts | `venice_image_generate` | `POST /api/v1/image/generate` | | Refine one concept | `venice_image_edit` | `POST /api/v1/image/edit` | | Put the creator's own photo into a scene | `venice_image_multi_edit` | `POST /api/v1/image/multi-edit` | | Find models that handle text and faces well | `venice_list_models`, `venice_model_details` | `GET /api/v1/models` |
Use when
- A video needs a thumbnail, or a channel needs a consistent thumbnail style.
- A podcast, course or Shorts series needs covers.
- A user wants several options to A/B test.
Workflow
1. Start from the video, not the clickbait
Ask what the video actually shows and what the viewer gets. The thumbnail should promise only that. Pick one idea: a result, a contrast (before and after), a question, or an emotion. Avoid images of things that never happen in the video.
2. Decide the format
| Placement | Aspect ratio | |---|---| | YouTube video thumbnail | `16:9` (commonly 1280x720) | | Shorts, Reels, TikTok cover | `9:16` | | Podcast or course cover | `1:1` |
Pick a model whose `venice_model_details` lists the ratio you need. `/image/generate` doesn't reject an unlisted ratio: most models silently fall back to their default, so check that every result has the shape you asked for.
Check the platform's current upload limits, such as maximum file size and minimum width, before delivering.
3. Decide how to handle text
Keep any headline to three to five words.
- **In the image:** pick a model that renders text well (compare candidates with `venice_list_models` and `venice_model_details`), put the exact words in quotes in the prompt, and check the spelling in every result.
- **Added afterwards:** ask the model to leave clean space for the headline ("empty area on the left third for a title"), then add the text in a design tool. This is the safer choice for exact fonts and spelling.
4. Faces
Only show a real person if the user provides their own photo or has that person's permission. Put them into the scene with `venice_image_multi_edit` (their photo plus a scene description) or `venice_image_edit` on their photo, and keep their likeness faithful. Do not generate look-alikes of public figures.
5. Generate options
Call `venice_image_generate` with the concept, the aspect ratio and `variants: 3` or `4` to compare directions in one call. Thumbnails are viewed small, so ask for a bold subject, strong contrast, a clean background and no clutter.
6. Refine and check
Use `venice_image_edit` for focused changes ("make the background darker", "increase contrast on the face", "remove the extra object on the right"). Then view the image at a small size: if the idea is not clear at a glance, simplify it.
Save files
The MCP tools return images inline. To save a thumbnail to disk, call the REST endpoint with `VENICE_API_KEY` set:
code=$(curl -sS https://api.venice.ai/api/v1/image/generate \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flux-2-pro",
"prompt": "Bold YouTube thumbnail: a cracked smartphone on the left, the same phone repaired and glowing on the right, high contrast, clean dark background, empty space at the top for a title",
"aspect_ratio": "16:9",
"format": "jpeg",
"return_binary": true
}' -D headers.txt --output thumbnail.jpg -w '%{http_code}')
if [ "$code" != 200 ]; then
echo "generate failed ($code):"; cat thumbnail.jpg; rm -f thumbnail.jpg
elif grep -qi '^x-venice-is-content-violation: *true' headers.txt; then
echo "blocked by content policy: rework the concept"; rm -f thumbnail.jpg
fi
rm -f headers.txtWith `return_binary: true` the response body is the image, so `--output` writes it directly. An error body would land in the same file, which is why the snippet checks the status. A content-policy block still returns `200`, with a placeholder image and `x-venice-is-content-violation: true`, so it checks that header too. Variants need `return_binary: false`; see [`venice-create-image`](../venice-create-image/SKILL.md#save-files).
Cost
Each variant and each edit is billed as one image. Three to four concepts and one or two edits is usually enough.
Errors
| Status | Likely cause | What to do | |---|---|---| | `400` | `variants` with `return_binary: true`, or a field the model doesn't support | Use JSON responses for variants; check `venice_model_details`. | | `422` | Content policy rejection on an edit. `/image/generate` returns a `200` with `x-venice-is-content-violation: true` and a placeholder instead. | Rework the concept. |
Full error handling is in [`venice-errors`](../venice-errors/SKILL.md).
Gotchas
- Misspelled text is the most common failure; always proofread in-image text.
- Small details disappear at thumbnail size. One subject and one idea.
- Keep a channel's thumbnails consistent by reusing the same style words, palette and, where it helps, a `seed`.
- Do not imply the video contains something it doesn't.
##
Read more
name: venice-youtube-thumbnail description: Thumbnail and cover workflow with Venice. Use when a user needs a YouTube thumbnail, a podcast or video cover, or a vertical cover for Shorts, Reels or TikTok. Covers a truthful concept from the video's actual topic, 16:9 and 9:16 framing, leaving room for a headline, in-image text vs adding text afterwards, using a real person's face only from their own photo, generating and comparing variants, focused edits, and saving at the right size. Uses venice_image_generate, venice_image_edit and venice_image_multi_edit from the Venice MCP server, or POST /image/generate and /image/edit.
Thumbnails and covers with Venice
A thumbnail has one job: show, honestly and at a glance, what the video is about. This workflow produces a few strong options, then refines the winner. Built on [`venice-create-image`](../venice-create-image/SKILL.md).
| Step | Venice MCP tool | REST endpoint | |---|---|---| | Generate concepts | `venice_image_generate` | `POST /api/v1/image/generate` | | Refine one concept | `venice_image_edit` | `POST /api/v1/image/edit` | | Put the creator's own photo into a scene | `venice_image_multi_edit` | `POST /api/v1/image/multi-edit` | | Find models that handle text and faces well | `venice_list_models`, `venice_model_details` | `GET /api/v1/models` |
Use when
- A video needs a thumbnail, or a channel needs a consistent thumbnail style.
- A podcast, course or Shorts series needs covers.
- A user wants several options to A/B test.
Workflow
1. Start from the video, not the clickbait
Ask what the video actually shows and what the viewer gets. The thumbnail should promise only that. Pick one idea: a result, a contrast (before and after), a question, or an emotion. Avoid images of things that never happen in the video.
2. Decide the format
| Placement | Aspect ratio | |---|---| | YouTube video thumbnail | `16:9` (commonly 1280x720) | | Shorts, Reels, TikTok cover | `9:16` | | Podcast or course cover | `1:1` |
Pick a model whose `venice_model_details` lists the ratio you need. `/image/generate` doesn't reject an unlisted ratio: most models silently fall back to their default, so check that every result has the shape you asked for.
Check the platform's current upload limits, such as maximum file size and minimum width, before delivering.
3. Decide how to handle text
Keep any headline to three to five words.
- **In the image:** pick a model that renders text well (compare candidates with `venice_list_models` and `venice_model_details`), put the exact words in quotes in the prompt, and check the spelling in every result.
- **Added afterwards:** ask the model to leave clean space for the headline ("empty area on the left third for a title"), then add the text in a design tool. This is the safer choice for exact fonts and spelling.
4. Faces
Only show a real person if the user provides their own photo or has that person's permission. Put them into the scene with `venice_image_multi_edit` (their photo plus a scene description) or `venice_image_edit` on their photo, and keep their likeness faithful. Do not generate look-alikes of public figures.
5. Generate options
Call `venice_image_generate` with the concept, the aspect ratio and `variants: 3` or `4` to compare directions in one call. Thumbnails are viewed small, so ask for a bold subject, strong contrast, a clean background and no clutter.
6. Refine and check
Use `venice_image_edit` for focused changes ("make the background darker", "increase contrast on the face", "remove the extra object on the right"). Then view the image at a small size: if the idea is not clear at a glance, simplify it.
Save files
The MCP tools return images inline. To save a thumbnail to disk, call the REST endpoint with `VENICE_API_KEY` set:
code=$(curl -sS https://api.venice.ai/api/v1/image/generate \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flux-2-pro",
"prompt": "Bold YouTube thumbnail: a cracked smartphone on the left, the same phone repaired and glowing on the right, high contrast, clean dark background, empty space at the top for a title",
"aspect_ratio": "16:9",
"format": "jpeg",
"return_binary": true
}' -D headers.txt --output thumbnail.jpg -w '%{http_code}')
if [ "$code" != 200 ]; then
echo "generate failed ($code):"; cat thumbnail.jpg; rm -f thumbnail.jpg
elif grep -qi '^x-venice-is-content-violation: *true' headers.txt; then
echo "blocked by content policy: rework the concept"; rm -f thumbnail.jpg
fi
rm -f headers.txtWith `return_binary: true` the response body is the image, so `--output` writes it directly. An error body would land in the same file, which is why the snippet checks the status. A content-policy block still returns `200`, with a placeholder image and `x-venice-is-content-violation: true`, so it checks that header too. Variants need `return_binary: false`; see [`venice-create-image`](../venice-create-image/SKILL.md#save-files).
Cost
Each variant and each edit is billed as one image. Three to four concepts and one or two edits is usually enough.
Errors
| Status | Likely cause | What to do | |---|---|---| | `400` | `variants` with `return_binary: true`, or a field the model doesn't support | Use JSON responses for variants; check `venice_model_details`. | | `422` | Content policy rejection on an edit. `/image/generate` returns a `200` with `x-venice-is-content-violation: true` and a placeholder instead. | Rework the concept. |
Full error handling is in [`venice-errors`](../venice-errors/SKILL.md).
Gotchas
- Misspelled text is the most common failure; always proofread in-image text.
- Small details disappear at thumbnail size. One subject and one idea.
- Keep a channel's thumbnails consistent by reusing the same style words, palette and, where it helps, a `seed`.
- Do not imply the video contains something it doesn't.
##
Agent Skills for the Venice API. Skills are self-contained folders of instructions (one SKILL.md each) that an LLM agent loads on demand to work correctly against a specific surface area of the API.
Other skills on venice.
More skills from other plugins.
karpathy-guidelines
Behavioral guidelines to reduce common LLM coding mistakes. Use when writing, reviewing, or refactoring code to avoid…
book-to-skill
Converts books and documents (PDF, EPUB, DOCX, HTML, Markdown, plain text, RTF, MOBI/AZW with Calibre) into structured agent…
distilly
Set up the owner profile so a personal agent knows who it works for (first-run setup, \"get to know me\"), or distill colleague,…
Questions about venice-youtube-thumbnail.
- Which coding agents can use venice-youtube-thumbnail?
- venice-youtube-thumbnail installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

