Skip to content
Skill Authoring
Skill

/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

From plugin
venice
17028 skills

Claude Code

$ npx -y skills add veniceai/skills --skill venice-youtube-thumbnail --agent claude-code

SKILL.md

venice-youtube-thumbnail.SKILL.md
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.txt

With `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
@veniceai
Ships withvenice

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.

Stars on GitHub

Momentum

stars in total
170
Star history of veniceai/skills on GitHub, a chart by star-history.com

Other skills on venice.

venice-api-keys

venice-api-keys

Manage Venice API keys. Covers GET/POST/PATCH/DELETE /api_keys, GET /api_keys/{id}, GET /api_keys/rate_limits, GET…

@veniceai@veniceaiInstall Skill
venice-api-overview

venice-api-overview

High-level map of the Venice AI API - base URL, which auth mode each endpoint accepts (API key, x402 wallet, or none), endpoint…

@veniceai@veniceaiInstall Skill
venice-audio-music

venice-audio-music

Async music, sound-effect and long-form voice generation via Venice. Covers the /audio/quote + /audio/queue + /audio/retrieve +…

@veniceai@veniceaiInstall Skill
venice-audio-speech

venice-audio-speech

Generate speech from text via POST /audio/speech, and clone a voice via POST /audio/voices. Covers TTS models (Kokoro, Qwen 3,…

@veniceai@veniceaiInstall Skill
venice-audio-transcription

venice-audio-transcrip…

Transcribe audio files to text via POST /audio/transcriptions. Covers supported models (Parakeet, Whisper, Wizper, Scribe, xAI…

@veniceai@veniceaiInstall Skill
venice-audio-voice-changer

venice-audio-voice-cha…

Async speech-to-speech voice conversion via Venice — re-record a source recording in a different voice while keeping delivery and…

@veniceai@veniceaiInstall Skill

More skills from other plugins.

gstack-openclaw-ceo-review

gstack-openclaw-ceo-re…

Use when asked to review a plan, challenge a proposal, run a CEO review, poke holes in an approach, think bigger about scope, or…

gstack2w138k
@garrytan@garrytanInstall Skill
book-to-skill

book-to-skill

Converts books and documents (PDF, EPUB, DOCX, HTML, Markdown, plain text, RTF, MOBI/AZW with Calibre) into structured agent…

@virgiliojr94@virgiliojr94Install Skill
distilly

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,…

@titanwings@titanwingsInstall Skill

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.