Nano Banana Image Ad logo

Nano Banana Image Ad

CommunityPopular
krusemediallc
nano-banana-image-ad

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.

Overview

Publisherkrusemediallc
Repositoryarcads-claude-code
Skill namenano-banana-image-ad
Stars
1.5K
Forks
368
Bundled files
1
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by krusemediallc on GitHub. Read the source before you install it.

Installation

Install the Nano Banana Image Ad AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/krusemediallc/arcads-claude-code.git /tmp/arcads-claude-code
mkdir -p .claude/skills
cp -r /tmp/arcads-claude-code/skills/nano-banana-image-ad .claude/skills/nano-banana-image-ad
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Nano Banana Image Ad in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Nano Banana Image Ad on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Nano Banana Image Ad is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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 — 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 — 30+ validated templates with per-model notes.
  4. shared/skills/image-ad-prompting/prompting/safety-suffixes.md — the 3 always-on guards.
  5. 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

ModeWhen to useRequiredOptional
image (default)Brand-new ad image.--prompt, --aspect-ratio--image-ref (up to 14)
image_editModify 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. 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 — 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 "<rewritten>" \
  --aspect-ratio <ratio> \
  --n <N> \
  --image-ref <product.png> \
  [--image-ref <character.png>] \
  [--image-ref <style.png>] \
  --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 "<rewritten>" \
  --aspect-ratio <ratio> \
  --n <N> \
  --image-ref <product.png> \
  --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 "<edit-instruction>" \
  --source <existing.png> \
  [--image-ref <guidance.png>] \
  --n <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_ids.

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). 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-<ts>.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

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Nano Banana Image Ad AI skill do?

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 trig...

Why use Nano Banana Image Ad on TypingMind?

Because you install it once and use it with any model. Nano Banana Image Ad is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Nano Banana Image Ad in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/krusemediallc/arcads-claude-code/tree/main/skills/nano-banana-image-ad. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Nano Banana Image Ad?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Nano Banana Image Ad?

As many as you like. As long as a model supports skills, you can use Nano Banana Image Ad with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Nano Banana Image Ad AI skill free?

Yes. It is published on GitHub by krusemediallc under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇