nano-banana-prompting-skill
Transform natural language image requests into optimized structured prompts for Gemini image generation. Automatically detects style and builds the perfect prompt — cinematic, illustration, anime, 3D, watercolor, product, and more.
What this skill does
# Gemini Image Prompting
This skill transforms simple, natural image requests into **optimized structured prompts** that produce dramatically better results from Gemini 3 Pro Image.
Instead of sending a plain text prompt (which produces generic, "AI slop" results), this skill builds a **structured JSON prompt** with the right technical details for the detected style — camera specs for photography, art techniques for illustration, render settings for 3D, and more.
## How to Use
When the user asks you to generate or edit an image:
1. **Read the user's request** — understand what they want (subject, mood, style)
2. **Detect the style** — use the Style Detection rules below
3. **Build the structured JSON prompt** — follow the template for that style
4. **Call the generator:**
```bash
uv run {nano-banana-pro-dir}/scripts/generate_image.py \
--prompt '<YOUR_JSON_PROMPT>' \
--filename "<descriptive-name>.png" \
--resolution 2K
```
Replace `{nano-banana-pro-dir}` with the path to the nano-banana-pro skill (typically bundled with OpenClaw).
**For image editing** (user provides a reference image):
```bash
uv run {nano-banana-pro-dir}/scripts/generate_image.py \
--prompt '<YOUR_JSON_PROMPT>' \
--filename "<output-name>.png" \
-i "/path/to/reference.png" \
--resolution 2K
```
### Security Note
The `--filename` argument should always be a simple file path constructed by the agent (e.g., `gecko-running.png`). Never pass unsanitized user input directly as the filename. The agent should derive a safe, descriptive filename from the context.
### Output Location
Save images to the user's Desktop or the path they specify:
- Default: `~/Desktop/<descriptive-name>.png`
- Use descriptive filenames: `gecko-coding-night.png`, not `output.png`
---
## Style Detection
Detect the style from the user's request. Look for keywords, context, and intent:
| Style | Trigger Keywords / Context |
|-------|---------------------------|
| **Cinematic / Photorealistic** | "photo", "realistic", "cinematic", "portrait", "street", "landscape", real-world scenes, people, animals in real settings |
| **Product / Studio** | "product shot", "studio", "mockup", "packaging", "e-commerce", objects on clean backgrounds |
| **Street / Documentary** | "candid", "street", "reportage", "documentary", "raw", urban scenes |
| **Illustration / Digital Art** | "illustration", "digital art", "concept art", "fantasy art", "draw", "artwork" |
| **Anime / Manga** | "anime", "manga", "cel shaded", "studio ghibli", Japanese animation style |
| **3D / Pixar** | "3D", "Pixar", "render", "CGI", "clay", "isometric", cartoon characters |
| **Watercolor / Traditional** | "watercolor", "oil painting", "sketch", "pencil", "pastel", "charcoal", traditional media |
| **Minimalist / Graphic** | "logo", "icon", "flat", "minimal", "vector", "graphic design", "poster" |
| **Surreal / Abstract** | "surreal", "abstract", "dreamlike", "psychedelic", "impossible", "Dalí" |
**If no style is obvious**, default to **Cinematic / Photorealistic** — it's the most versatile and produces the best baseline quality.
**If the user specifies a style explicitly**, always respect that over auto-detection.
---
## Structured Prompt Templates
### 🎬 Cinematic / Photorealistic
```json
{
"instruction": "<one-line description of the final image>",
"subject": {
"description": "<main subject in detail>",
"clothing": "<if applicable>",
"expression": "<facial expression or mood>",
"pose": "<body position, action>",
"details": "<distinguishing features, textures>"
},
"scene": {
"setting": "<location/environment>",
"key_elements": "<important objects in the scene>",
"background": "<what's behind the subject>",
"foreground": "<what's in front, if any>",
"time_of_day": "<morning, golden hour, night, etc.>"
},
"photography": {
"camera": "<Sony A7IV | Hasselblad X2D | Canon R5 | ARRI Alexa 65 | Leica M11>",
"lens": "<24mm f/1.4 | 35mm f/1.4 | 50mm f/1.2 | 85mm f/1.8 | 135mm f/2>",
"shot_type": "<wide | medium | close-up | extreme close-up | aerial | low angle>",
"depth_of_field": "<shallow with bokeh | deep | tilt-shift>",
"lighting": "<natural golden hour | chiaroscuro | rim light | neon | overcast soft | studio three-point>",
"film_stock": "<Kodak Portra 400 | Fujifilm Pro 400H | Kodak Ektar 100 | CineStill 800T | Ilford HP5>",
"texture": "<subtle film grain | clean digital | heavy grain>"
},
"mood": "<emotional atmosphere in one sentence>",
"color_palette": "<dominant colors or color grading style>",
"aspect_ratio": "<1:1 | 16:9 | 4:3 | 9:16 | 3:2>",
"quality": "8K, photorealistic, cinematic, RAW photo",
"negative": "no text, no watermark, no deformed faces, no extra limbs, no blurry"
}
```
**Camera selection guide:**
- Portraits → Hasselblad X2D or Canon R5 + 85mm
- Street/documentary → Leica M11 + 35mm
- Landscapes/cinematic → Sony A7IV + 24mm or ARRI Alexa 65
- Night/low light → Sony A7IV + 50mm f/1.2 + CineStill 800T
- Fashion → Hasselblad X2D + 80mm
### 📸 Product / Studio
```json
{
"instruction": "<product shot description>",
"subject": {
"product": "<item name and type>",
"material": "<glass, metal, fabric, wood, plastic, ceramic>",
"color": "<product colors>",
"details": "<logos, textures, unique features>"
},
"scene": {
"backdrop": "<seamless white | gradient | textured surface | lifestyle context>",
"surface": "<marble | wood | concrete | acrylic | fabric>",
"props": "<complementary objects if any>"
},
"photography": {
"camera": "Hasselblad X2D",
"lens": "90mm f/3.2 macro",
"shot_type": "<hero shot | flat lay | 45-degree | floating | exploded view>",
"lighting": "<softbox | ring light | natural window | dramatic single source | backlit>",
"reflections": "<subtle | mirror-like | none>",
"depth_of_field": "shallow, product sharp, background soft"
},
"mood": "<clean and premium | warm and inviting | bold and modern>",
"color_palette": "<brand-aligned colors>",
"aspect_ratio": "1:1",
"quality": "8K, commercial photography, sharp detail, color-accurate",
"negative": "no text, no watermark, no dust, no scratches"
}
```
### 🖌️ Illustration / Digital Art
```json
{
"instruction": "<illustration description>",
"subject": {
"character": "<character description>",
"expression": "<emotion>",
"pose": "<action or stance>",
"details": "<costume, accessories, distinctive features>"
},
"scene": {
"setting": "<world/environment>",
"key_elements": "<important scene elements>",
"atmosphere": "<fog, particles, light rays, sparks>"
},
"art_style": {
"medium": "<digital painting | concept art | comic book | storybook | gouache>",
"technique": "<cel shading | painterly | line art with color | crosshatching>",
"reference_artists": "<1-2 artist names for style reference>",
"color_approach": "<vibrant saturated | muted earthy | monochromatic | complementary>"
},
"composition": {
"framing": "<rule of thirds | centered | dynamic diagonal | symmetrical>",
"perspective": "<eye level | bird's eye | worm's eye | isometric>",
"focal_point": "<where the eye should go>"
},
"mood": "<epic and dramatic | whimsical and playful | dark and moody>",
"color_palette": "<specific colors or palette description>",
"aspect_ratio": "<16:9 | 3:2 | 1:1>",
"quality": "highly detailed illustration, trending on ArtStation, masterpiece",
"negative": "no text, no watermark, no photo-realistic, no AI artifacts"
}
```
### 🌸 Anime / Manga
```json
{
"instruction": "<anime scene description>",
"subject": {
"character": "<character description>",
"hair": "<style, color>",
"eyes": "<color, expression>",
"outfit": "<clothing details>",
"pose": "<action or expression>"
},
"scene": {
"setting": "<location>",
"atmosphere": "<cherry blossoms, rain, sunset glow, sparkles>",
"background_sRelated in Design
contribute
IncludedLocal-only OSS contribution command center. Auto-refreshes the user's in-flight PR and issue state on invoke so conversations start with full context — no need to brief Claude on what's in flight. Helps the user find issues to contribute to on GitHub, builds per-repo dossiers of what each upstream expects (CLA, DCO, branch convention, AI policy, draft-first, review bots, issue templates), runs deterministic gates before any external action so AI-assisted contributions don't reach maintainers as slop. State is markdown-only: candidate files at ~/.contribute-system/candidates/, repo dossiers at ~/.contribute-system/research/, append-only event log at ~/.contribute-system/log.jsonl. No database, no cloud calls. Use when the user asks about their PRs / issues / contributions, wants to find new work to take on, claim an issue, build/refresh a repo's dossier, or draft a Design Issue or PR. Trigger with "/contribute", "what's my PR status", "find a contribution", "claim issue X", "draft a Design Issue for Y", "refresh dossier for Z".
architectural-analysis
IncludedUser-triggered deep architectural analysis of a codebase or scoped subtree across eight modes — information architecture, data flow, integration points, UI surfaces, interaction patterns, data model, control flow, and failure modes. This skill should be used when the user asks to "diagram this codebase," "map the architecture," "show the data flow," "give me an ERD," "trace control flow," "find the integration points," "verify the layout pattern," "audit the UX architecture," or any similar request whose primary deliverable is mermaid diagrams plus cited reports under docs/architecture/. Dispatches haiku/sonnet sub-agents in parallel for per-mode exploration, then verifies every citation mechanically before any node lands in a diagram. Not for one-off prose explanations of code (use code-explanation) or for high-level system design from scratch (use system-design).
mcp
IncludedModel Context Protocol (MCP) server development and tool management. Languages: Python, TypeScript. Capabilities: build MCP servers, integrate external APIs, discover/execute MCP tools, manage multi-server configs, design agent-centric tools. Actions: create, build, integrate, discover, execute, configure MCP servers/tools. Keywords: MCP, Model Context Protocol, MCP server, MCP tool, stdio transport, SSE transport, tool discovery, resource provider, prompt template, external API integration, Gemini CLI MCP, Claude MCP, agent tools, tool execution, server config. Use when: building MCP servers, integrating external APIs as MCP tools, discovering available MCP tools, executing MCP capabilities, configuring multi-server setups, designing tools for AI agents.
react-native-skia
IncludedDesign, build, debug, and optimise high-polish animated graphics in React Native or Expo using @shopify/react-native-skia, Reanimated, and Gesture Handler. Use when the user wants canvas-driven UI, shaders, paths, rich text, image filters, sprite fields, Skottie, video frames, snapshots, web CanvasKit setup, or performance tuning for custom motion-heavy elements such as loaders, hero art, cards, charts, progress indicators, particle systems, or gesture-driven surfaces. Also use when the user asks for fluid, glow, glass, blob, parallax, 60fps/120fps, or GPU-friendly animated effects in React Native, even if they do not explicitly say "Skia". Do not use for ordinary form/layout work with standard views.
plaid
IncludedProduct Led AI Development — guides founders from idea to launched product. Six capabilities: Idea (discover a product idea), Validate (pressure-test the idea against fatal flaws, problem reality, competition, and 2-week MVP feasibility), Plan (vision intake + document generation), Design (translate image references into a design.md spec), Launch (go-to-market strategy), and Build (roadmap execution). Use when someone says "PLAID", "plaid idea", "help me find an idea", "product idea", "idea from my business", "idea from my expertise", "plaid validate", "validate my idea", "pressure-test", "is this idea good", "find fatal flaws", "validate the problem", "plan a product", "define my vision", "generate a PRD", "product strategy", "plaid design", "design from image", "translate image to design", "create design.md", "extract design tokens", "plaid launch", "go-to-market", "launch plan", "GTM strategy", "launch playbook", "plaid build", "build the app", "start building", or "execute the roadmap".
nextjs-framer-motion-animations
IncludedAdds production-safe Motion for React or Framer Motion animations to Next.js apps, including reveal, hover and tap micro-interactions, whileInView, stagger, AnimatePresence, layout and layoutId transitions, reorder, scroll-linked UI, and lightweight route-content transitions. Use when the user asks to add, refactor, or debug Motion or Framer Motion in App Router or Pages Router codebases, especially around server/client boundaries, reduced motion, LazyMotion, bundle size, hydration, or route transitions. Avoid for GSAP-style timelines, WebGL or 3D scenes, heavy scroll storytelling, or CSS-only effects unless Motion is explicitly requested.