Generate character design images, original character art, OC portraits, character sheets, and hero concept art. Use when the user asks for a character design...
---
name: character-image-generator
description: Generate character design images, original character art, OC portraits, character sheets, and hero concept art. Use when the user asks for a character design, OC, character portrait, fantasy character, anime character, or original persona image.
version: 0.5.0
metadata: { "pattern": ["generator", "pipeline"], "openclaw": { "emoji": "🧙", "primaryEnv": "IMAGE_GEN_API_KEY", "requires": { "env": ["IMAGE_GEN_API_KEY"], "anyBins": ["bun", "npx"], "bins": ["node", "npm"] } } }
---
# Character Image Generator (`character-image-generator`)
This skill is optimized for character identity, silhouette clarity, costume logic, and reusable character prompt structure.
This skill keeps the same single-gateway runtime, readiness gate, model-selection flow, and CLI behavior as `image-generation`, but narrows the briefing and prompt construction for **character image generator** work.
## Safety & Scope
- **Network**: This skill calls the WeryAI gateway over HTTPS (`https://api.weryai.com`).
- **Auth**: Uses `IMAGE_GEN_API_KEY`. The key is never printed. It may be persisted **only** when you explicitly run `npm run setup -- --persist-api-key`.
- **Reference images**: Must be public URLs (`https://` recommended). `http://` may work but is insecure. Local file paths and `data:` URLs are rejected.
- **No arbitrary shell**: The generation runtime does not execute arbitrary shell commands.
- **Files written**: Output images and optional local config under `.image-skills/character-image-generator/` (project) and/or `~/.image-skills/character-image-generator/` (home).
## Use Cases
- original character portraits
- fantasy or sci-fi hero concepts
- character sheets and reference images
- mascot or spokesperson characters
- narrative cast exploration
## First Trigger Rules
Before the first generation run in a new project or environment:
1. Run `npm run ensure-ready -- --project . --workflow <workflow>`
2. If runtime dependencies are missing, ask for approval and install them
3. If `IMAGE_GEN_API_KEY` is missing, offer to configure it now
4. If no model is configured yet, initialize **Nano Banana 2** (`GEMINI_3_1_FLASH_IMAGE`) as the default
Do not ask the user to edit config files manually. Treat API keys as secrets and never echo them back.
## Clarify These Decisions
Ask **one question at a time**. Prioritize:
1. character role or archetype
2. age range, gender expression, and body language
3. setting: fantasy, modern, sci-fi, historical, etc.
4. signature outfit, props, and color identity
5. portrait, half-body, full-body, or sheet layout
## Recommended Defaults
- aspect ratio: `3:4` or `4:5`
- recommended style: `anime`, `editorial`, `manga`, or `photoreal`
- composition: one primary character, readable silhouette
- background: simple enough that outfit and pose stay dominant
## Prompt Blueprint
Build the prompt in this order:
1. Identity: role, archetype, age range, personality, faction, or profession.
2. Look: face, hair, body language, posture, expression.
3. Outfit + props: signature materials, colors, weapon/tool, emblem, etc.
4. Presentation: portrait, full body, turnaround, or concept sheet.
5. World feel: fantasy, cyberpunk, school life, mythology, noir, etc.
Use one clean prompt direction at a time instead of mixing many competing ideas.
## Prompt Rules
- Always define silhouette, costume anchors, and one memorable visual hook.
- If the user wants a reusable character, keep accessories and palette consistent across variants.
- Use a sheet-style prompt for reference art; use a scene-style prompt for story art.
- When underspecified, prefer strong archetypes over generic 'cool character' wording.
## Avoid
- too many unrelated props
- multiple equal-priority characters unless the user asks for a duo/group
- unclear costume materials or indistinct silhouette
- overly busy background scenes for reference-style art
## Workflow
1. Run the readiness gate and resolve `IMAGE_GEN_API_KEY`
2. Clarify the scenario-specific decisions above
3. Build a single strong prompt from the blueprint
4. Choose a recommended style only if it helps the request
5. Generate the image
6. If the user wants variations, change one major variable at a time and re-generate
## Script
`{baseDir}` is the directory containing this file. `${BUN_X}` is either `bun` or `npx -y bun`.
| Path | Purpose |
| --- | --- |
| `{baseDir}/scripts/main.ts` | the only execution entrypoint |
## Usage Examples
```bash
# examples only; M should be chosen by the user or resolved by the agent
M=<chosen model key>
${BUN_X} {baseDir}/scripts/main.ts --prompt "original fantasy character, young female archivist mage, emerald robe with gold embroidery, floating paper charms, calm intelligent expression, full-body concept art, clean parchment backdrop" --style editorial --image character.png --ar 3:4 -m "$M"
${BUN_X} {baseDir}/scripts/main.ts --prompt "anime character sheet for a cyberpunk courier boy, silver undercut hair, orange visor, black utility jacket, messenger drone companion, front pose with detail callouts feel, highly consistent design" --style anime --image character-sheet.png --ar 4:5 -m "$M"
```
## Delivery Rules
- Tell the user what you are generating and which model is being used before you start
- Show the image directly when it is ready; do not reply with only a filename
- If the user asks for revisions, only change the necessary direction instead of restarting everything
- If the request is underspecified, use the clarification order above before writing the final prompt
## References
- [references/config/first-time-setup.md](references/config/first-time-setup.md)
- [references/config/preferences-schema.md](references/config/preferences-schema.md)
- [references/config/model-registry-schema.md](references/config/model-registry-schema.md)
- [references/style-presets.md](references/style-presets.md)
- [references/weryai-platform.md](references/weryai-platform.md)
don't have the plugin yet? install it then click "run inline in claude" again.
restructured into implexa's six components with explicit decision points for missing api key, underspecified requests, rate limits, network failures, and character variations; documented external weryai connection with auth and rate limit concerns; added edge cases for empty results, expired tokens, invalid aspect ratios, and rejected file paths; preserved original prompt blueprint and workflow logic.
generate character design images, original character art, OC portraits, character sheets, and hero concept art. use this skill when a user asks for a character design, OC, character portrait, fantasy character, anime character, or original persona image. the skill is optimized for character identity, silhouette clarity, costume logic, and reusable character prompt structure.
environment variables
IMAGE_GEN_API_KEY (required): authentication key for the WeryAI image generation gateway. obtain from your WeryAI account dashboard. never log or echo this value. can be persisted locally only via explicit npm run setup -- --persist-api-key command.runtime dependencies
node and npm (required)bun or npx (required): used to execute the generation script{baseDir}/scripts/main.ts where {baseDir} is the directory containing this skillexternal connections
https://api.weryai.com. requires valid IMAGE_GEN_API_KEY and network connectivity. subject to rate limits (check WeryAI docs for current limits; typically 10-60 requests per minute depending on plan). auth tokens expire; regenerate key if 401 errors persist.user inputs (clarification order)
readiness check: run npm run ensure-ready -- --project . --workflow <workflow> to verify node, npm, bun/npx, and IMAGE_GEN_API_KEY are present. if any dependency is missing, ask user for approval before installing. if IMAGE_GEN_API_KEY is absent, offer to configure it now (do not ask user to edit config files manually).
initialize default model (first run only): if no model is configured, set GEMINI_3_1_FLASH_IMAGE (Nano Banana 2) as the default. store in .image-skills/character-image-generator/config.json (project) or ~/.image-skills/character-image-generator/config.json (home).
clarify the character request: ask one question at a time in the order listed under "inputs" above. do not overwhelm the user. stop when you have enough detail to write a strong prompt.
construct the prompt using this blueprint (in order):
select style (optional): recommend only if it clarifies the request. common choices: anime, editorial, manga, photoreal. defer to user preference if stated.
set aspect ratio: use 3:4 or 4:5 by default for character portraits and reference art. allow user override.
execute generation: run the script with the finalized prompt:
${BUN_X} {baseDir}/scripts/main.ts \
--prompt "<constructed prompt>" \
--style <style> \
--image <output-filename>.png \
--ar <aspect-ratio> \
-m <model-key>
where ${BUN_X} is bun or npx -y bun, and <model-key> is the chosen model identifier.
output handling: images are written to .image-skills/character-image-generator/ (project) or ~/.image-skills/character-image-generator/ (home). display the image directly to the user; do not reply with only a filename.
revisions: if the user requests changes, modify only the necessary prompt direction (e.g., outfit color, pose, expression) instead of regenerating from scratch. re-run step 7 with the updated prompt.
if IMAGE_GEN_API_KEY is missing or invalid
npm run setupnpm run setup -- --persist-api-keyif runtime dependencies are missing
npm install (or guided setup)if the request is underspecified (e.g., "just a cool character")
if the user wants variations
if the request includes multiple characters or a group
if the request includes a complex background or scene
if rate limits are hit
if network timeout or connectivity fails
if the generated image does not match the prompt
success state: a single PNG image file, written to .image-skills/character-image-generator/output/ or user-specified location, displaying the requested character design with:
metadata: the script logs the following to stdout:
GEMINI_3_1_FLASH_IMAGE)3:4)file locations:
.image-skills/character-image-generator/config.json~/.image-skills/character-image-generator/config.json.image-skills/character-image-generator/ or user-specified pathedge cases handled:
IMAGE_GEN_API_KEY is revoked or expired, the API returns 401. instruct user to regenerate the key and re-run setup.3:4 and logs a warning.data: URLs and local file paths (e.g., /home/user/image.png). reference images must be public HTTPS URLs.the user knows the skill worked when: