reflect-skills-from-me…
This skill should be used when the user asks to "reflect on skills from memory", "audit marketplace skills against memory",…
Generate or edit images via two backends: Google Gemini (gemini-3-pro-image) or any OpenAI-compatible endpoint (gpt-image-2, dall-e-3). Use when the user wants to create, draw, illustrate, or edit an image, icon, logo, poster, or concept art.
$ npx -y skills add FradSer/dotclaude --skill generate-image --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/generate-imageContext preview
The summary Claude sees to decide when to auto-load this skill.
Generate or edit images via two backends: Google Gemini (gemini-3-pro-image) or any OpenAI-compatible endpoint (gpt-image-2, dall-e-3). Use when the user wants to create, draw, illustrate, or edit an image, icon, logo, poster, or concept art.
name: generate-image description: Generate or edit images via two backends: Google Gemini (gemini-3-pro-image) or any OpenAI-compatible endpoint (gpt-image-2, dall-e-3). Use when the user wants to create, draw, illustrate, or edit an image, icon, logo, poster, or concept art. user-invocable: true argument-hint: "\"PROMPT\" --backend gemini|openai [-o out.png] [-i input.png ...] [--aspect-ratio 16:9] [--size 2K|1024x1024] [--count N] [--model ...] [--base-url URL]" allowed-tools: ["Read", "Write", "AskUserQuestion", "Bash(uv run:*)", "Bash(*/generate_image.py:*)"]
Turn a text prompt — optionally with reference images — into one or more images via one of two explicit backends. **`--backend` has no default** — always pick one (`gemini` or `openai`), or set `IMAGE_BACKEND`. The script does the API call, file saving, and configuration; your job is to pick the backend, craft a strong prompt, and wire up the flags.
set: `--aspect-ratio`, `--size` tiers (`1K`/`2K`/`4K`), and multi-image edit/compose (`-i a.png -i b.png`). Use `GEMINI_API_KEY` / `GEMINI_IMAGE_MODEL`.
DashScope, new-api gateways, ...). Use `OPENAI_API_KEY` / `OPENAI_BASE_URL` / `OPENAI_IMAGE_MODEL`. Supports `gpt-image-2`, `dall-e-3`, etc.
**CRITICAL** -- Never paste the API key into chat or commit a `.env`. If the key is missing, the script prints exactly how to set it — relay that to the user rather than guessing.
A one-line request like "draw a fox in a spacesuit" needs no questions — just generate. Ask (via AskUserQuestion) only when a choice would materially change the result and you cannot reasonably default it, e.g. aspect ratio for a "banner vs. avatar", or whether an attached image should be *edited* vs. used as *style reference*.
Read `references/prompting.md` before writing a non-trivial prompt. In short: describe subject, composition, lighting, style, and mood in concrete terms; put any literal text to render in quotes; and for edits, state what to change AND what to keep. A vivid one-paragraph prompt beats a terse phrase.
Invoke it directly (the shebang runs it through `uv`):
${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate_image.py "PROMPT" --backend BACKEND -o OUT.png [flags]Flags:
| Flag | Purpose | Default | |------|---------|---------| | `--backend` | `gemini` (native Google API) or `openai` (OpenAI-compatible endpoint). No default — also via `IMAGE_BACKEND`. | required | | `-o, --output` | Output path (`.png`/`.jpeg`) | `generated.png` | | `-i, --input` | Reference/input image (repeatable). gemini: edit/compose multi-image. openai: edit single image (first wins). | none | | `--aspect-ratio` | `1:1 2:3 3:2 3:4 4:3 4:5 5:4 9:16 16:9 21:9`. gemini: via `image_config`. openai: via `extra_body` (Gemini-compat endpoints only). | model decides | | `--size` | gemini: `1K`/`2K`/`4K`. openai: free string (`1024x1024`, `auto`, ...). | model decides | | `--count` | Number of images. gemini: N separate calls. openai: one call, `n=N`. | 1 | | `--model` | Model id or alias (else `GEMINI_IMAGE_MODEL`/`OPENAI_IMAGE_MODEL`). gemini: `pro`/`flash`/raw id. openai: raw id (e.g. `gpt-image-2`). | backend default | | `--quality` | `low`/`medium`/`high`/`auto` — openai backend only. | model decides | | `--response-format` | `b64_json`/`url`/`none` — openai backend only. `url` is downloaded to disk; `none` omits the param. Some gateways require `url` or reject the param (use `none`). | `b64_json` | | `--base-url` | openai backend only: OpenAI-compatible base URL. Also via `IMAGE_BASE_URL`/`OPENAI_BASE_URL`. | required for openai | | `--api-key` | Override the API key (else `GEMINI_API_KEY` for gemini, `OPENAI_API_KEY` for openai). | required |
**Models** (pass the alias to `--model` or set the backend's env var):
| Backend | Alias / id | Notes | |---------|-----------|-------| | gemini | `pro` (default) → `gemini-3-pro-image` | highest quality | | gemini | `flash` → `gemini-2.5-flash-image` | faster / cheaper | | openai | `gpt-image-2`, `dall-e-3`, `gpt-image-1`, ... | any id the endpoint serves |
**Examples:**
# Gemini, 2K wide banner generate_image.py "podcast cover art" --backend gemini --aspect-ratio 16:9 --size 2K -o cover.png # Gemini multi-image compose generate_image.py "put the watch from image 1 on the wrist in image 2" --backend gemini -i watch.png -i wrist.png -o composite.png # OpenAI-compatible gateway, gpt-image-2 (this gateway needs url format) generate_image.py "a red bicycle" --backend openai --base-url https://api.tu-zi.com/v1 \ --model gpt-image-2 --size 1024x1024 --response-format url -o bike.png # OpenAI official generate_image.py "a red bicycle" --backend openai --base-url https://api.openai.com/v1 --model gpt-image-2 -o bike.png
When the user wants choices to pick from, request `--count 2` (or more) and show all outputs. With `-i`, the prompt becomes an edit/compose instruction over the supplied image(s).
Tell the user the saved path(s). If nothing was returned, it is usually a safety-filtered prompt — say so and offer a reworded prompt. Output files are images: reference them by path; do not try to inline their bytes.
Backend, key, base
A curated collection of 22 plugins for Claude Code, providing specialized agents, skills, and automation tools for development and productivity workflows.
This skill should be used when the user asks to "reflect on skills from memory", "audit marketplace skills against memory",…
Use acpx as a headless ACP CLI for agent-to-agent communication, always inside an isolated SubAgent. Use when running coding…
Delegates a self-contained task to a Google Gemini Managed Agent (Antigravity) running in a remote sandbox with code execution,…
Runs a deep-research query on Google Gemini's deep-research managed agent and returns a cited report. This skill should be used…
This skill should be used when the user asks to "understand a codebase", "get code context", "research a library", "explore a…
Execute this when the user requests code context for a repository, library, or any natural-language code/technology question…