Skill detail

nano-banana-image-ad

Generates Meta image-ad creatives via Nano Banana 2/Pro through the Arcads API, with edge-safe layouts and multi-reference support.

MatchPossibleReviewed for Image Generation
Sourcekrusemediallc/​arcads-claude-codeExternal source
Reported installs164Popularity signal only

Inspect before use

Automated review checks relevance, not safety or endorsement. Read the source instructions before using this skill.

Saved source preview

SKILL.md

The saved excerpt is a snapshot from review. The external source remains the complete and most current version.

---
name: nano-banana-image-ad
description: >-
  Generate one or more standalone Meta image-ad creatives via Nano Banana 2 / Nano Banana Pro (Gemini Flash Image family) through the Arcads external API. Locks the model family, auto-strips platform chrome, enforces edge-safe layouts. Use when the user asks for a "Nano Banana ad", "Gemini image ad", "nano-banana-2 ad creative", "make a static image ad with Gemini", or anchors on a need for photoreal / lifestyle / multi-reference / handheld-object / clay-texture ad creatives (sticky-note flatlays, held-whiteboard signs, lifestyle portraits, ingredient collages, OOH photography). Does NOT trigger on ChatGPT Image cues — use chatgpt-image-ad for those.
---

# 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/i
Read the full source on GitHub (opens external page)
Context

Related work