Skip to content
Development
Skill

/image-gen

AI image generation: Gemini and Nano Banana backends; single/series/batch workflows with prompt-to-disk.

From plugin
vexjoy-agent
44964 skills198 agents12 commands83 hooks

Claude Code

$ npx -y skills add notque/vexjoy-agent --skill image-gen --agent claude-code

SKILL.md

image-gen.SKILL.md
name: image-gen
description: "AI image generation: Gemini and Nano Banana backends; single/series/batch workflows with prompt-to-disk."
agent: python-general-engineer
user-invocable: false
routing:
  category: image-generation
  triggers:
    - generate image
    - create image
    - image generation
    - AI image
    - gemini image
    - make image
    - draw
    - illustrate
    - sprite generation
    - card art
    - batch generation
    - series of images
    - character art
    - pixel art
    - image post-processing
    - make a picture
    - create art
    - generate a picture
    - make art
    - generate artwork
    - create artwork
  not_for: "HTML visualization or charts (use html-artifact), or deterministic non-AI palette/matrix pixel art (use game-asset-generator)"
  pairs_with:
    - python-general-engineer
    - game-dev

image-gen

Backend-agnostic image generation: single images, series with anchor-chain consistency, batch pipelines. Two backends: Gemini (API) and Nano Banana (local scripts with post-processing).

Deep References

| Signal | Load | Content | |---|---|---| | Gemini backend selected | `references/backends/gemini.md` | Models, env vars, flag table, examples, error codes | | Nano Banana needed (post-processing, series, JSON batch, style-match) | `references/backends/nano-banana.md` | Subcommands, flags, aspect ratios, prompt patterns by asset type |

Phase 1: Detect Backend

python3 skills/content/image-gen/scripts/detect-backend.py
  • `gemini` -- load `references/backends/gemini.md`
  • `ask` -- no key found; ask the user to set `GEMINI_API_KEY`

**Gate**: backend confirmed.

Phase 2: Write Prompt Files

Write all prompts to disk before any API call. Prompt files are the generation record and anchor-chain input for series.

File naming: single `prompts/YYYY-MM-DD-{slug}.md`, series `prompts/{series-name}-01.md` through `-NN.md`.

---
model: gemini-3-pro-image-preview
aspect-ratio: 1:1
flags: []
---

Full prompt text. Be explicit about subject, style, background, constraints.
mkdir -p prompts

For series: write ALL prompt files before calling any generation script.

**Gate**: all prompt files written and reviewed.

Phase 3: Select Script

| Use case | Script | Subcommand | |---|---|---| | Single image, Gemini | `scripts/generate_image.py` | `--prompt` | | Batch from text file, Gemini | `scripts/generate_image.py` | `--batch` | | Single with post-processing | `scripts/nano-banana-generate.py` | `generate` | | Style match from reference | `scripts/nano-banana-generate.py` | `with-reference` | | Batch from JSON manifest | `scripts/nano-banana-generate.py` | `batch` | | Series (anchor chain) | `scripts/nano-banana-generate.py` | `generate` then `with-reference` | | Post-processing only | `scripts/nano-banana-process.py` | `crop` / `remove-bg` / `pipeline` |

Model selection:

| Scenario | Model | |---|---| | Draft, testing, batch, cost-sensitive | `gemini-2.5-flash-image` (2-5s) | | Final asset, character art, typography | `gemini-3-pro-image-preview` (~30s) |

Aspect ratio by use case:

| Asset type | Ratio | |---|---| | Sprites, characters, icons | `1:1` | | Card art, landscape | `16:9` | | Vertical maps, portrait bg | `9:16` | | Portrait cards | `3:4` | | Wide banners | `21:9` |

Generate at the target ratio. Generating 1:1 and cropping to 16:9 loses 56% of pixels.

**Gate**: script and subcommand identified.

Phase 4: Generate

Use absolute paths for output files. Show full script output.

Anchor-Chain Algorithm (Series)

Character drift occurs when images are generated independently. Prevent it by passing the previous output as `--reference`:

image-01.png (no ref) -> image-02.png (ref=01) -> image-03.png (ref=02) -> ...

1. Generate image 1 with no reference. 2. Use output of image 1 as `--reference` for image 2. 3. Continue: each image N references image N-1.

Save originals with `--save-original` for any batch or expensive generation. Re-processing a saved original is free; re-generating costs quota and may break the chain.

**Gate**: script exits 0.

Phase 5: Verify and Report

Read the generated image to verify:

  • Subject matches prompt
  • No unwanted watermarks or artifacts
  • Aspect ratio and framing correct
  • No excessive padding or dark borders

If inspection fails: regenerate with adjusted prompt. Report the issue before retrying.

Report: output file path (absolute), dimensions, model, post-processing applied, verification result. Report only what was requested.

Error Handling

| Error | Cause | Resolution | |---|---|---| | `GEMINI_API_KEY not set` | Missing env var | `export GEMINI_API_KEY=your_key` | | `No image in response` | Safety filter or text-only response | Adjust prompt; remove policy-adjacent content | | `Missing dependency: google-genai` | Package absent | `pip install google-genai pillow` | | `Rate limit exceeded (429)` | Too many requests | Increase `--delay`; script retries automatically | | `Content policy violation (400)` | Restricted content | Rephrase using neutral language | | Model not found | Wrong model string | Use exact strings: `gemini-2.5-flash-image` or `gemini-3-pro-image-preview` |

Read more
@notque
Ships withvexjoy-agent

Essays and writing behind this toolkit live at vexjoy.com. VexJoy Agent connects plain-English requests to specialist agents, skills, and workflows. /do selects the knowledge and tools needed for your task.

44964 skills198 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
449
Star history of notque/vexjoy-agent on GitHub, a chart by star-history.com

Other skills on vexjoy-agent.

assessment

assessment

Assessment: read-only inspection, codebase overview, value analysis, health checks, ADR consultation, decision analysis,…

@notque@notqueInstall Skill
business-ops

business-ops

Business operations: strategy, technology, growth, competitive intelligence, support, finance, HR, legal, operations, sales,…

@notque@notqueInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about image-gen.

Which coding agents can use image-gen?
image-gen installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.