Skill detail

zenmux-image-generation

Generates or edits images through ZenMux with GPT Image, Nano Banana, Qwen Image, Seedream, FLUX and more, optimizing prompts and managing project config.

MatchDirectReviewed for Image Generation
Sourcezenmux/​skillsExternal source
Reported installs287Popularity signal only

Inspect before use

Automated review checks relevance, not safety or endorsement. Read the source instructions before using this skill.

Saved source preview

SKILL.md

The saved excerpt is a snapshot from review. The external source remains the complete and most current version.

---
name: zenmux-image-generation
description: >-
  Generate or edit images through ZenMux with OpenAI GPT Image, Nano Banana,
  Qwen Image, Seedream, FLUX, Kling, GLM, HY-Image, Agnes, and future image
  models. Use whenever the user asks to create, draw, render, design, remix,
  retouch, inpaint, or transform an image; make a photo, portrait, logo,
  product shot, poster, infographic, comic, ad, UI mockup, packaging concept,
  diagram, or visual asset; or says 生成图片, 画一张, 出图, AI 画图, 文生图,
  图生图, 设计海报, 做 logo, 改图, P 图, 图片编辑, 帮我画, or 用 ZenMux 生图.
  In a ZenMux project, prefer this skill for image output even when the user
  does not name a model or API protocol.
---

# zenmux-image-generation

Turn the user's visual intent into an optimized prompt, confirm the prompt and
parameters, then generate or edit images through ZenMux and report the saved
files.

Load the current project's config before choosing a model, optimizing a prompt,
or refreshing sources. The bundled `config.json.example` contains portable
factory defaults; user preferences live only in the project's runtime directory.

All runtime files belong to the current project under
`.context/zenmux-image-generation/`:

```text
.context/zenmux-image-generation/
  .gitignore    # Ignores generated files; allows .gitignore and config.json in Git
  config.json   # User settings, copied from config.json.example only if absent
  refresh-state.json # Per-resource refresh attempts and successful updates
  output/       # Generated images
  prompts/      # Optimized prompts and generation parameters
  assets/       # Reference images copied/downloaded for this task, if needed
  references/   # Refreshed documentation, cookbooks, and model cache
```

The helpers resolve the Git root from the original invocation directory
(`INIT_CWD` for `npm --prefix`); outside Git they use that invocation directory.
Run commands from the user's project. The skill may be installed elsewhere;
substitute its absolute path in script and `--prefix` arguments when needed.
Existing user reference images can stay in place. Skill code, locked dependencies,
and bundled offline references stay in the skill directory.

Initialize the workspace before writing any prompts or downloading assets:

```bash
node skills/zenmux-image-generation/scripts/workspace.mjs
```

This prints the absolute runtime directory, creates its subdirectories and
`.gitignore`, and copies `config.json.example` to `config.json` only if missing.
Existing user settings and ignore rules are preserved. Both reference refresh
and generation also initialize it automatically. Resolve prompt/cache paths from
this printed root when invoking from a project subdirectory.

`config.json` can be committed with the project. Generated images, prompt files,
reference caches, and `refresh-state.json` remain ignored.

## Configuration and prompt modes

Read effective settings (missing fields inherit the example without rewriting
user settings):

```bash
node skills/zenmux-image-generation/scripts/workspace.mjs --config
```

| Setting | Factory default | Meaning |
|---|---|---|
| `generation.model` | `openai/gpt-image-2.5-flare` | Default model |
| `generation.count` | `4` | Output count, 1–10 |
| `generation.size` | `1024x1024` | Size; model-specific validation still applies |
| `generation.quality` | `medium` | `low`, `medium`, `high`, or `auto` |
| `generation.outputFormat` | `png` | `png`, `jpeg`, or `webp` |
| `prompt.mode` | `direct` | `direct` or `reference`, described in step 5 |
| `refresh.autoUpdate` | `true` | Allow automatic network refreshes |
| `refresh.referencesIntervalHours` | `168` | Documentation/cookbooks: once per 7 days |
| `refresh.modelsIntervalHours` | `24` | Model catalogs: once per day |
| `refresh.retryIntervalMinutes` | `60` | Wait before retrying a failed refresh when a local copy exists |

Precedence: explicit user request/CLI flags > project config > example defaults.
Apply one-off requests for a model or prompt mode to this
Read the full source on GitHub (opens external page)
Context

Related work