deanwhitex/aiw2.0stack/nano-banana

Claude Code and agent skill by deanwhitex/aiw2.0stack

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Use during Stage 9 of the website factory pipeline to generate the branded hero image (1500x700, photorealistic) via the Gemini Image API (Nano Banana 2). Constructs a niche-aware, mood-aware prompt; sends client logo (and optional people/subject photos) as multimodal reference images; produces a composite hero per the niche's composition rules. Output goes to clients/[Client Name]/Pipeline Data/hero-image/hero-final.png. Direct API call (no MCP) for reliability.

Install

npx vskill@latest install deanwhitex/aiw2.0stack/nano-banana

SKILL.md

Nano Banana Hero Image Skill (Stage 9)

How this skill is customised

The factory ships niche-agnostic. The composition rules that make a hero image unmistakably "this niche" (a contractor's branded vehicle + region-correct home; a boutique hotel's golden-hour exterior with hosted dinner foreground; an e-commerce brand's product still-life with brand colour backdrop) are not in this file. They live in the niche playbook:

templates/{active-niche-slug}/niche-playbook/hero-composition.md
templates/{active-niche-slug}/niche-playbook/hero-mood-mapping.json

hero-composition.md is a prompt fragment that Module 2D writes from the top-of-niche analysis it did in Stage 2D. hero-mood-mapping.json maps brand-dna.hero.mood values to specific lighting briefs.

If either file is missing, the agent halts and points the student at Module 2D.


Architecture

ConcernWhere it lives
Executortools/generate-hero.py (direct Gemini Image API, no MCP)
API keyGEMINI_API_KEY in .env (gitignored)
ModelGEMINI_MODEL env var, default gemini-2.5-flash-image-preview
Niche prompt template (complete)templates/{active-niche}/niche-playbook/hero-composition.md
Niche mood maptemplates/{active-niche}/niche-playbook/hero-mood-mapping.json
Outputclients/[Client Name]/Pipeline Data/hero-image/hero-final.png
Audit copy of promptclients/[Client Name]/Pipeline Data/hero-image/hero-prompt.md
Run metadataclients/[Client Name]/Pipeline Data/hero-image/hero-metadata.json

Inputs

Required:

  • clients/[Client Name]/Pipeline Data/brand/brand-dna.json (palette, region, hero.mood)
  • clients/[Client Name]/[Client Name] Assets/logo/logo.{png,svg,jpg} (HALT if missing)
  • templates/{active-niche}/niche-playbook/hero-composition.md
  • templates/{active-niche}/niche-playbook/hero-mood-mapping.json

Optional (used when present, requirement varies per niche):

  • clients/[Client Name]/Pipeline Data/research/research.json
  • clients/[Client Name]/Pipeline Data/intake/intake.json
  • People / subject reference photos at the path the niche playbook prescribes (e.g.

founder-photos/owner.{jpg,png} for contractor; host-photos/host.{jpg,png} for hospitality)

Universal composition rules

These apply regardless of niche. The niche playbook may add but never override.

  • Target size: 1500×700 (Gemini variance allowed: ≥ 1000×500)
  • Non-zero bytes, not solid colour, validates on output
  • LEFT 40% of frame stays relatively unobstructed (reserved for text overlay zone)
  • Logo as multimodal reference is non-negotiable (logo must be used, never re-coloured or

re-styled in the output)

  • No watermarks, no overlaid text not part of the source photography
  • Photorealistic (no illustration, no painterly filter)

Niche composition rules

Loaded from niche-playbook/hero-composition.md. The niche playbook defines:

  • Subject placement and scale
  • Foreground/midground/background composition
  • Whether people are in the frame and where
  • Whether a vehicle, product, room, or scenic element is in the frame
  • Mood lighting baseline for the niche

Hero mood mapping

brand-dna.hero.mood selects from the niche's mood map at niche-playbook/hero-mood-mapping.json. Every niche playbook ships at minimum these moods (values mapped to lighting briefs the prompt fragment inherits):

  • golden_hour_warm
  • overcast_calm
  • dramatic_dusk
  • bright_midday_clean
  • dawn_soft_optimistic

A niche may add niche-specific moods (e.g. candlelit_intimate for hospitality; storm_dramatic for storm-restoration contractors).

If brand-dna.hero.mood is not set, default to the niche playbook's default_mood field.

Region defaults

The niche playbook may define region-specific defaults at niche-playbook/hero-regions.json (house style for contractor regions, climate descriptors for hospitality regions, etc.). The agent passes brand-dna.region to look up the row; research.json overrides per field.

Process (what the agent does)

  1. Asset gate. Confirm logo exists. If missing, write MANUAL-DROP-NEEDED.md and halt

the pipeline.

  1. Niche playbook gate. Confirm niche-playbook/hero-composition.md and

hero-mood-mapping.json exist. Halt with a Module-2D pointer if missing.

  1. Subject gate (soft). Detect people/subject reference photos per the niche

playbook's spec. If required by the playbook and missing, soft-halt (write SUBJECT-PHOTO-NEEDED.md; pipeline may continue with a subject-less composition).

  1. Prompt assembly. Substitute per-client tokens into the niche's complete prompt

template at templates/{active-niche}/niche-playbook/hero-composition.md: company name, city/state, region defaults, brand-dna.palette, services, mood lighting brief (looked up from niche mood map), and any reference-photo blocks. The template is a complete scaffold Module 2D wrote per-niche; there is no separate universal scaffold to layer on top.

  1. API call. Run python3 tools/generate-hero.py --client "[Client Name]". The script

handles multimodal upload, retries x3 with exponential backoff on API errors, validates output dimensions and sanity (not solid colour, non-zero bytes).

  1. Output. Save image to hero-final.png, prompt to hero-prompt.md, metadata to

hero-metadata.json.

  1. Pipeline state. Update pipeline-state.json with stage_9: complete.

Failure handling

FailureResponse
Logo missingWrite MANUAL-DROP-NEEDED.md, halt pipeline
Niche playbook files missingHalt; point user at Module 2D
Gemini API errorRetry x3 with exponential backoff (2s, 4s, 8s)
All retries exhaustedWrite REGENERATION-NEEDED.md with error and filled prompt; pipeline can continue with placeholder
Validation fails (corrupt, solid colour, undersized)Retry generation x3 with same prompt
Logo unrecognisable in outputNote in metadata, do not halt (manual review during Stage 10.4a design fidelity QA)

What this skill never does

  • Generates without the client logo as a multimodal reference (logo is non-negotiable)
  • Uses generic stock-photo aesthetics
  • Places subjects or branded objects in the LEFT 40% of frame (text overlay zone)
  • Generates multiple candidates (one image, retry on failure)
  • Modifies the logo (no recolouring, no simplification)

CLI usage (manual runs / debugging)

bash
python3 tools/generate-hero.py --client "[Client Name]"
python3 tools/generate-hero.py --client "[Client Name]" --no-owner

Pass gate

  • hero-final.png exists, dimensions ≥ 1000×500, non-zero bytes, not solid colour
  • hero-prompt.md saved for audit
  • hero-metadata.json records: logo used, subject used (or null), mood, region, model, byte size
  • OR REGENERATION-NEEDED.md written and noted in pipeline-state

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
51
Repository forks
37
7-day trend score
0

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/deanwhitex/aiw2.0stack/nano-banana/badge)](https://verified-skill.com/skills/deanwhitex/aiw2.0stack/nano-banana)

Something wrong with this skill or its page? Tell us.