AI Image Generation and Editing
zhayujie/CowAgent
Generates or edits images from text prompts through a Python script that picks an image backend based on which API keys are configured.
Generates or edits PNG images with Google's Nano Banana 2 model through a small script, with a choice of 512, 1K, 2K or 4K output.
$ npx skills add LichAmnesia/lich-skills --skill nano-banana -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LichAmnesia/lich-skills nano-banana --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LichAmnesia/lich-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/nano-banana .claude/skills/nano-banana && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "nano-banana" agent skill from https://github.com/LichAmnesia/lich-skills/tree/main/skills/nano-banana into .claude/skills/nano-banana/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nano-banana", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LichAmnesia/lich-skills/tree/main/skills/nano-bananaType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LichAmnesia/lich-skills --skill nano-banana -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LichAmnesia/lich-skills nano-banana --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LichAmnesia/lich-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/nano-banana .agents/skills/nano-banana && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "nano-banana" agent skill from https://github.com/LichAmnesia/lich-skills/tree/main/skills/nano-banana into .agents/skills/nano-banana/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nano-banana", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LichAmnesia/lich-skills --skill nano-banana -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LichAmnesia/lich-skills nano-banana --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LichAmnesia/lich-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/nano-banana .cursor/skills/nano-banana && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "nano-banana" agent skill from https://github.com/LichAmnesia/lich-skills/tree/main/skills/nano-banana into .cursor/skills/nano-banana/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nano-banana", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LichAmnesia/lich-skills.git --path skills/nano-banana--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LichAmnesia/lich-skills --skill nano-banana -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LichAmnesia/lich-skills nano-banana --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LichAmnesia/lich-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/nano-banana .gemini/skills/nano-banana && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "nano-banana" agent skill from https://github.com/LichAmnesia/lich-skills/tree/main/skills/nano-banana into .gemini/skills/nano-banana/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nano-banana", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LichAmnesia/lich-skills nano-bananaInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LichAmnesia/lich-skills --skill nano-banana -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LichAmnesia/lich-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/nano-banana .github/skills/nano-banana && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "nano-banana" agent skill from https://github.com/LichAmnesia/lich-skills/tree/main/skills/nano-banana into .github/skills/nano-banana/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nano-banana", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LichAmnesia/lich-skills --skill nano-banana -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LichAmnesia/lich-skills nano-banana --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LichAmnesia/lich-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/nano-banana .opencode/skills/nano-banana && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "nano-banana" agent skill from https://github.com/LichAmnesia/lich-skills/tree/main/skills/nano-banana into .opencode/skills/nano-banana/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nano-banana", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
nano-bananaGenerates or edits PNG images with Google's Nano Banana 2 model through a small script, with a choice of 512, 1K, 2K or 4K output.
The skill calls Google's Nano Banana 2 model (gemini-3.1-flash-image-preview) through scripts/generate_image.py, run with uv. You give it a prompt and an output filename and it saves a PNG, either from text alone or from an input image plus an instruction such as removing a crowd or swapping a background.
Resolution defaults to 1K and can be set to 512, 1K, 2K or 4K; when editing, the output matches the input image's size unless you pass a resolution. The skill translates loose wording such as thumbnail or high quality into those settings. It only makes images, so it is not meant for video, pixel-exact UI mockups or licensed stock photos. A Gemini API key goes in GEMINI_API_KEY or GOOGLE_API_KEY, and the first run installs google-genai and pillow through uv.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit ebbc355. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
uvcurlshgitleaksFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
astral.shAlso links to:
aistudio.google.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
GEMINI_API_KEYGOOGLE_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Nano Banana Image Generator loads about 1.1k tokens when it runs. Until then it costs about 55 tokens; SKILL.md has 401 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
command -v uv || curl -LsSf https://astral.sh/uv/install.sh | shAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from LichAmnesia/lich-skills at commit ebbc355, republished under its MIT licence (© LichAmnesia). 401 words, ~1,106 tokens.
.claude/skills/nano-banana/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Text-to-image and image edit via Google's Nano Banana 2 model, aka gemini-3.1-flash-image-preview. Fast, cheap, high-quality. Returns PNG.
Get a Gemini API key: https://aistudio.google.com/app/apikey
Export it:
export GEMINI_API_KEY="YOUR_KEY_HERE"
# or
export GOOGLE_API_KEY="YOUR_KEY_HERE"Install uv if missing:
command -v uv || curl -LsSf https://astral.sh/uv/install.sh | shFirst run auto-installs google-genai and pillow via uv's inline script deps.
uv run ~/.claude/skills/lich-skills/skills/nano-banana/scripts/generate_image.py \
--prompt "A cinematic rainy Tokyo alley, neon reflections, 35mm, low angle" \
--filename "tokyo-alley.png" \
--resolution 1KOutput is saved to tokyo-alley.png in the current directory unless the filename is absolute.
Pass an input image with --input-image. The model sees the image + your instruction.
uv run .../generate_image.py \
--prompt "Remove the crowd behind the subject. Keep framing and grading unchanged." \
--filename "cleaned.png" \
--input-image "./portrait.png" \
--resolution 2KWhen editing, the script auto-matches output resolution to the input's dimensions unless you explicitly pass --resolution.
| Flag | Default | Purpose |
|---|---|---|
--prompt, -p | required | Image description or edit instruction |
--filename, -f | required | Output path (PNG) |
--input-image, -i | — | Source image for editing |
--resolution, -r | 1K | One of 512, 1K, 2K, 4K |
--api-key, -k | env | Overrides GEMINI_API_KEY / GOOGLE_API_KEY |
--model, -m | gemini-3.1-flash-image-preview | Rarely needed |
Map loose user language to a resolution flag:
| User says | Use |
|---|---|
| (nothing) | 1K |
| "small", "thumbnail", "quick draft" | 512 |
| "normal", "medium" | 1K |
| "high quality", "large" | 2K |
| "4k", "print", "wallpaper" | 4K |
Subject: <subject>.
Style: <photo | illustration | 3D | painting | pixel art | ...>.
Composition: <shot type, angle>.
Lighting: <lighting description>.
Background: <background>.
Avoid: <what should NOT be in the image>.Change only: <the specific edit>.
Keep subject, framing, lighting, palette, text, and overall style unchanged.Being explicit about what to keep is the difference between a clean edit and a total re-render.
--api-key → GEMINI_API_KEY → GOOGLE_API_KEYcommand -v uv
test -n "$GEMINI_API_KEY" || test -n "$GOOGLE_API_KEY"
# If editing:
test -f ./input.png| Error | Fix |
|---|---|
Error: No API key provided. | Export GEMINI_API_KEY or pass --api-key |
Error loading input image: | Bad path or unreadable file |
Error: No image was generated in the response. | Prompt too vague or unsafe — rewrite |
403 / quota | Wrong key, region-locked, or over quota |
$GEMINI_API_KEY or $GOOGLE_API_KEY set in env, not in filesgitleaks detect --source . clean© LichAmnesia, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (scripts) in skills/nano-banana of LichAmnesia/lich-skills.
Open the folder on GitHubat commit ebbc355
Nano Banana Image Generator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Nano Banana Image Generator this skillLichAmnesia/lich-skills | 234 | — | ~1.1k | Automated safety check: Notes | MIT | |
| AI Image Generation and Editingzhayujie/CowAgent | 47k | — | ~1.3k | Automated safety check: Pass | MIT | |
| BlockRun Image GenerationBlockRunAI/ClawRouter | 6.6k | — | ~2.1k | Automated safety check: Pass | MIT | |
| Antigravity Gemini ImageuluckyXH/OpenMOSS | 1.3k | — | ~730 | Automated safety check: Notes | MIT | |
| FigureMuuuun/luxas | 1.2k | — | ~1.2k | Automated safety check: Pass | MIT | |
| Gemini Image Generatordair-ai/dair-academy-plugins | 614 | 2 repos | ~3.5k | Automated safety check: Notes | MIT |
zhayujie/CowAgent
Generates or edits images from text prompts through a Python script that picks an image backend based on which API keys are configured.
BlockRunAI/ClawRouter
Generates or edits images through ClawRouter's local image API, with a choice of models and sizes and payment handled automatically through x402.
uluckyXH/OpenMOSS
Generate or edit images using the Antigravity-hosted Gemini image model via the local gateway.
Muuuun/luxas
Hybrid figure pipeline (Nano Banana raster + rembg background removal + TikZ vector assembly).
dair-ai/dair-academy-plugins
Generates and edits images with Google's Gemini Nano Banana Pro model through the Gemini API, including photo edits and multi-image composition.
ReScienceLab/opc-skills
Generate and edit images using Google Gemini 3 Pro Image (Nano Banana Pro).
LichAmnesia/lich-skills
Pulls Google Analytics 4 data through the Data API with TypeScript scripts and turns it into a daily SEO report or prioritized traffic and bounce-rate recommendations.
LichAmnesia/lich-skills
Organizes long-running agent work into a Project, Sprint and Task hierarchy with per-task state files, isolated worktrees, review loops and script-checked rules.
LichAmnesia/lich-skills
Runs headless web searches and single-page extraction through the Tavily API from a Python script, returning cited, summarized results without a browser.
LichAmnesia/lich-skills
Drives a failing build, typecheck, lint or test command to a passing exit code through small, one-fix-at-a-time rounds, stopping at a hard attempt cap instead of looping forever.
LichAmnesia/lich-skills
Replaces trial-and-error fixing with an observe, hypothesize, experiment and conclude loop kept in DEBUG.md, where no fix is allowed before evidence supports a cause.
LichAmnesia/lich-skills
Runs a gated Spec, Plan, Build, Test, Review, Ship workflow so non-trivial changes are specified, verified and reviewed before they ship, with a named artifact per phase.
Works with
Categories
Generates or edits PNG images with Google's Nano Banana 2 model through a small script, with a choice of 512, 1K, 2K or 4K output. py, run with uv. You give it a prompt and an output filename and it saves a PNG, either from text alone or from an input image plus an instruction such as removing a crowd or swapping a background.
Nano Banana Image Generator fits situations like: creating a thumbnail, cover image, poster or icon from a text description; editing an existing image: background change, object removal or style swap; making a quick visual for a README, blog post or slide.
Run `npx skills add LichAmnesia/lich-skills --skill nano-banana -a claude-code`. Or copy the skill folder (skills/nano-banana in LichAmnesia/lich-skills) into .claude/skills/nano-banana in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LichAmnesia/lich-skills --skill nano-banana -a codex`. Or copy the skill folder (skills/nano-banana in LichAmnesia/lich-skills) into .agents/skills/nano-banana in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LichAmnesia/lich-skills --skill nano-banana -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/nano-banana, .gemini/skills/nano-banana, .github/skills/nano-banana and .opencode/skills/nano-banana in your project.
Going by SKILL.md and its folder, Nano Banana Image Generator needs Python for the scripts in its folder, the command-line tools its instructions call (uv, curl, sh and gitleaks) and credentials named GEMINI_API_KEY and GOOGLE_API_KEY. Our summary lists: A Gemini API key in GEMINI_API_KEY or GOOGLE_API_KEY; uv installed to run the script.
SKILL.md names 2 domains. In commands or code: astral.sh; the agent is likely to contact it when it follows the instructions. As links in the text: aistudio.google.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pipes a well-known installer script into a shell), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Nano Banana Image Generator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.1k tokens (SKILL.md is roughly 4.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Nano Banana Image Generator: AI Image Generation and Editing (zhayujie/CowAgent, 47k stars), BlockRun Image Generation (BlockRunAI/ClawRouter, 6.6k stars), Antigravity Gemini Image (uluckyXH/OpenMOSS, 1.3k stars) and Figure (Muuuun/luxas, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LichAmnesia (a GitHub user) maintains it in LichAmnesia/lich-skills, which has 234 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on June 9, 2026.
Source: LichAmnesia/lich-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.