Edit Image
Edit images using Nano Banana Pro (gemini-3-pro-image).
When to Use
Use this skill when the user asks to:
- Edit part of an image (inpainting)
- Extend an image beyond its borders (outpainting)
- Replace objects or regions in an image
- Add elements to an existing image
- Adapt an existing image for a different format or platform (social media, OG, Twitter card)
How It Works
Uses Gemini's multimodal capabilities to understand and edit images via natural language. The model takes the source image and a text prompt describing the desired edit, then generates a new image with the changes applied.
Semantic masking: Instead of requiring precise pixel masks, describe what to change in your prompt. The model understands context and can target specific regions.
Optional mask images: You can still provide a mask image (white = edit area) as a visual hint, but it's not required. Descriptive prompts often work better.
Usage
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/edit-image/scripts/edit.ts <input-image> "edit prompt" [options]
Options
--mask <path>- Optional mask image (white = edit area, black = keep)--mode <inpaint|outpaint>- Edit mode--format <png|jpeg|webp>- Output format--quality <n>- JPEG quality (1-100)--negative <prompt>- What to avoid in the edit--count <n>- Number of variations--seed <n>- Random seed--output <path>- Output path
Examples
# Simple edit with descriptive prompt (no mask needed)
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/edit-image/scripts/edit.ts photo.jpg "change the background to a beach sunset"
# Edit with mask for precise control
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/edit-image/scripts/edit.ts photo.jpg "add a sunset sky" --mask sky_mask.png --mode inpaint
# Outpaint to extend image
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/edit-image/scripts/edit.ts photo.jpg "extend the landscape" --mode outpaint
# Edit with negative prompt
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/edit-image/scripts/edit.ts portrait.png "fix the teeth to look natural" --negative "gap in teeth, missing teeth"
# Replace object with multiple variations
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/edit-image/scripts/edit.ts scene.jpg "replace the car with a bicycle" --count 3
Context Discipline
Do not read generated images back into context. The script outputs only the file path. Ask the user to visually inspect the result. To inspect programmatically, optimize the image first (via the optimize-images skill) to avoid filling the context window with large uncompressed image data.
Prompt Tips
- Be specific: "Change only the sky to golden hour lighting" works better than "make it look better"
- Describe preservation: The tool automatically adds "keep everything else the same" but you can be more specific
- Use negative prompts:
--negative "blurry, distorted"helps avoid unwanted artifacts - Iterate: Generate a few variations with
--count 2and pick the best one
Models & Providers
Default provider is gemini (gemini-3-pro-image, Nano Banana Pro) — best
for conversational/semantic edits, transparency, style-consistent edits, and
multi-image composition. No Vertex AI credentials required.
Pass --provider openai to use gpt-image-2 for masked inpainting and
multi-image compositing (--mask, multiple --input). gpt-image-2 cannot
output transparency, has no negative-prompt parameter, and no outpaint mode — so
--negative, --mode, and transparent results stay on Gemini (auto-routed).
After the provider is resolved, tune the prompt with the matching guide:
providers/prompts/edit.gemini.md or providers/prompts/edit.openai.md.
Models verified live: June 2026 (
gemini-3-pro-image,gpt-image-2). If a newer generation exists, STOP and suggest a PR tob-open-io/gemskills.