agentleFS
notquenotque/vexjoy-agent/skills/content/image-gen/SKILL.md

image-gen

Skill448 starsChanged 5 days agoMITView on GitHub

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

  • Reads credentials
  • Installs packages

49 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use spotify, trello and 8 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • QuixiAISkill

    spotify

    Search Spotify, inspect current playback and devices, and control playback with explicit approval

    Also in 3 projects that use this

  • QuixiAISkill

    trello

    List Trello boards, lists, and cards and create or update cards with explicit approval

    Also in 3 projects that use this

  • AnthropicSkill

    daily-briefing

    Morning rundown - today's meetings with account context, opps closing soon with stale flags, waiting customer emails, and the day's top actions. Use when the user says "daily briefing", "daily brief", "morning briefing", "what's my day", "what's on my plate today", "prep my day", "start my day", "morning rundown", or on a schedule.

    Also in 3 projects that use this

  • silvainfmSkill

    paid-ads

    When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms. Also use when the user mentions 'PPC,' 'paid media,' 'ad copy,' 'ad creative,' 'ROAS,' 'CPA,' 'ad campaign,' 'retargeting,' or 'audience targeting.' This skill covers campaign strategy, ad creation, audience targeting, and optimization.

    Also in 3 projects that use this

  • AnthropicSkill

    weather

    The optional standing status report ("the weather"): compile open incidents, build health, merge-queue stats, and deploy lag into one always-current report page, and post to the channel only when a defined event fires. Use when the weather routine fires, or when someone asks to run/update the weather report.

    Also in 3 projects that use this

  • mitsuhikoSkill

    summarize

    Fetch a URL or convert a local file (PDF/DOCX/HTML/etc.) into Markdown using `uvx markitdown`, optionally it can summarize

    Also in 3 projects that use this

The file

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 34 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 34 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.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

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.