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.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "nano-banana-prompting-skill" with this command: npx skills add minilozio/nano-banana-prompting-skill/minilozio-nano-banana-prompting-skill-nano-banana-prompting-skill

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:
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):

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:

StyleTrigger 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

{
  "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

{
  "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

{
  "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

{
  "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_style": "<detailed | simplified | gradient wash>"
  },
  "art_style": {
    "studio_reference": "<Studio Ghibli | Kyoto Animation | Ufotable | MAPPA | Trigger | Makoto Shinkai>",
    "line_weight": "<thin and clean | bold and expressive | variable>",
    "shading": "<flat cel | soft gradient | dramatic shadow>",
    "era": "<modern anime | 90s retro | 80s vintage>"
  },
  "composition": {
    "framing": "<close-up portrait | action shot | scenic wide | over-the-shoulder>",
    "effects": "<speed lines | light flares | motion blur | sparkle overlay>"
  },
  "mood": "<heartwarming | intense action | melancholic | comedic>",
  "color_palette": "<pastel soft | vibrant saturated | dark moody | warm sunset>",
  "aspect_ratio": "16:9",
  "quality": "anime key visual, high detail, studio quality, clean lines",
  "negative": "no western cartoon style, no 3D, no photorealistic, no deformed hands"
}

🧸 3D / Pixar / CGI

{
  "instruction": "<3D scene description>",
  "subject": {
    "character": "<character description>",
    "material": "<clay | plastic | rubber | fur | fabric>",
    "proportions": "<chibi | realistic | stylized | exaggerated>",
    "expression": "<emotion>",
    "pose": "<stance or action>"
  },
  "scene": {
    "environment": "<setting>",
    "props": "<objects in scene>",
    "scale": "<miniature diorama | life-size | macro>"
  },
  "render": {
    "engine": "<Pixar RenderMan | Blender Cycles | Unreal Engine 5 | Octane>",
    "style": "<Pixar | DreamWorks | Aardman claymation | Nendoroid figure>",
    "materials": "<subsurface scattering | glossy plastic | matte clay | fabric texture>",
    "lighting": "<three-point studio | HDRI environment | dramatic rim | soft ambient>",
    "effects": "<ambient occlusion | global illumination | volumetric fog | depth of field>"
  },
  "mood": "<playful and colorful | dramatic and cinematic | cozy and warm>",
  "color_palette": "<bright primary | pastel | earthy muted | vibrant candy>",
  "aspect_ratio": "16:9",
  "quality": "3D render, Pixar quality, high detail, raytraced, 8K",
  "negative": "no 2D, no flat, no sketch, no watermark, no text"
}

🎨 Watercolor / Traditional Art

{
  "instruction": "<painting description>",
  "subject": {
    "description": "<what to paint>",
    "details": "<important visual details>"
  },
  "scene": {
    "setting": "<environment or abstract>",
    "elements": "<supporting visual elements>"
  },
  "traditional_art": {
    "medium": "<watercolor | oil paint | acrylic | gouache | pastel | charcoal | pencil | ink wash>",
    "paper": "<cold press watercolor | hot press | canvas | toned paper | rice paper>",
    "technique": "<wet-on-wet | dry brush | impasto | glazing | stippling | hatching | wash>",
    "brush": "<round | flat | fan | palette knife | sponge>",
    "finish": "<loose and expressive | tight and detailed | abstract | impressionistic>"
  },
  "composition": {
    "framing": "<centered | rule of thirds | asymmetric>",
    "white_space": "<generous margins | edge-to-edge | vignette>"
  },
  "mood": "<serene | vibrant | nostalgic | raw and emotional>",
  "color_palette": "<limited palette (3-4 colors) | full spectrum | monochrome wash>",
  "aspect_ratio": "3:2",
  "quality": "fine art quality, museum worthy, masterful brushwork, visible texture",
  "negative": "no digital look, no photorealistic, no text, no watermark, no AI artifacts"
}

✏️ Minimalist / Graphic Design

{
  "instruction": "<design description>",
  "subject": {
    "element": "<main visual element>",
    "style": "<geometric | organic | typographic | iconographic>"
  },
  "design": {
    "approach": "<flat design | material design | swiss style | brutalist | retro>",
    "grid": "<centered | asymmetric | modular grid>",
    "shapes": "<circles | rectangles | triangles | organic blobs | line art>",
    "contrast": "<high contrast | subtle | duotone>"
  },
  "color_palette": "<2-3 specific colors or palette name>",
  "background": "<solid color | gradient | textured | transparent>",
  "aspect_ratio": "1:1",
  "quality": "clean vector quality, crisp edges, professional graphic design",
  "negative": "no photorealistic, no complex textures, no gradients unless specified, no text unless requested"
}

🌀 Surreal / Abstract

{
  "instruction": "<surreal scene description>",
  "subject": {
    "central_element": "<main impossible or dreamlike element>",
    "transformation": "<how reality is bent or broken>",
    "symbolism": "<underlying meaning or motif>"
  },
  "scene": {
    "reality_level": "<slightly off | dreamlike | fully impossible | cosmic>",
    "environment": "<melting landscape | infinite space | underwater sky | fractal world>",
    "scale_distortion": "<giant small things | tiny big things | impossible geometry>"
  },
  "art_style": {
    "reference": "<Dalí | Magritte | Escher | Beksinski | James Jean | Android Jones>",
    "medium": "<hyperrealistic oil | digital surrealism | mixed media | collage>",
    "technique": "<photobashing | matte painting | double exposure | glitch>"
  },
  "mood": "<unsettling beauty | peaceful absurdity | cosmic wonder | dark fantasy>",
  "color_palette": "<describe the color world>",
  "aspect_ratio": "16:9",
  "quality": "highly detailed, surrealist masterpiece, museum quality",
  "negative": "no text, no watermark, no generic, no stock photo feel"
}

Prompting Rules (ALL styles)

Always Do:

  1. Be specific — "mint-green gecko" not "a gecko", "warm golden hour" not "nice light"
  2. Include negative prompt — always specify what to avoid
  3. Pick an aspect ratio — match the content (landscape 16:9, portrait 9:16, square 1:1)
  4. Add sensory details — textures, temperatures, sounds implied visually
  5. One focal point — every image needs a clear subject
  6. Match quality keywords to style — "8K photorealistic" for photos, "trending on ArtStation" for illustrations
  7. Color palette matters — specify colors or a grading reference, don't leave it to chance

Never Do:

  1. ❌ Don't include text/words in the image (Gemini renders text poorly)
  2. ❌ Don't over-specify (pick 1 camera, 1 lens, not 3 options)
  3. ❌ Don't mix conflicting styles ("photorealistic anime" — pick one)
  4. ❌ Don't use generic prompts ("a beautiful sunset" — add specifics)
  5. ❌ Don't forget the negative prompt
  6. ❌ Don't request NSFW content

Resolution Guide:

  • 1K — Quick drafts, thumbnails, iteration
  • 2K — Social media, general use (best quality/cost ratio)
  • 4K — Print, hero images, final deliverables

Examples

User says: "make me a gecko eating pizza on a skateboard"

Detected style: 3D / Pixar (fun character scene)

{
  "instruction": "A cute mint-green gecko character riding a skateboard while eating a large slice of pepperoni pizza",
  "subject": {
    "character": "small mint-green gecko with big expressive pale pink eyes and a wide happy grin",
    "material": "smooth glossy skin with subtle subsurface scattering",
    "proportions": "stylized chibi, slightly oversized head",
    "expression": "pure joy, eyes half-closed savoring the pizza",
    "pose": "standing on a moving skateboard, one hand holding pizza slice, cheese stretching"
  },
  "scene": {
    "environment": "sunny Venice Beach boardwalk, palm trees, blue sky",
    "props": "worn wooden skateboard with flame decals, pizza box on a nearby bench",
    "scale": "life-size character in real-world setting"
  },
  "render": {
    "engine": "Pixar RenderMan",
    "style": "Pixar",
    "materials": "subsurface scattering on gecko skin, glossy cheese, matte concrete",
    "lighting": "warm golden hour sunlight with soft shadows",
    "effects": "subtle motion blur on skateboard wheels, depth of field"
  },
  "mood": "carefree summer vibes, playful and fun",
  "color_palette": "warm yellows, mint green, sky blue, pizza orange",
  "aspect_ratio": "16:9",
  "quality": "3D render, Pixar quality, high detail, raytraced, 8K",
  "negative": "no 2D, no flat, no text, no watermark, no dark mood"
}

User says: "a samurai in the rain, dramatic"

Detected style: Cinematic / Photorealistic

{
  "instruction": "A lone samurai standing in heavy rain at night, katana drawn, cinematic and dramatic",
  "subject": {
    "description": "weathered samurai warrior, middle-aged, battle-scarred",
    "clothing": "dark indigo hakama and kimono, worn leather chest armor, straw sandals",
    "expression": "intense focus, eyes locked forward, jaw set",
    "pose": "standing in chudan-no-kamae stance, katana held at center",
    "details": "rain droplets on blade edge catching light, wet hair tied in topknot"
  },
  "scene": {
    "setting": "abandoned temple courtyard with stone lanterns",
    "key_elements": "heavy rainfall, puddles reflecting lantern light",
    "background": "dark silhouette of temple roof, mist rolling between pillars",
    "foreground": "rain splashing on stone ground, shallow puddles",
    "time_of_day": "deep night, moonless"
  },
  "photography": {
    "camera": "ARRI Alexa 65",
    "lens": "50mm f/1.2",
    "shot_type": "medium shot, slightly low angle",
    "depth_of_field": "shallow, rain drops in foreground out of focus",
    "lighting": "single warm lantern as key light from left, cool rain backlit by distant light, rim light on shoulders",
    "film_stock": "CineStill 800T",
    "texture": "subtle film grain"
  },
  "mood": "tense calm before the storm, honor and solitude",
  "color_palette": "deep indigo, warm amber lantern glow, cool steel grey",
  "aspect_ratio": "16:9",
  "quality": "8K, photorealistic, cinematic, RAW photo",
  "negative": "no text, no watermark, no deformed faces, no blurry, no anime style"
}

User says: "paint me some sunflowers, like watercolor"

Detected style: Watercolor / Traditional

{
  "instruction": "A loose, expressive watercolor painting of sunflowers in a ceramic vase",
  "subject": {
    "description": "five sunflowers in various stages of bloom, some drooping slightly",
    "details": "petals ranging from bright yellow to burnt sienna, dark brown seed heads with visible texture"
  },
  "scene": {
    "setting": "simple tabletop, implied window light",
    "elements": "rustic blue ceramic vase, a few fallen petals on the surface, soft shadow"
  },
  "traditional_art": {
    "medium": "watercolor",
    "paper": "cold press watercolor paper, visible tooth texture",
    "technique": "wet-on-wet for soft petal edges, dry brush for seed head texture, controlled wash for background",
    "brush": "large round for washes, small round for details",
    "finish": "loose and expressive, some areas left unfinished showing white paper"
  },
  "composition": {
    "framing": "slightly off-center, flowers extending above frame edge",
    "white_space": "generous margins, breathing room around the vase"
  },
  "mood": "warm, nostalgic, peaceful afternoon light",
  "color_palette": "cadmium yellow, burnt sienna, cerulean blue, sap green — limited palette",
  "aspect_ratio": "3:2",
  "quality": "fine art quality, museum worthy, masterful brushwork, visible paper texture",
  "negative": "no digital look, no photorealistic, no text, no watermark, no harsh edges"
}

Editing / Reference Images

When the user provides a reference image to edit or use as inspiration:

  1. Include the image with -i flag
  2. Describe what to change in the instruction field
  3. Keep the JSON structure — same style detection and template applies
  4. Be explicit about what to preserve vs change
uv run {nano-banana-pro-dir}/scripts/generate_image.py \
  --prompt '<JSON_PROMPT>' \
  --filename "edited-output.png" \
  -i "/path/to/original.png" \
  --resolution 2K

For character consistency across multiple images, always include the same reference image(s) and describe the character identically in the subject field.


Quick Reference: Style → Key Fields

StyleMust-Have FieldsKey Differentiator
Cinematicphotography.camera, lens, film_stockReal camera specs sell the realism
Productphotography.lighting, surface, reflectionsClean, commercial precision
Illustrationart_style.medium, technique, reference_artistsArtist references anchor the style
Animeart_style.studio_reference, line_weight, shadingStudio name = instant style match
3D/Pixarrender.engine, style, materialsRender engine + material physics
Watercolortraditional_art.medium, paper, techniquePaper texture + brush technique
Minimalistdesign.approach, shapes, contrastLess is more, precision matters
Surrealart_style.reference, reality_level, transformationNamed surrealist = instant vibe

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

image-gen

Generate AI images from text prompts. Triggers on: "生成图片", "画一张", "AI图", "generate image", "配图", "create picture", "draw", "visualize", "generate an image".

Archived SourceRecently Updated
General

explainer

Create explainer videos with narration and AI-generated visuals. Triggers on: "解说视频", "explainer video", "explain this as a video", "tutorial video", "introduce X (video)", "解释一下XX(视频形式)".

Archived SourceRecently Updated
General

asr

Transcribe audio files to text using local speech recognition. Triggers on: "转录", "transcribe", "语音转文字", "ASR", "识别音频", "把这段音频转成文字".

Archived SourceRecently Updated
General

axure-prototype-generator

Axure 原型代码生成器 - 输出 JavaScript 格式 HTML 代码,支持内联框架直接加载可交互原型

Archived SourceRecently Updated