Thumbnail Generation

Generate and edit thumbnails, swap in real faces, extract references, and compose prompts.

llms.txt Full docs for LLMs

TOOL find_outlier_references

Default entry point for a brand-new thumbnail. Searches Algrow's database for topically-similar videos with proven outlier performance and renders them as a clickable grid in the thumbnail studio widget. Requires a specific YouTube niche or video title (2+ meaningful words) — generic single words like 'thumbnail' or 'video' are rejected.

Example prompts
"Find outlier thumbnails for the niche 'AI side hustles'"
"Show me viral references for a video titled 'I survived 24 hours in a black hole'"
ParameterTypeDefaultDescription
topicstringrequiredAlgrow semantic search query — must be a specific YouTube niche or video title (2+ meaningful words). Pass the exact same string as title when both are present.
titlestringnullThe user's video title. The widget pre-fills its TITLE field with this. Always pass when known.
content_typestringlongformlongform or shorts. Default longform.
limitinteger12Max thumbnails per page. Default 12, capped at 24.
min_outlier_scorenumber2.0Floor on outlier multiplier. Default 2.0.
pageinteger11-indexed Algrow page. Default 1.
TOOL generate_thumbnail

Submit a thumbnail generation request to the configured image backend (Nano Banana Pro, gpt-image-2, or a Seedream variant). Returns immediately with a task_id; the inline widget polls for the result automatically. Default aspect ratio 16:9. Accepts up to 8 reference URLs (YouTube links, bare video IDs, i.ytimg.com URLs, direct image URLs). Costs 1 credit per image regardless of model.

Example prompts
"Generate a YouTube thumbnail of a person looking shocked at a giant pile of cash"
"Make me a 16:9 thumbnail using these references and nano-banana-pro"
ParameterTypeDefaultDescription
promptstringrequiredThe video title the thumbnail is for, plus only specifics you explicitly want (exact overlay text, who must appear). With references attached, the engine designs the scene and composes the text itself.
aspect_ratiostring16:916:9 / 9:16 / 1:1 / 4:5 / 4:3 / 3:2 / 21:9 / auto. Default 16:9.
resolutionstring2K1K / 2K / 4K. Default 2K.
reference_urlsarraynullUp to 8 reference inputs. Each can be a YouTube URL, bare video ID, i.ytimg.com URL, or direct image URL.
reference_imagesarraynullAlias for reference_urls, accepted for back-compat.
find_outliers_firstbooleanfalseAuto-pick path: fetch viral references from Algrow and use the top 3. Only set True when the user explicitly opts into auto-pick.
outlier_topicstringnullTopic to search Algrow for when find_outliers_first=True. Keep short (2–3 words).
analyze_referencesbooleantrueWhen True (default) and reference_urls are provided, the server runs Gemini vision on the references to extract a design breakdown and folds it into the prompt.
modelstringgpt-image-2Image-gen backend: gpt-image-2 (default), seedream-5.0-lite (permissive filter), seedream-4.5-edit (image-to-image), or nano-banana-pro (requires BYOK Gemini key). All models cost 1 credit per image.
use_own_keybooleantrue
fastbooleanfalse
compose_task_idstringnull
num_variantsinteger1
channel_presetstringnull
custom_instructionsstringnull
video_scriptstringnull
realisticbooleanfalse
character_refsarraynull
waitbooleanfalse
TOOL generate_thumbnail_channel_style

One-call pipeline for 'make a thumbnail in the design of @channel'. Pass the video title + the channel and the server runs the whole Studio pipeline itself: pulls the channel's top thumbnails, vision-analyses them, matches the best one to the title, engineers the prompt (overlay text included) and renders. 1 credit (3 with fast=true); typically 60–240s with wait=true.

Example prompts
"Make me a thumbnail in the style of @MrBeast for this title"
"Realistic thumbnail in @EzraCage's design, fast mode, for "...""
ParameterTypeDefaultDescription
titlestringrequiredThe video title the thumbnail is for.
channelstringrequiredThe channel whose design to copy — UC... id, @handle, or channel URL.
modelstringgpt-image-2Image-gen backend. Default gpt-image-2.
fastbooleanfalseFast-mode toggle — dedicated fast render path, flat 3 credits/image.
realisticbooleanfalseRealistic Mode: render as a real, unretouched phone photo — keeps the matched design's layout and text but forces a photographic medium.
aspect_ratiostring16:916:9 / 9:16 / 1:1 / … Default 16:9.
resolutionstring2K1K / 2K / 4K. Default 2K.
custom_instructionsstringnullOnly for design requirements you explicitly have — leave unset otherwise.
video_scriptstringnullOptional: the video's script/outline — grounds the design in what the video actually shows.
character_refsarraynullOptional identity refs — 'render THIS person': [{url, name?, description?}].
waitbooleanfalseBlock until the image is ready and return images + a summary in one call (recommended without a widget).
TOOL edit_thumbnail

Apply a plain-English edit to an already-generated thumbnail — a surgical img2img pass, not a regeneration. The finished image goes back to the image model as the canvas plus the instruction; everything the instruction doesn't cover stays identical, and the result lands as a NEW version in the widget's version strip (earlier versions are never overwritten). Returns immediately with a task_id; the widget polls check_thumbnail_status. Powers the widget's Edit box, but Claude may also call it directly when the user asks for a specific edit to an existing render — base_image_url must be a real URL from a completed generation, never invented.

Example prompts
"Make the text on that thumbnail yellow"
"Remove the red arrow from the last thumbnail you generated"
ParameterTypeDefaultDescription
base_image_urlstringrequiredURL of the generated thumbnail to edit — must come from a completed generation (never invented). Sent to the image model as image 1 (the canvas).
instructionstringrequiredPlain-English description of the change to make, e.g. 'make the text yellow'. Max 2000 chars.
reference_urlsarraynullOptional extra source images for the change (a product, face, or logo to insert/swap). Sent as images 2+; the canvas plus these are capped at 8 total.
modelstringnano-banana-proImage-gen backend. Default nano-banana-pro. gpt-image-2 is force-remapped to nano-banana-pro — its img2img copy tendency fights instruction edits.
aspect_ratiostring16:916:9 / 9:16 / etc. Default 16:9 — keep it matching the base image.
use_own_keybooleantrueSame semantics as generate_thumbnail: when True (default) and the user has a BYOK Gemini key, nano-banana-pro edits on THEIR key (no Algrow credits). When False, Algrow credits.
fastbooleanfalseFast-mode toggle — same semantics as generate_thumbnail (dedicated fast render path, flat 3 credits/image).
waitbooleanfalse
TOOL thumbnail_presets

ONE tool for everything reusable in thumbnail generation — mirrors the Studio's unified Presets. A preset is keyed by a free-form label and snapshots whatever you have set: custom instructions, a subject face (auto-added as the on-camera person), style reference thumbnail(s), a borrowed channel, and default model / aspect_ratio / resolution / fast_mode / realistic_mode. action='list' returns your presets (tagged kind: full or text) plus recent_channels; action='save' creates or updates by label; action='remove' deletes one. Apply a preset by passing its label as channel_preset to generate_thumbnail. Free.

Example prompts
"Save a preset called "Marion Vale" with this face and these instructions"
"Make a thumbnail for my Marion Vale channel titled "...""
"List my thumbnail presets"
ParameterTypeDefaultDescription
actionstringlistlist | save | remove. Default list.
labelstringnullFree-form preset label — required for action='save'.
instructionsstringnullCustom design instructions stored with the preset.
face_urlstringnullPublic URL of the subject face put in every thumbnail.
face_image_b64stringnullBase64 image bytes of the subject face — uploaded to R2 and stored as face_url.
style_reference_urlsarraynullStyle-reference thumbnail(s) whose look to reuse — applied as extra references, after the face.
channel_stylestringnullOptional channel (@handle / UC id) whose design language this preset borrows.
modelstringnullDefault image-gen backend.
aspect_ratiostringnullDefault aspect ratio (16:9 / 9:16 / …).
resolutionstringnullDefault resolution (1K / 2K / 4K).
fast_modebooleannullDefault Fast-mode state. Omit to leave unrecorded.
realistic_modebooleannullDefault Realistic-mode state. Omit to leave unrecorded.
preset_idintegernullPreset id from the list — required for action='remove' (kinds full and text).
kindstringnullFor action='remove': full (default) | text | recent_channel.
channel_idstringnullUC id — required for action='remove' with kind='recent_channel'.
TOOL thumbnail_history

Your generated-thumbnail history, newest first — every thumbnail you've made, whether it came from the browser Studio, the MCP tools, or the REST API (one shared history). Each item carries the final image URL(s), the title it was made for, model, aspect ratio and timestamp. Reuse an old thumbnail as a style reference by passing its image URL in reference_urls. Paged with limit + offset; has_more signals another page. Free.

Example prompts
"Show me the last thumbnails I generated"
"Find the coop thumbnail I made yesterday and make a variant of it"
ParameterTypeDefaultDescription
limitinteger24How many items to return (1–60). Default 24.
offsetinteger0Skip this many items (for paging). Default 0.
TOOL check_thumbnail_status

Internal poll for the thumbnail studio widget — looks up the status of a generation task by task_id. The widget calls this on a loop while a generation is in flight; Claude should not normally invoke it from chat.

Example prompt
"(Widget-internal) Check thumbnail generation status for task_id abc123"
ParameterTypeDefaultDescription
task_idstringrequiredThe task_id returned by generate_thumbnail.
promptstringOriginal prompt (echoed back to the widget).
aspect_ratiostring16:9Echoed back to the widget.
resolutionstring2KEchoed back to the widget.
reference_urlsarraynullEchoed back to the widget.
outliersarraynullEchoed back to the widget.
outlier_topicstringnullEchoed back to the widget.
modelstringnano-banana-proEchoed back to the widget.
compose_task_idstringnull
TOOL detect_people_in_reference

Check whether a reference image has a person in it, so you can offer to put the user's own face in the render instead of a stranger's. Cheaper and faster than a full thumbnail analysis, and cached per image for six hours. Free — no credits.

Example prompt
"Is there a person in this reference? https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg"
ParameterTypeDefaultDescription
image_urlstringrequiredReference image to inspect — a YouTube URL, bare video id, i.ytimg.com URL, or direct image URL.
TOOL search_faces

Find photos of a person by name so one can be used as an identity reference — either as a character reference when generating, or as the face for swap_face. Returns candidate image URLs; run the chosen one through import_face before rendering with it. Free — no credits.

Example prompt
"Find a photo of Serena Williams I can use as the face in a thumbnail"
ParameterTypeDefaultDescription
querystringrequiredThe person's name, optionally with a disambiguator — e.g. Elias Yoder, MrBeast 2024.
TOOL import_face

Copy a face image into Algrow storage and return a stable URL the render pipeline can always fetch. Always run an external face URL through this before using it as a character reference or in swap_face — hotlinked sources can start refusing the download at render time. Free — no credits.

Example prompt
"Import this face photo so I can use it in a thumbnail: https://example.com/photo.jpg"
ParameterTypeDefaultDescription
image_urlstringrequiredDirect URL of the face image to import.
fallback_urlstringnullSecond URL to try when the first can't be fetched — e.g. the search result's smaller thumbnail.
TOOL swap_face

Put a real person's face onto a thumbnail you already generated, leaving everything else in the image untouched. base_image_url must come from a completed generation; face_url is the person's photo (run external URLs through import_face first). Costs 1 credit, or 3 with fast. Returns a pending task_id — the inline widget polls it, so pass wait=true from clients without one.

Example prompt
"Swap my face onto that thumbnail you just made"
ParameterTypeDefaultDescription
base_image_urlstringrequiredURL of the finished thumbnail to put the face onto (from a completed generation).
face_urlstringrequiredPhoto of the person whose face to use — identity is preserved exactly.
aspect_ratiostring16:9Keep this matching the base image.
fastbooleanfalsePrioritised render. Flat 3 credits instead of 1.
waitbooleanfalseBlock until the swap finishes and return the images in one call. Use from clients with no inline widget.
TOOL submit_thumbnail_feedback

Record a thumbs up or down on a generated thumbnail, with an optional note. Sending the same task_id again updates the existing rating rather than adding a second one. Free — no credits.

Example prompt
"That last thumbnail was bad — the face came out blurry"
ParameterTypeDefaultDescription
ratingstringrequiredup or down.
task_idstringnullThe generation's task_id — anchors the rating so a re-rate updates it.
image_urlstringnullURL of the rated image, when you don't have the task id.
feedbackstringnullFree-text note (max 2,000 characters).
esc
×

Buy More Credits

Boost
150
credits
$4.99
Good for:
  • ~12 min caption removal
Studio
1,000
credits
$31.49
Good for:
  • ~80 min caption removal