codex-imagegen · git:20261105.4e4821d · 2026-11-05 · sha256 c3bcaa206c062633

codex-imagegen git:20261105.4e4821dA

Immutable. This exact content never changes and is served at /api/v1/blob/c3bcaa206c062633.

---
name: codex-imagegen
description: Create and refine raster image files (PNG) from Claude Code using the user's Codex subscription. Handles short creative interviews, distinct visual directions, reference-based edits, style-matched asset sets, and verified transparent PNGs. Use whenever the user wants a new or changed bitmap image, such as hero art, product photos, illustrations, posters, app icons, or UI assets; also for imagegen, GPT Image, 이미지 생성, 이미지 시안, 앱 아이콘, 에셋, 이미지 수정, 투명 배경, 画像生成, 生成图片. Not for image analysis, SVG/vector or code-drawn graphics, animation, or code that calls an image API.
---

# Codex Imagegen

Claude directs and reviews; Codex only generates. Use the user's Codex subscription;
never use a separately billed image API. Requires Python 3.9+, macOS/Linux, and
logged-in Codex CLI 0.164.0+ (`codex login`). Resolve `<SKILL_DIR>` from this file.

## Route by intent

| Request | Action | Read only if needed |
|---|---|---|
| Clear request / “just make it” | Generate one image immediately | No extra reference |
| Unclear direction / “interview me” | Ask 1–3 consequential questions together | [interview.md](references/interview.md) |
| “Options”, “시안”, multiple directions | Default to 3 distinct candidates if count is unspecified | [directions.md](references/directions.md) |
| Change an existing image | Inspect it, state change + preserve list, attach it | [editing.md](references/editing.md) |
| A set that must match (icons, UI assets, series) | Settle the style on one sample, then reuse a style lock | [prompting-guide.md](references/prompting-guide.md) |
| Styled art, exact text, photography | Add only the relevant craft details | [prompting-guide.md](references/prompting-guide.md) |
| Model question or execution failure | Run `scripts/codex_status.py` (no model call), then explain or fix | [cli-reference.md](references/cli-reference.md) |

Do not load every reference, repository documentation, or launcher source. Reuse
answers and relevant project style facts already in context. Read `DESIGN.md` only
when matching this project's style. Do not run Codex to interview, plan, or judge.

## Make the brief

Use the user's language. Specify intended use, subject, medium, framing, light,
palette, and constraints only where they affect this image. Preserve detailed
user direction; omit irrelevant fields. For styled or illustrated images, set value
contrast, palette roles, and one focal subject first (prompting-guide.md). Aim for
80–180 words for a normal image, shorter for a local edit; exact copy and necessary
preservation rules take priority.

```text
Asset: website hero for a notes app, landscape 16:9, one image
Request: an open notebook and a few index cards on a clean desk
Look: editorial product photograph; soft window light from the left;
matte paper texture, natural shadows; warm ivory and ink-blue palette
Composition: subject in the right third; quiet empty left half for page copy
Constraints: no readable writing, logos, watermark, border, or extra objects
```

Quote exact text with its placement and one occurrence. For references add
`Image 1: base to edit; Image 2: material reference only` in attachment order.
Send only this final brief and necessary images to Codex, never the conversation,
interview answers, research, this skill, or a whole design document.

## Generate and inspect

Write a UTF-8 brief using the host's file-write tool, then start in the background:

```bash
python3 "<SKILL_DIR>/scripts/image_project.py" --prompt-file "<BRIEF>" --out-dir "<NEW_DIR>" --background
# Attach inputs with --image "<BASE.png>" (repeat in reference order).
```

This returns a job directory immediately. Continue independent requested work;
check later with `image_project.py --out-dir "<DIR>" --status` (no Codex call).
Do not poll repeatedly or claim completion while queued/running. If images are the
only work, wait with the host's background-task mechanism. Read completed paths from
the manifest, then inspect them. Multi-image plans: directions.md. For foreground
execution use `run_codex_imagegen.py`.

The default and recommended relay is `gpt-6-luna` with reasoning `none`, compact
instructions, no skills catalog, and unrelated tools disabled.
Both scripts accept `--model` and `--reasoning-effort` to change it; that is the
text relay, NOT an image model. Codex's server picks the image model, quality, and
size; no flag, brief wording, or output metadata selects or reveals it. Never call
an output a specific GPT Image version or variant; if asked, say Codex chose the
model server-side. Do not claim an API quality setting, native 4K, or pixel-perfect
preservation.

Copy only completed manifest images (or launcher-printed paths) to the user's
destination or `output/imagegen/<purpose>/`. Preserve originals; version edits.
Keep the final brief as `output/imagegen/<purpose>/<image-name>.md`, even when the
PNG goes elsewhere. Never write briefs into the user's
destination; asset folders such as `public/` are often served. Skip confidential briefs.
Inspect the image using Claude's image-reading tool at full view and relevant detail.
Check intent, composition, literal text, anatomy/product geometry, preserved details,
and edges. A valid path is not a quality pass. State any visible unresolved defect.

If transparency is requested, describe only the isolated subject and say
"transparent background" (the relay then sets the tool's `transparent_background`
flag). A described backdrop, floor, or scene can override the flag. Then run:

```bash
python3 "<SKILL_DIR>/scripts/verify_png_alpha.py" "<PNG>"  # add --require-transparent-corners for isolated cutouts
```

If the subject must be fully solid (alpha is often 250–254), write a copy with
`scripts/solidify_png_alpha.py <PNG> <OUT.png>`. Do not mistake checkerboard pixels
for alpha. A cutout of an existing photo is re-rendered: compare labels, text, and
framing with the source (editing.md). Measure actual dimensions before export;
codex-cli 0.153.2–0.166.0 returned ≈1.57 MP, which is not a resolution guarantee.
Resize proportionally; crop/pad intentionally, never stretch. Label upscaling honestly.

Generate only the requested count. Allow at most one targeted repair per rejected
image; do not automatically polish accepted work, retry timeouts, or rerun a whole
set. User-requested revisions begin a new edit. Return previews, usable file paths,
and one useful next step, such as “pick 2 and tell me what to change.”