Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when the user asks to generate or edit images via the OpenAI Image API (for example: generate image, edit/inpaint/mask, background removal or replacement, transparent background, product shots, concept art, covers, or batch variants); run the bundled CLI (`scripts/image_gen.py`) and require `OPENAI_API_KEY` for live calls.
.claude/skills/davila7-imagegen/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 211% | 0% |
| case-22 | ✗→✓ | ▲ Improved | 12% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 69% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 20% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 104% | 0% |
Generates or edits images for the current project (e.g., website assets, game assets, UI mockups, product mockups, wireframes, logo design, photorealistic images, infographics). Defaults to gpt-image-1.5 and the OpenAI Image API, and prefers the bundled CLI for deterministic, reproducible runs.
scripts/image_gen.py) with sensible defaults (see references/cli.md).tmp/imagegen/ for intermediate files (for example JSONL batches); delete when done.output/imagegen/ when working in this repo.--out or --out-dir to control output paths; keep filenames stable and descriptive.Prefer uv for dependency management.
Python packages:
uv pip install openai pillowIf uv is unavailable:
python3 -m pip install openai pillowOPENAI_API_KEY must be set for live API calls.If the key is missing, give the user these steps:
OPENAI_API_KEY as an environment variable in their system.If installation isn't possible in this environment, tell the user which dependency is missing and how to install it locally.
gpt-image-1.5 unless the user explicitly asks for gpt-image-1-mini or explicitly prefers a cheaper/faster model.OPENAI_API_KEY before any live API call.openai package) for all API calls; do not use raw HTTP.client.images.edit(...) and include input images (and mask if provided).scripts/image_gen.py) over writing new one-off scripts.scripts/image_gen.py. If something is missing, ask the user before doing anything else.Reformat user prompts into a structured, production-oriented spec. Only make implicit details explicit; do not invent new requirements.
Classify each request into one of these buckets and keep the slug consistent across prompts and references.
Generate:
Edit:
Quick clarification (augmentation vs invention):
Template (include only relevant lines):
Use case: <taxonomy slug>
Asset type: <where the asset will be used>
Primary request: <user's main prompt>
Scene/background: <environment>
Subject: <main subject>
Style/medium: <photo/illustration/3D/etc>
Composition/framing: <wide/close/top-down; placement>
Lighting/mood: <lighting + mood>
Color palette: <palette notes>
Materials/textures: <surface details>
Quality: <low/medium/high/auto>
Input fidelity (edits): <low/high>
Text (verbatim): "<exact text>"
Constraints: <must keep/must avoid>
Avoid: <negative constraints>Augmentation rules:
references/sample-prompts.md.Use case: stylized-concept
Asset type: landing page hero
Primary request: a minimal hero image of a ceramic coffee mug
Style/medium: clean product photography
Composition/framing: centered product, generous negative space on the right
Lighting/mood: soft studio lighting
Constraints: no logos, no text, no watermarkUse case: precise-object-edit
Asset type: product photo background replacement
Primary request: replace the background with a warm sunset gradient
Constraints: change only the background; keep the product and its edges unchanged; no text; no watermarkMore principles: references/prompting.md. Copy/paste specs: references/sample-prompts.md.
Asset-type templates (website assets, game assets, wireframes, logo) are consolidated in references/sample-prompts.md.
references/cli.mdreferences/image-api.mdreferences/codex-network.mdreferences/cli.md: how to run image generation/edits/batches via scripts/image_gen.py (commands, flags, recipes).references/image-api.md: what knobs exist at the API level (parameters, sizes, quality, background, edit-only fields).references/prompting.md: prompting principles (structure, constraints/invariants, iteration patterns).references/sample-prompts.md: copy/paste prompt recipes (generate + edit workflows; examples only).references/codex-network.md: environment/sandbox/network-approval troubleshooting.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-21 | pass→pass | 11,221 | 7,958 | -29% | 1 | 1 | 0% | 2,425 | 3,990 | +65% | 0 | 0 | — |
case-01 | fail→fail | 5,649 | 5,961 | +6% | 1 | 1 | 0% | 727 | 2,752 | +279% | 0 | 0 | — |
case-02 | fail→fail | 6,345 | 5,456 | -14% | 1 | 1 | 0% | 599 | 2,626 | +338% | 0 | 0 | — |
case-03 | fail→fail | 5,671 | 6,046 | +7% | 1 | 1 | 0% | 1,146 | 2,658 | +132% | 0 | 0 | — |
case-04 | pass→pass | 7,588 | 3,564 | -53% | 1 | 1 | 0% | 1,205 | 2,794 | +132% | 0 | 0 | — |
case-05 | fail→pass | 5,918 | 4,964 | -16% | 1 | 1 | 0% | 1,005 | 3,124 | +211% | 0 | 0 | — |
case-22 | fail→pass | 16,148 | 5,807 | -64% | 1 | 1 | 0% | 3,037 | 3,399 | +12% | 0 | 0 | — |
case-06 | fail→pass | 9,078 | 2,886 | -68% | 1 | 1 | 0% | 1,662 | 2,811 | +69% | 0 | 0 | — |
case-07 | fail→pass | 11,941 | 2,420 | -80% | 1 | 1 | 0% | 2,240 | 2,688 | +20% | 0 | 0 | — |
case-08 | fail→pass | 10,593 | 6,973 | -34% | 1 | 1 | 0% | 1,749 | 3,562 | +104% | 0 | 0 | — |
case-09 | fail→pass | 8,375 | 4,139 | -51% | 1 | 1 | 0% | 1,419 | 3,031 | +114% | 0 | 0 | — |
case-10 | fail→pass | 5,269 | 1,996 | -62% | 1 | 1 | 0% | 963 | 2,655 | +176% | 0 | 0 | — |
case-11 | pass→pass | 8,773 | 6,116 | -30% | 1 | 1 | 0% | 1,416 | 3,404 | +140% | 0 | 0 | — |
case-12 | pass→pass | 9,006 | 7,753 | -14% | 1 | 1 | 0% | 1,553 | 3,638 | +134% | 0 | 0 | — |
case-13 | pass→pass | 11,411 | 4,112 | -64% | 1 | 1 | 0% | 2,012 | 2,997 | +49% | 0 | 0 | — |
case-14 | fail→pass | 7,582 | 5,310 | -30% | 1 | 1 | 0% | 1,434 | 3,242 | +126% | 0 | 0 | — |
case-15 | pass→pass | 10,066 | 4,293 | -57% | 1 | 1 | 0% | 1,736 | 3,012 | +74% | 0 | 0 | — |
case-16 | fail→pass | 9,810 | 2,261 | -77% | 1 | 1 | 0% | 1,693 | 2,647 | +56% | 0 | 0 | — |
case-17 | pass→pass | 13,513 | 6,260 | -54% | 1 | 1 | 0% | 2,257 | 3,328 | +47% | 0 | 0 | — |
case-18 | pass→pass | 10,915 | 4,592 | -58% | 1 | 1 | 0% | 1,991 | 3,151 | +58% | 0 | 0 | — |
case-19 | pass→pass | 6,093 | 6,117 | +0% | 1 | 1 | 0% | 1,242 | 3,589 | +189% | 0 | 0 | — |
case-20 | pass→pass | 3,248 | 3,349 | +3% | 1 | 1 | 0% | 691 | 3,030 | +338% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +41 percentage points is the difference between those two pass rates over the 19 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.