# Generate Youtube Thumbnail > Genera miniaturas de YouTube de alto CTR con Nano Banana 2 vía la API de Arcads: sube imágenes de referencia, cuida la fidelidad de parecido del personaje, usa fórmulas probadas por CTR y genera en lote. Fuente: https://skillsagentes.com/skills/krusemediallc/arcads-claude-code/generate-youtube-thumbnail Markdown: https://skillsagentes.com/skills/krusemediallc/arcads-claude-code/generate-youtube-thumbnail.md Repositorio: https://github.com/krusemediallc/arcads-claude-code Autor: krusemediallc Licencia: MIT Actualizado: hace 3 meses Coste de contexto: 99 tok instalada, 2.4k tok al activarse, 5k tok con todos los archivos del bundle Bundle: 2 archivos, 19 KB Permisos que pide: ninguno declarado ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add krusemediallc/arcads-claude-code --skill generate-youtube-thumbnail --agent claude-code # Cursor npx -y skills add krusemediallc/arcads-claude-code --skill generate-youtube-thumbnail --agent cursor # Codex npx -y skills add krusemediallc/arcads-claude-code --skill generate-youtube-thumbnail --agent codex # Gemini CLI npx -y skills add krusemediallc/arcads-claude-code --skill generate-youtube-thumbnail --agent gemini # Windsurf npx -y skills add krusemediallc/arcads-claude-code --skill generate-youtube-thumbnail --agent windsurf # Cline npx -y skills add krusemediallc/arcads-claude-code --skill generate-youtube-thumbnail --agent cline ``` ## Qué hace - Elige entre 5 fórmulas de miniatura probadas (branding con signo de paz, comparación real vs IA, flujo de terminal, reacción de shock, split antes/después) según lo que pide el usuario - Exige 5+ fotos de referencia de la cara desde distintos ángulos para evitar que la IA generalice a una cara genérica, y rechaza imágenes pegadas en el chat porque la API no puede leerlas - Sube cada referencia de forma fresca en cada generación (reusar la misma subida causa error 500) y genera en lote paralelo, hasta 10 a la vez - Después de generar, revisa cada miniatura con la herramienta de lectura de imágenes y presenta un top 3 rankeado por potencial de CTR con la razón de cada elección ## Cuándo usarla - El usuario pide 'make me a YouTube thumbnail', variaciones A/B de miniatura, o rehacer una miniatura con su cara ## Qué la activa - "Hazme una miniatura de YouTube para este video" - "Genera 10 variaciones de miniatura para A/B testing" ## Antes de instalar - Requiere `.env` con `ARCADS_BASIC_AUTH`/`ARCADS_API_KEY` y fotos de referencia guardadas en disco (rostro, logos, productos), no pegadas en el chat. - Necesita en el PATH: curl, python3 - Variables de entorno: ARCADS_BASIC_AUTH, ASPECT, COMMON_REFS, DOWNLOADED, ERRORS, MODEL, OUTPUT_BASE, OUTPUT_DIR, PRODUCT_ID, PROMPTS, RANDOM, REF_BASE, TMP_DIR - makes network requests - needs API credentials ## Archivos - SKILL.md — 10 KB - scripts/generate-batch.sh — 10 KB ## SKILL.md Reproducido tal cual desde krusemediallc/arcads-claude-code bajo MIT. Esta sección es el documento original y está en inglés. # Generate YouTube Thumbnail A reusable workflow for creating YouTube thumbnails via Arcads' Nano Banana 2 image endpoint with proper character likeness and proven CTR formulas. ## When to use this skill Trigger on phrases like: - "make me a YouTube thumbnail" - "create a thumbnail for this video" - "I need thumbnail variations / A/B tests" - "remake this thumbnail with my face" - "generate 10 thumbnail concepts" - "thumbnail with [me / my product / my brand]" ## Read order 1. **This file** — workflow, decision tree, batch generation 2. **[shared/skills/generate-youtube-thumbnail/prompting/guide.md](../../shared/skills/generate-youtube-thumbnail/prompting/guide.md)** — likeness alignment, expressions cheat sheet, prompt structure (shared across all generative-AI APIs in this portfolio) 3. **[shared/skills/generate-youtube-thumbnail/prompting/formulas.md](../../shared/skills/generate-youtube-thumbnail/prompting/formulas.md)** — 5 proven thumbnail formulas with templates (shared) 4. **[scripts/generate-batch.sh](scripts/generate-batch.sh)** — Arcads-specific batch script (presigned upload + S3 PUT pipeline) ## Prerequisites - `.env` with `ARCADS_BASIC_AUTH` and `ARCADS_API_KEY` - A `productId` (defaults to MASTER_CONTEXT.md's "My workspace" product) - Reference images on disk (NOT pasted in chat — chat-pasted images are NOT accessible to the API): - `face/` — 5+ photos of the subject (headshot + 3/4 angles + close-ups + expressions) - `logos/` — brand logos as files (orange Claude Code starburst, black Arcads A, etc.) - `products/` — clean product shots - `examples/` — real ad screenshots, comparison material - `style/` — example thumbnails the user wants to match aesthetically If references are missing or the user pastes images in chat instead of saving them, **stop and ask the user to drop the actual files into a project folder** (e.g. `references/youtube thumbnail/`). Chat paste ≠ file on disk. ## Workflow ### 1. Gather requirements (in order) Ask the user for any missing context, but only what you actually need: 1. **Concept** — what's the video about? Single concept, A/B variations, or specific recreation of an existing thumbnail style? 2. **Subject** — who is in the thumbnail (the user themselves, an AI character, no person)? 3. **Brand assets** — which logos / products / brand colors should appear? 4. **Text** — what should the title text say? Will text be baked in, or added in post (Canva/Photoshop)? 5. **Comparison material** — for "real vs AI" thumbnails, what real ad and what AI-generated ad? ### 2. Verify references exist on disk ```bash ls "references/youtube thumbnail/" ``` If references are missing, ask the user to drop them. **Do not proceed with text-only descriptions for brand-specific items** (logos, branded products, branded apparel) — you'll get generic AI approximations that don't match the brand. Generic descriptions are OK for backgrounds, expressions, and clothing. ### 3. Estimate cost and confirm Always present cost as an **estimate** before firing: > "Estimated cost: N variations × 24 credits = X credits. Tell me if you want to confirm exact pricing in the Arcads platform first." ### 4. Pick a formula See **[shared/skills/generate-youtube-thumbnail/prompting/formulas.md](../../shared/skills/generate-youtube-thumbnail/prompting/formulas.md)** for the 5 proven formulas. Match the user's intent: | User says... | Use formula | |---|---| | "Just me with my brand" / "branding thumbnail" | **Peace-sign / branding** | | "Real vs AI" / "compare" / "before/after" | **Real vs AI comparison** | | "Show the process" / "with the terminal" | **Terminal flow** | | "Surprised face" / "shocked reaction" | **Reaction shock** | | "Replace" / "alternative" / "swap out" | **Before/after split** | ### 5. Compose prompts Follow the template in **[shared/skills/generate-youtube-thumbnail/prompting/guide.md](../../shared/skills/generate-youtube-thumbnail/prompting/guide.md)**: ``` YouTube thumbnail, 16:9 landscape. [SUBJECT — likeness block + clothing + framing + "no hands" if applicable] Expression: [specific expression from expressions cheat sheet] [LEFT visual element + reference] [RIGHT visual element + reference] Across the top in massive bold yellow block letters with thick black outline reads [TITLE]. Background: [color + glow] Style: [aesthetic notes] Avoid: distorted face, extra fingers, hands visible, blurry logos, generic face ``` **Always include the CRITICAL CHARACTER LIKENESS block** when the subject is a real person. See `shared/skills/generate-youtube-thumbnail/prompting/guide.md`. ### 6. Generate (use the batch script) Copy `scripts/generate-batch.sh` to a new versioned script (`scripts/generate-thumbnails-vN.sh`) and modify: 1. Update `REF_BASE` and `COMMON_REFS` array with your reference file paths 2. Replace the `PROMPTS` array entries with your composed prompts 3. Run with `bash scripts/generate-thumbnails-vN.sh > output/run.log 2>&1 &` 4. Monitor with `tail -F output/run.log | grep -E "DONE|FAILED|Asset"` The script handles: - Image upscaling (Lanczos to 1080px longest side, RGB JPEG conversion) - Presigned upload + S3 PUT - **Fresh upload per generation** (critical — re-using filePaths causes 500 errors) - Parallel firing (10 in flight ≈ 1.5 min total) - Retry on failure - Asset polling and download ### 7. Review and present After all generations complete, read each thumbnail with the Read tool and present: - Brief verdict per thumbnail (likeness, readability, emotional impact) - Top 3 picks ranked by CTR potential - Specific reasons for the picks (which expression, which color contrast, which formula) - Offer next-step refinements (different expression, background color, copy variation) ### 8. Mandatory disclosures - **Always label credit totals as estimates** and tell the user to confirm exact pricing in Arcads - **Cost data:** Nano Banana 2 image = **24 credits** per generation (post-April-2026 800x credit multiplier) - **Generation time:** ~30–60 seconds typical - **Parallel budget:** 10 in parallel finishes in ~1.5–2 min total ## Quirks and pitfalls ### Reference images are effectively one-shot per upload Reusing the same uploaded `filePath` across multiple generation calls causes `HTTP 500 UNKNOWN_ERROR`. **Always upload fresh references for each generation.** The batch script handles this automatically with `upload_all_fresh()` per `generate_one()` call. ### Image preprocessing is mandatory Images smaller than 1080px longest side return `422 — The provided image is too small.` The skill's `prepare_image()` function: 1. Opens the image 2. Converts to RGB (strips alpha which trips some endpoints) 3. Upscales to 1080px longest side with Lanczos resampling if needed 4. Saves as JPEG quality 92 ### `referenceImages` is array of plain strings Not objects. Sending `[{filePath: "..."}]` returns `400 — each value in referenceImages must be a string`. Send `["external-api-temp-uploads/abc.jpg", ...]` instead. ### Chat-pasted images are NOT files If the user pastes an image directly in chat, you cannot pass it to the API. Ask them to save the actual file into a project folder. ### Likeness drift without enough references With 1-2 face references the AI generalizes to "generic bearded man with glasses." With 5+ face references from different angles it locks in the specific person. **Always use 5+ face references for character work.** ### macOS bash 3.2 Default macOS bash doesn't support `declare -A` (associative arrays). The batch script uses indexed arrays + temp files instead. ### Stale presigned URLs Presigned URLs expire after the `expiresIn` window (~10 min). Don't reuse URLs across long-running jobs — upload fresh. ### Brand-specific items need actual reference files Text descriptions of brand-specific items (logos, branded apparel, custom merchandise) will produce generic approximations. The Mr. Paid Social hat from text alone reads as "MR PAID SOCIAL" but won't match the real patch typography. **For pixel-accurate brand reproduction, save the actual brand asset to disk and pass it as a reference.** ## Cost reference | Operation | Credits | Notes | |---|---|---| | Nano Banana 2 image (1 generation) | 24 | post-800x multiplier | | 6-variation batch | 144 | typical for first explorations | | 10-variation batch | 240 | typical for refinements | | 20-variation batch | 480 | typical for broad concept exploration | Always present as estimates, confirm exact in the Arcads platform. ## See also - **[shared/skills/generate-youtube-thumbnail/prompting/guide.md](../../shared/skills/generate-youtube-thumbnail/prompting/guide.md)** — likeness alignment, expressions, prompt structure (shared across APIs) - **[shared/skills/generate-youtube-thumbnail/prompting/formulas.md](../../shared/skills/generate-youtube-thumbnail/prompting/formulas.md)** — 5 proven CTR formulas with prompt templates (shared) - **[scripts/generate-batch.sh](scripts/generate-batch.sh)** — Arcads-specific bash batch generator (presigned upload pipeline) - **[arcads-external-api skill](../arcads-external-api/SKILL.md)** — underlying API reference for Nano Banana 2 endpoint and reference upload pipeline ## Dónde encaja - Categoría: [Marketing](https://skillsagentes.com/categorias/marketing.md) — Campañas, copy, lanzamientos y ciclos de crecimiento. - Creador: [krusemediallc](https://skillsagentes.com/creators/krusemediallc.md) — 8 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Arcads External Api](https://skillsagentes.com/skills/krusemediallc/arcads-claude-code/arcads-external-api.md): Crea y consulta assets de video e imagen con IA vía la API externa de Arcads (Seedance 2.0, Sora 2, Veo 3.1, Kling, Grok Video, Nano Banana, b-roll, escenas, guiones/actores), con guía de prompting y espera hasta que cada asset esté listo. - [Nano Banana Image Ad](https://skillsagentes.com/skills/krusemediallc/arcads-claude-code/nano-banana-image-ad.md): Genera creativos de imagen para anuncios de Meta con Nano Banana 2 / Nano Banana Pro (familia Gemini Flash Image) vía la API de Arcads. Fija la familia de modelo, elimina chrome de plataforma y aplica layouts a prueba de bordes. - [Chatgpt Image Ad](https://skillsagentes.com/skills/krusemediallc/arcads-claude-code/chatgpt-image-ad.md): Genera creativos de imagen para anuncios de Meta con ChatGPT Image 2 (gpt-image-2) vía la API de Arcads. Fija el modelo, elimina chrome de plataforma automáticamente y aplica layouts y texto a prueba de bordes. - [Image Ad Clone](https://skillsagentes.com/skills/krusemediallc/arcads-claude-code/image-ad-clone.md): Convierte un anuncio de imagen existente en una plantilla de prompt reutilizable, validándola al regenerarla vía Arcads con ChatGPT Image 2 o Nano Banana. La plantilla se añade a la librería compartida de 37+ plantillas. - [Meta Ad Builder](https://skillsagentes.com/skills/krusemediallc/arcads-claude-code/meta-ad-builder.md): Publica creativos terminados como anuncios en vivo de Meta (Facebook/Instagram) vía la Meta Marketing API, más investigación y apoyo de copy. Sube imagen o video y crea un anuncio en PAUSA en un ad set existente. ## Skills relacionadas - [Marketing Council](https://skillsagentes.com/skills/coreyhaines31/marketingskills/marketing-council.md): Consejo simulado de asesores de marketing legendarios (Godin, Ogilvy, Schwartz, Dunford, Sutherland, Hormozi, Sharp y más) que aplican sus frameworks, muestran desacuerdos y sintetizan una recomendación. - [Ad Creative](https://skillsagentes.com/skills/coreyhaines31/marketingskills/ad-creative.md): Úsalo para generar, iterar o escalar creatividad publicitaria —titulares, descripciones, texto primario o variaciones completas— en cualquier plataforma de pago. - [Influencer Marketing](https://skillsagentes.com/skills/coreyhaines31/marketingskills/influencer-marketing.md): Para ejecutar partnerships de influencers, creators o embajadores: encontrar y vetar socios, estructurar tratos, redactar briefs, cumplir disclosure y medir el ROI real. - [Public Relations](https://skillsagentes.com/skills/coreyhaines31/marketingskills/public-relations.md): Para pedir ayuda con relaciones públicas, earned media, cobertura de prensa, pitching a periodistas o estrategia de medios (no pull requests). - [Revops](https://skillsagentes.com/skills/coreyhaines31/marketingskills/revops.md): Úsalo para revenue operations, gestión del ciclo de vida de leads y procesos de handoff entre marketing y sales, incluyendo scoring, routing, pipeline y CRM automation. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)