# Nano Banana Image Ad > 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. Fuente: https://skillsagentes.com/skills/krusemediallc/arcads-claude-code/nano-banana-image-ad Markdown: https://skillsagentes.com/skills/krusemediallc/arcads-claude-code/nano-banana-image-ad.md Repositorio: https://github.com/krusemediallc/arcads-claude-code Autor: krusemediallc Licencia: MIT Actualizado: hace 2 meses Coste de contexto: 165 tok instalada, 2.5k tok al activarse, 7.9k tok con todos los archivos del bundle Bundle: 2 archivos, 31 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 nano-banana-image-ad --agent claude-code # Cursor npx -y skills add krusemediallc/arcads-claude-code --skill nano-banana-image-ad --agent cursor # Codex npx -y skills add krusemediallc/arcads-claude-code --skill nano-banana-image-ad --agent codex # Gemini CLI npx -y skills add krusemediallc/arcads-claude-code --skill nano-banana-image-ad --agent gemini # Windsurf npx -y skills add krusemediallc/arcads-claude-code --skill nano-banana-image-ad --agent windsurf # Cline npx -y skills add krusemediallc/arcads-claude-code --skill nano-banana-image-ad --agent cline ``` ## Qué hace - Genera imágenes fijas de anuncio con la familia Nano Banana (hasta 14 imágenes de referencia), especializado en foto realismo, lifestyle y mezcla de múltiples referencias - Elige entre `nano-banana-2` (por defecto), `nano-banana-pro` (más caro, mejor para continuidad de personaje) o `nano-banana-edit` (inpainting) según el caso - Muestra el costo en créditos estimado antes de generar, y revisa visualmente cada variante (texto borroso, dedos de más, deriva de identidad) regenerando hasta 2 veces si hay defectos - No sube nada a Meta: entrega las rutas de las imágenes para que la skill de meta-ad-builder las publique ## Cuándo usarla - El usuario pide un anuncio fotorrealista, de estilo lifestyle o con objetos sostenidos en mano, y no menciona ChatGPT Image ## Cuándo no - El pedido apunta a texto denso o mímica de UI: eso usa `chatgpt-image-ad` ## Qué la activa - "Genera un anuncio lifestyle con mi producto sostenido en mano" - "Crea una imagen de mi producto sobre una pizarra con Nano Banana" ## Antes de instalar - Requiere `.env` con `ARCADS_BASIC_AUTH` o `ARCADS_API_KEY`; solo acepta aspect ratio 1:1, 16:9 o 9:16. - Variables de entorno: ARCADS_API_KEY, ARCADS_BASE_URL, ARCADS_BASIC_AUTH, PRODUCT_ID, PROJECT_ID - makes network requests - needs API credentials ## Archivos - SKILL.md — 10 KB - scripts/generate_image.py — 21 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. # nano-banana-image-ad (Arcads) Generate one or more **standalone Meta ad image creatives** via Arcads' `POST /v2/images/generate` with the Nano Banana model family (default `nano-banana-2`). Hands the image paths off to your Meta-ad-builder skill — this skill does not upload to Meta itself. ## Read order 1. **This file** — Arcads-specific endpoint, auth, presigned upload flow, workflow phases. 2. **[shared/skills/nano-banana-image-ad/prompting/guide.md](../../shared/skills/nano-banana-image-ad/prompting/guide.md)** — model-specific prompting (what Nano Banana is good/bad at, when to switch to gpt-image-2). 3. **[shared/skills/image-ad-prompting/prompting/prompt-library.md](../../shared/skills/image-ad-prompting/prompting/prompt-library.md)** — 30+ validated templates with per-model notes. 4. **[shared/skills/image-ad-prompting/prompting/safety-suffixes.md](../../shared/skills/image-ad-prompting/prompting/safety-suffixes.md)** — the 3 always-on guards. 5. **[scripts/generate_image.py](scripts/generate_image.py)** — the helper script (Python stdlib only). ## Hard rules — never relax 1. **Model is in the Nano Banana family.** The script accepts `nano-banana-2` (default), `nano-banana-pro` (Gemini 3 Pro Image, higher cost / locked identity), `nano-banana-edit` (inpaint-focused), or `nano-banana` (legacy). Anything else is refused. If the user asks for gpt-image-2, point them at `chatgpt-image-ad`. 2. **No platform/screenshot chrome in output.** `NO_CHROME_SUFFIX` is always on (override only with `--allow-chrome`). 3. **Edge-safe + glyph-safety suffixes always on** unless `--no-safe-zone` is explicit. 4. **Max 14 reference images.** Hard Arcads cap for Nano Banana. Script enforces. 5. **No Meta upload from this skill.** Image generation only. The user has a separate ad-builder skill in their stack — hand off via filesystem paths. 6. **Always present a credit-cost estimate before generating.** Each Nano Banana call is one image; multiply by `--n`. `nano-banana-pro` costs more than `nano-banana-2` — surface the per-model rate from `logs/arcads-api.jsonl`. ## Prerequisites - `.env` containing `ARCADS_BASIC_AUTH` (preferred) OR `ARCADS_API_KEY` - Optional: `PRODUCT_ID`, `PROJECT_ID` in `.env` for session-folder organization - Reference images on local disk. The script handles the Arcads presigned-upload flow internally. ## Configuration - **Base URL:** `https://external-api.arcads.ai` (or `ARCADS_BASE_URL`). - **Auth:** HTTP Basic. The script prefers a pre-encoded `ARCADS_BASIC_AUTH`; falls back to encoding `ARCADS_API_KEY`. - **Endpoint:** `POST /v2/images/generate`; poll `GET /v1/assets/{id}` until `status: generated`. - **Reference uploads:** `POST /v1/file-upload/get-presigned-url` returns `{presignedUrl, filePath}`; `PUT` bytes to `presignedUrl`; pass the `filePath` in `referenceImages`. Single-use — re-uploaded fresh per variant by the script. ## Generation modes | Mode | When to use | Required | Optional | |---|---|---|---| | `image` (default) | Brand-new ad image. | `--prompt`, `--aspect-ratio` | `--image-ref` (up to 14) | | `image_edit` | Modify a `--source` image. | `--prompt`, `--source` | `--image-ref` (up to 14) | ## Supported aspect ratios `1:1`, `16:9`, `9:16`. **Only these three are accepted by Arcads' `/v2/images/generate` endpoint** (the same endpoint serves gpt-image-2 and Nano Banana — same ratio constraints). Templates in the shared library that use `2:3`, `4:5`, `3:2`, etc. won't render at their native ratio on this backend — fall back to `1:1` and post-crop, or use the KIE nano-banana-image-ad sibling which supports the full Meta ratio set natively via the `/jobs/createTask` endpoint. ## Model variants (`--model`) - **`nano-banana-2`** (default) — Gemini 2.5 Flash Image. The standard. Use for most templates. - **`nano-banana-pro`** — Gemini 3 Pro Image. Use for hero stills, character continuity across runs, material-realism critical shots (claymation, Pixar, premium product photography). Costs more credits. - **`nano-banana-edit`** — inpaint-focused. Use only with `--mode image_edit` for tight masked edits (swap background, change object color). - **`nano-banana`** — legacy. Use only if the user explicitly asks; new work should use `nano-banana-2`. Ask the user which variant they want **before the first generation in a session** if the value isn't already set in `MASTER_CONTEXT.md`. Default to `nano-banana-2`. ## Workflow ### Phase 1: Preflight 1. `.env` exists with credentials. 2. (Optional) `arcads-external-api` session folder set up. 3. Health-check: `curl -sf -H "$AUTH" "$BASE_URL/v1/products"` returns 200. ### Phase 2: Gather inputs Collect: seed prompt, mode, source (if edit), reference paths (up to 14), variant count, aspect ratio, model variant. ### Phase 3: Prompt rewrite Read [shared/skills/image-ad-prompting/prompting/prompt-library.md](../../shared/skills/image-ad-prompting/prompting/prompt-library.md). If the user's brief matches a template, **check the Model notes block** — only proceed if `nano-banana` is marked clean, preferred, or strong. If gpt-image-2 is preferred, suggest switching skills. Fill `{placeholders}` and show the user the rewritten prompt. Ask for approval before generating. For fresh prompts (no template match), follow the structure in [shared/skills/nano-banana-image-ad/prompting/guide.md § Phase 3b](../../shared/skills/nano-banana-image-ad/prompting/guide.md) — lean on Nano Banana strengths (named reference roles, lighting specifics, material specifics). ### Phase 4: Credit cost confirmation (MANDATORY) Present the estimated credit cost (read from `logs/arcads-api.jsonl` for matching past calls). Surface the model variant prominently: `nano-banana-pro` costs more than `nano-banana-2`. Wait for explicit confirmation. ### Phase 5: Generate ```bash ~/.claude/skills/nano-banana-image-ad/scripts/generate_image.py \ --prompt "" \ --aspect-ratio \ --n \ --image-ref \ [--image-ref ] \ [--image-ref ] \ --out ./generated \ --env-file .env # For higher-stakes hero shots: ~/.claude/skills/nano-banana-image-ad/scripts/generate_image.py \ --model nano-banana-pro \ --prompt "" \ --aspect-ratio \ --n \ --image-ref \ --out ./generated \ --env-file .env # For an edit run (inpaint): ~/.claude/skills/nano-banana-image-ad/scripts/generate_image.py \ --mode image_edit \ --model nano-banana-edit \ --prompt "" \ --source \ [--image-ref ] \ --n \ --out ./generated \ --env-file .env ``` Each line on stdout is one JSON variant (`variant`, `path`, `asset_id`, `width`, `height`, `prompt`, `mode`, `aspect_ratio`, `model`). Log each call to `logs/arcads-api.jsonl` with the model variant, ref count, and returned `asset_id`s. ### Phase 6: Visual QA (MANDATORY) For each completed variant, **read the image** and inspect for: - Garbled small text (the main Nano Banana weakness) - Extra fingers / wrong limb count (common Gemini-family failure) - Wordmark drift (always pass brand wordmarks as `--image-ref` to mitigate) - Character identity drift across variants (use `nano-banana-pro` to lock identity if it matters) If defects: regenerate with a revised prompt that explicitly corrects the issue (see [shared/skills/nano-banana-image-ad/prompting/guide.md § Retry mode](../../shared/skills/nano-banana-image-ad/prompting/guide.md)). Cap at 2 retries per variant. ### Phase 7: Confirm and hand off Show all paths to the user. Ask "Use all / use these specific ones / regenerate / cancel." Selected variants are ready for your **Meta-ad-builder skill**. Print the paths. Optionally, write the selected paths to `./generated/run-.jsonl` for downstream consumption. ## Out of scope — fail clearly - **Meta upload** — different skill in your stack. - **ChatGPT Image 2 / gpt-image-2 generation** — use `chatgpt-image-ad`. - **Video, carousel, DCO ads** — image only. - **Ad copy writing** — different skill. - **Editing the shared prompt library** — use `image-ad-clone` (asks which backend at Phase 1). ## Common errors - **401/403** → fix `.env`. - **422 validation/moderation** → tighten prompt; check `aspectRatio` is in supported set; check `--n` ≤ 5. - **500 UNKNOWN_ERROR** → usually a stale presigned filePath. The script re-uploads per variant; if persistent, file an issue with the `asset_id`. ## Files this skill owns - `~/.claude/skills/nano-banana-image-ad/SKILL.md` — this file - `~/.claude/skills/nano-banana-image-ad/scripts/generate_image.py` — Arcads Nano Banana caller ## See also - **[shared/skills/nano-banana-image-ad/prompting/guide.md](../../shared/skills/nano-banana-image-ad/prompting/guide.md)** — model-specific prompting - **[shared/skills/image-ad-prompting/prompting/prompt-library.md](../../shared/skills/image-ad-prompting/prompting/prompt-library.md)** — shared template library - **[image-ad-clone skill](../image-ad-clone/SKILL.md)** — single backend-agnostic skill that reverse-engineers an existing ad into a reusable library entry - **[arcads-external-api skill](../arcads-external-api/SKILL.md)** — underlying Arcads conventions - **[chatgpt-image-ad skill](../chatgpt-image-ad/SKILL.md)** — sibling skill for typography-heavy / UI-mimicry templates ## 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. - [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. - [Generate Youtube Thumbnail](https://skillsagentes.com/skills/krusemediallc/arcads-claude-code/generate-youtube-thumbnail.md): 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. ## 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)