agentleFS
notquenotque/claude-code-toolkit/skills/content/image-gen/SKILL.md

image-gen

Skill444 starsChanged 9 days agoMITView on GitHub

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

  • Reads credentials
  • Installs packages

We split this skill into the rules it gives an agent

8 rules. 0 are common, 7 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 31 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Write all prompts to disk before any API call.

    line 60
  2. Distinctive:

    Gate: all prompt files written and reviewed.

    line 80
  3. Distinctive:

    Use absolute paths for output files.

    line 117
  4. Very specific:

    Use output of image 1 as --reference for image 2.

    line 128
  5. Distinctive:

    Read the generated image to verify:

    line 137
  6. Distinctive:

    No unwanted watermarks or artifacts

    line 139
  7. Distinctive:

    No excessive padding or dark borders

    line 141
  8. Distinctive:

    If inspection fails: regenerate with adjusted prompt.

    line 143

“Common” is measured: kept by at least 6 in 10 of the 31 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

SignalLoadContent
Gemini backend selectedreferences/backends/gemini.mdModels, env vars, flag table, examples, error codes
Nano Banana needed (post-processing, series, JSON batch, style-match)references/backends/nano-banana.mdSubcommands, 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 caseScriptSubcommand
Single image, Geminiscripts/generate_image.py--prompt
Batch from text file, Geminiscripts/generate_image.py--batch
Single with post-processingscripts/nano-banana-generate.pygenerate
Style match from referencescripts/nano-banana-generate.pywith-reference
Batch from JSON manifestscripts/nano-banana-generate.pybatch
Series (anchor chain)scripts/nano-banana-generate.pygenerate then with-reference
Post-processing onlyscripts/nano-banana-process.pycrop / remove-bg / pipeline

Model selection:

ScenarioModel
Draft, testing, batch, cost-sensitivegemini-2.5-flash-image (2-5s)
Final asset, character art, typographygemini-3-pro-image-preview (~30s)

Aspect ratio by use case:

Asset typeRatio
Sprites, characters, icons1:1
Card art, landscape16:9
Vertical maps, portrait bg9:16
Portrait cards3:4
Wide banners21: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

ErrorCauseResolution
GEMINI_API_KEY not setMissing env varexport GEMINI_API_KEY=your_key
No image in responseSafety filter or text-only responseAdjust prompt; remove policy-adjacent content
Missing dependency: google-genaiPackage absentpip install google-genai pillow
Rate limit exceeded (429)Too many requestsIncrease --delay; script retries automatically
Content policy violation (400)Restricted contentRephrase using neutral language
Model not foundWrong model stringUse exact strings: gemini-2.5-flash-image or gemini-3-pro-image-preview

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.