skills/ai-creatorship/nano-banana-pro/SKILL.md
Generate/edit images and craft/critique/refine prompts for Nano Banana Pro / Nano Banana 2. Use for image create/modify requests, prompt optimization, structured prompt templates, JSON prompt formats, text-heavy layouts, typography, style transfer, color-grade transfer, locked-variable edits, and subject replacement. Supports text-to-image + image-to-image; 1K/2K/4K; use --input-image.
npx skillsauth add michailbul/laniameda-skills nano-banana-proInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate new images, edit existing ones, or craft precise prompts for Google's Nano Banana Pro API (Gemini 3 Pro Image), including style transfer, color-grade transfer, locked-variable edits, text-heavy layouts, and subject replacement.
Run the script using absolute path (do NOT cd to skill directory first):
Generate new image:
uv run ~/skills/nano-banana-pro/scripts/generate_image.py --prompt "your image description" --filename "output-name.png" [--resolution 1K|2K|4K] [--api-key KEY]
Edit existing image:
uv run ~/skills/nano-banana-pro/scripts/generate_image.py --prompt "editing instructions" --filename "output-name.png" --input-image "path/to/input.png" [--resolution 1K|2K|4K] [--api-key KEY]
Important: Always run from the user's current working directory so images are saved where the user is working, not in the skill directory.
Goal: fast iteration without burning time on 4K until the prompt is correct.
uv run ~/skills/nano-banana-pro/scripts/generate_image.py --prompt "<draft prompt>" --filename "yyyy-mm-dd-hh-mm-ss-draft.png" --resolution 1K--input-image for every iteration until you’re happy.uv run ~/.codex/skills/nano-banana-pro/scripts/generate_image.py --prompt "<final prompt>" --filename "yyyy-mm-dd-hh-mm-ss-final.png" --resolution 4KThe Gemini 3 Pro Image API supports three resolutions (uppercase K required):
Map user requests to API parameters:
1K1K2K4KThe script checks for API key in this order:
--api-key argument (use if user provided key in chat)GEMINI_API_KEY environment variableIf neither is available, the script exits with an error message.
Preflight:
command -v uv (must exist)test -n \"$GEMINI_API_KEY\" (or pass --api-key)test -f \"path/to/input.png\"Common failures:
Error: No API key provided. → set GEMINI_API_KEY or pass --api-keyError loading input image: → wrong path / unreadable file; verify --input-image points to a real imageGenerate filenames with the pattern: yyyy-mm-dd-hh-mm-ss-name.png
Format: {timestamp}-{descriptive-name}.png
yyyy-mm-dd-hh-mm-ss (24-hour format)x9k2, a7b3)Examples:
2025-11-23-14-23-05-japanese-garden.png2025-11-23-15-30-12-sunset-mountains.png2025-11-23-16-45-33-robot.png2025-11-23-17-12-48-x9k2.pngWhen the user wants to modify an existing image:
--input-image parameter with the path to the imageFor simple generation: Pass the user's image description as-is to --prompt. Only rework if clearly insufficient.
For editing: Pass editing instructions in --prompt (e.g., "add a rainbow in the sky", "make it look like a watercolor painting").
For prompt-writing requests: Do not run generation unless the user asks for an image. Deliver a ready-to-run prompt as the primary output.
For complex prompts: Use labeled sections and explicit rules when the task includes text, counts, layouts, typography, multiple inputs, diagrams, or exact constraints.
Preserve user's creative intent in both cases.
Use this when the user asks for a Nano Banana prompt, wants prompt optimization, or the generation requires precise structure.
GOAL: <what to generate>
INPUTS: <image refs or none>
LAYOUT: <spatial regions, hierarchy, placement>
SUBJECTS: <entities, counts, poses>
TEXT: <exact strings, fonts, placement>
STYLE: <medium, rendering, aesthetic>
LIGHTING/CAMERA: <angle, lens, lighting>
CONSTRAINTS: <must/never rules, exact counts>
VALIDATION: <"ensure exactly X", "no extra text">
references/prompt-patterns.md — detailed templates, checklists, and pattern selection.references/prompt-bank.md — full example prompts and use-case blueprints.Use templates when the user is vague or when edits must be precise.
Generation template:
Editing template (preserve everything else):
Use this when the still image is meant to become the starting frame for an animated AI video shot.
Treat the frame like a keyframe pulled from motion, not like a neutral photo.
kinetic, dynamic, mid-motion, caught in movement, in-action, directional energy, wind-swept, hair in motion, fabric in motion
Static portrait energy when the next step is animation.
Use these when the job is tighter than a generic edit.
Use this when only one element should change and everything else must stay fixed.
Change ONLY: [single variable].
Keep locked: subject identity, pose, framing/crop, camera angle/lens feel, lighting direction, color grade, background, wardrobe, and overall style.
Do not change facial structure, expression, proportions, or any unmentioned element.
Use this when the target shot should keep its composition but inherit the look of a reference image.
Transfer the exact color grade and tonal treatment from the reference style image onto the target image. Keep the target image's composition, framing, focus, lighting direction, pose, depth of field, and camera perspective exactly the same. Do not alter subject position or lens behavior. Apply only the tonal palette, contrast behavior, highlight rolloff, shadow density, and overall cinematic color treatment from the style reference.
Use this when the composition/style should stay the same but the main person/object must be swapped.
Replace the original subject with the person from the reference images, seamlessly integrated into the exact same pose, body positioning, framing, camera angle, and environment. Preserve natural biomechanics, perspective, scale, and shadow consistency. Match the original lighting conditions exactly. Maintain realistic skin texture, visible pores, fine facial detail, and natural tonal variation. No smoothing, no distortion, no artificial blending artifacts.
Use these when the user wants to enhance an existing image to cinematic quality without changing its content. Always use with --input-image. Resolution should be 4K for final upscales, 2K for draft review.
Enhance the uploaded image to a flawless, ultra-high-quality cinematic version while preserving the subject with absolute precision. The person's identity, facial anatomy, expression, body pose, clothing, accessories, surroundings, framing, and overall composition must remain completely unchanged. Do not alter, reinterpret, replace, or introduce any new visual elements. Restore and refine micro-level details including precise facial contours, authentic skin texture with naturally visible pores, individually rendered hair strands, sharp and vivid eyes, and clean, well-defined edges throughout the image. Enhance dynamic range, contrast, and dimensionality with balanced, studio-quality cinematic lighting.
Enhance the uploaded image to a flawless, ultra-high-quality cinematic version while preserving the vehicle with absolute precision. The car's make, model, body shape, paint color, finish type, livery, badges, wheels, aerodynamic elements, surroundings, framing, and overall composition must remain completely unchanged. Do not alter, reinterpret, replace, or introduce any new visual elements. Restore and refine micro-level details including precise panel contours, authentic paint surface with visible metallic flake or matte grain, individually resolved mesh and spoke geometry in the wheels, sharp and legible badges and emblems, clean brake caliper detail, and well-defined edges throughout the image. Enhance dynamic range, contrast, and dimensionality with balanced, cinematic lighting that preserves the original light direction and color temperature.
Enhance the uploaded image to a flawless, ultra-high-quality cinematic version while preserving every subject and element with absolute precision. All subjects, objects, materials, colors, textures, surroundings, framing, and overall composition must remain completely unchanged. Do not alter, reinterpret, replace, or introduce any new visual elements. Restore and refine micro-level details including precise contours, authentic surface textures, individually resolved fine structures, sharp focal elements, and clean, well-defined edges throughout the image. Enhance dynamic range, contrast, and dimensionality with balanced, cinematic lighting that preserves the original light direction and color temperature.
| Image contains | Use | |---|---| | People, faces, portraits | Portrait / Person | | Cars, vehicles, automotive | Automotive / Car | | Anything else or mixed subjects | Universal |
Generate new image:
uv run ~/.codex/skills/nano-banana-pro/scripts/generate_image.py --prompt "A serene Japanese garden with cherry blossoms" --filename "2025-11-23-14-23-05-japanese-garden.png" --resolution 4K
Edit existing image:
uv run ~/.codex/skills/nano-banana-pro/scripts/generate_image.py --prompt "make the sky more dramatic with storm clouds" --filename "2025-11-23-14-25-30-dramatic-sky.png" --input-image "original-photo.jpg" --resolution 2K
development
Seedance 2.0 video prompt director. Converts plain-text scene descriptions into production-ready bilingual EN+ZH video prompts optimized for the Seedance 2.0 video generator. Handles all Seedance work — action (combat, pursuit, stunts), general (landscapes, journeys, atmosphere), dialogue (confrontations, negotiations, interrogations), and non-narrative commercial work (ad spots, music videos, fashion films, automotive inserts, product shots, pet/character demos, cutaway montages, social reels for TikTok / Reels / YouTube Shorts). Use whenever the user wants to create a Seedance video prompt, mentions Seedance, or describes a cinematic scene for video generation. For NARRATIVE screenplay-integrated work, use seedance-screenwriter instead.
development
Write Seedance 2.0 prompts in screenplay format for narrative storytelling — when the prompts will be cut into a film, short, or scene. Use whenever you're generating shots that will be edited into a continuous story with dialogue, character beats, scene continuity, or coverage. Pairs with the screenwriter skill — read the scene's screenplay first (or the project's `scene.md` if it exists), then translate each shot into a Seedance prompt that reads as a screenplay page, not as an engineering spec.
documentation
Скилл-инструмент для сценариста полнометражного фильма или сериала. Используй всегда, когда пользователь хочет писать сценарий, поэпизодник, разрабатывать сцены, бит-шит, диалоги, делать ревизии, считать экранное время, резать длину, работать с персонажами или мифологией истории. Скилл работает на основе методологий Макки, Кэмпбелла и Аристотеля, выдаёт Hollywood-формат .docx, поддерживает билингвальные сценарии (диалог на одном языке + перевод в скобках под ним), и помогает аудитировать структуру по причинности и движению ценности. Скилл не привязан к конкретной истории — пользователь приносит свою.
development
Extract shot composition DNA from any car photograph into structured JSON — camera angle, lens, framing, lighting — stripped of car-specific details. Then reuse extracted angles with any car identity to generate new images at scale. Use when: extracting angles from reference photos, building a shot library, batch-analyzing car photography, replicating a great angle with a different car, running extraction pipelines in Freepik or Flora. Triggers: "extract this angle", "steal this composition", "shot DNA", "analyze this car photo", "replicate this shot with my car", "batch extract angles", "car photography analysis", "angle extraction", "build a shot library".