cover-image
Generate article cover images with structured dimensions and bundled generation tooling. Use when the user asks to create a cover image, article cover, blog header, newsletter hero image, or banner-style key visual.
Best use case
cover-image is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Generate article cover images with structured dimensions and bundled generation tooling. Use when the user asks to create a cover image, article cover, blog header, newsletter hero image, or banner-style key visual.
Teams using cover-image should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/cover-image/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How cover-image Compares
| Feature / Agent | cover-image | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Generate article cover images with structured dimensions and bundled generation tooling. Use when the user asks to create a cover image, article cover, blog header, newsletter hero image, or banner-style key visual.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
AI Agents for Startups
Explore AI agent skills for startup validation, product research, growth experiments, documentation, and fast execution with small teams.
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
SKILL.md Source
# Cover Image Generation (`cover-image`)
## Reference Images (Important)
If you use reference images (image-to-image / series reference / consistency refs):
- Reference images must be public URLs.
- **HTTPS is strongly recommended.**
- `http://` may work but is insecure and can be blocked by some networks.
- Local file paths and `data:` URLs are not supported by the WeryAI gateway.
This skill turns a vague "make a cover image" request into a stable set of structured decisions instead of starting from scratch every time.
Script:
- `scripts/scaffold.ts`
- `scripts/build-batch.ts`
## 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/cover-image/` (project) and/or `~/.image-skills/cover-image/` (home).
## Use Cases
- article cover images
- blog headers or hero images
- newsletter covers
- banner-style key visuals
- any single visual that should feel like a cover rather than an infographic or comic
## Core Dimensions
Choose these six dimensions, then assemble the prompt:
1. `type`
2. `palette`
3. `rendering`
4. `text`
5. `mood`
6. `aspect`
See [references/dimensions.md](references/dimensions.md).
## Commands
| Script | Purpose |
| --- | --- |
| `scripts/scaffold.ts` | Initialize `brief.md` and `prompts/cover.md` |
| `scripts/build-batch.ts` | Generate `batch.json` from multiple prompt variants |
| `npm run generate` | Generate the cover image |
| `./scripts/vendor/compression-runtime/scripts/main.ts` | Compress output for delivery |
## Workflow
### Step 1: Initialize Working Files
Create the working directory:
```bash
${BUN_X} {baseDir}/scripts/scaffold.ts \
--output-dir cover-image/topic-slug \
--topic "Why Habits Stick" \
--concept "A repeating loop turning into visible momentum" \
--type conceptual \
--palette elegant \
--rendering editorial \
--text title-only \
--mood balanced \
--aspect 16:9 \
--lang en
```
This creates:
- `brief.md`
- `prompts/cover.md`
### Step 2: Understand the Content
Extract:
- the main theme
- the target reader
- the keywords
- whether the content fits a person, a scene, or an abstract metaphor
- whether title text needs to appear
- the user's language, when it matters for on-canvas text
### Step 3: Choose the Dimensions
Default priorities:
- `type`: `conceptual`
- `palette`: `elegant`
- `rendering`: `editorial` or `poster`
- `text`: `title-only`
- `mood`: `balanced`
- `aspect`: `16:9`
If the user explicitly specifies style, mood, or aspect ratio, follow that preference.
Language rules:
- default to the source content language
- if the cover includes a title or subtitle, state the target language explicitly in the prompt
### Step 4: Refine `brief.md` and `prompts/cover.md`
Use `brief.md` to lock the audience, concept, and references before polishing the final prompt.
Make sure `prompts/cover.md` clearly states:
- the article or video topic
- the main visual concept or metaphor
- the chosen `type / palette / rendering / text / mood / aspect`
- the target language for any on-canvas text
### Step 5: Build `batch.json` for Variants
If you want to explore multiple cover directions, put several prompt files in `prompts/`, for example:
- `01-editorial.md`
- `02-poster.md`
- `03-cinematic.md`
Then generate a batch file:
```bash
${BUN_X} {baseDir}/scripts/build-batch.ts \
--prompts cover-image/topic-slug/prompts \
--output cover-image/topic-slug/batch.json \
--images-dir cover-image/topic-slug \
--model "$M" \
--jobs 3
```
The script reads `Rendering style:` and `Aspect ratio:` from each prompt file when possible, then maps them into generation task fields.
### Step 6: Map to the Bundled Runtime
The bundled image runtime currently exposes one structured style argument, `--style`, so:
- map `rendering` to `--style`
- write `palette`, `type`, `text`, and `mood` into the prompt body
- keep using `--ref` when the user provides references
Recommended mapping:
| cover rendering | runtime `--style` |
| --- | --- |
| `editorial` | `editorial` |
| `poster` | `poster` |
| `cinematic` | `cinematic` |
| `watercolor` | `watercolor` |
| `flat-vector` | `flat-illustration` |
| `ink-brush` | `ink-brush` |
| `chalk` | `chalk` |
| `manga` | `manga` |
| `anime` | `anime` |
| `photoreal` | `photoreal` |
| `3d-render` | `3d-render` |
| `infographic` | `infographic` |
### Step 7: Build the Prompt
Use [references/prompt-template.md](references/prompt-template.md). Make sure to:
- put the topic and subject in the first paragraph
- describe cover composition and visual focus in the second paragraph
- describe palette, mood, and text treatment in the third paragraph
- request reserved title space instead of relying on the model to typeset well
- state the title language explicitly if the cover needs on-canvas text
### Step 8: Run Generation
Generate through the bundled runtime at `npm run generate`.
On first use in a new project, run `npm run ensure-ready -- --project <your-project> --workflow cover` from this skill directory before generation starts. This reads the doctor report and auto-runs `bootstrap` if local script dependencies are still missing. If the report shows a missing `IMAGE_GEN_API_KEY` and the user approves, run `npm run setup -- --project <your-project> --workflow cover --persist-api-key` when the key is already in env, or persist it to `.image-skills/cover-image/.env` on the user's behalf, then continue without leaving this workflow.
When this skill is first connected, tell the user that the default generation model is **Nano Banana 2** (`GEMINI_3_1_FLASH_IMAGE`). Also tell them it can be switched later whenever another model fits the task better.
Example:
```bash
${BUN_X} {baseDir}/npm run generate \
--promptfiles prompts/cover.md \
--style editorial \
--image cover-image/topic-slug/cover.png \
--ar 16:9 \
-m "$M"
```
Batch example:
```bash
${BUN_X} {baseDir}/npm run generate \
--batchfile cover-image/topic-slug/batch.json \
--jobs 3
```
If the user has not chosen a model yet, follow this skill's model-selection rules first.
## Output Convention
Suggested output directory:
```text
cover-image/<topic-slug>/
```
Suggested minimum files:
- `brief.md`
- `prompts/cover.md`
- `batch.json`
- `cover.png`
If the content comes directly from chat instead of a file, it is also useful to save the summary or title into `source.md` for reproducibility.
## Iteration
When the user wants changes after seeing the generated cover:
- **Style mismatch** ("wrong style", "too busy") → change `rendering` / `--style`, re-generate. Keep other dimensions.
- **Color issues** ("too dark", "wrong colors") → adjust `palette` in the prompt body, re-generate.
- **Composition issues** ("bad layout", "title position is off") → revise the composition and text-space description in `prompts/cover.md`, re-generate.
- **Want to explore alternatives** → create additional prompt variants in `prompts/`, use `build-batch.ts` to generate multiple options in one batch.
- **Minor tweaks with reference** → if the model supports `--ref`, use the current output as reference with adjusted prompt to refine.
Only re-generate the specific image that needs changes. Do not re-run the entire workflow from scratch unless the user wants a fundamentally different direction.
## Definition of Done
- `brief.md` and `prompts/cover.md` exist in the output directory.
- The generated cover image matches the chosen `type / palette / rendering / text / mood / aspect`.
- The image is shown directly to the user with a summary of the parameters used.
- A compressed webp version is produced for delivery.
## When Not to Use It
Choose a different higher-level skill for:
- multi-page knowledge comics
- multi-card RedNote image series
- dense infographics
- pure product cutout or white-background product shots
## Delivery
When the cover image is ready:
1. **Show the image directly** — do not just print a file path.
2. Briefly state what was generated: style, aspect ratio, model used.
3. Ask if the user wants changes or is satisfied.
4. **Auto-compress**: once the user confirms, run the bundled compression runtime to produce a webp version for web/social upload. Deliver both the original and the compressed file.
```bash
${BUN_X} {baseDir}/./scripts/vendor/compression-runtime/scripts/main.ts cover-image/topic-slug/cover.png -f webp -q 80
```
Internal checklist (for agent, not shown to user): chosen `type / palette / rendering / text / mood / aspect`, model, whether `--style` or `--ref` was used, compression done.Related Skills
IT Disaster Recovery Plan Generator
Build production-ready disaster recovery plans that actually get followed when things break.
Debt Collection & Recovery Playbook
Generate compliant debt recovery strategies, collection letter sequences, and payment plan frameworks.
alphashop-image
AlphaShop(遨虾)图像处理 API 工具集。支持11个接口:图片翻译、图片翻译PRO、 图片高清放大、图片主题抠图、图片元素识别、图片元素智能消除、图像裁剪、 虚拟试衣(创建+查询)、模特换肤(创建+查询)。 触发场景:图片翻译、翻译图片文字、放大图片、高清放大、抠图、去背景、 检测水印/Logo/文字、消除水印、去牛皮癣、裁剪图片、虚拟试衣、AI试衣、 模特换肤、换模特、AlphaShop图像、遨虾图片处理。
image-gen
Generate AI images from text prompts. Triggers on: "生成图片", "画一张", "AI图", "generate image", "配图", "create picture", "draw", "visualize", "generate an image".
douyin-cover-builder
这是一个面向中文创作者的 OpenClaw Skill,输入主题与人物气质后,会输出可直接用于生图模型的高质量提示词与创意说明。
minimax-imagegen
Expert image generation skill using MiniMax image-01. Use this skill ANY TIME the user asks to create, generate, make, or produce an image, visual, graphic, banner, illustration, icon, screenshot mockup, hero image, thumbnail, social media asset, app icon, website visual, or any other image — even if they just say "make me a picture of X." This skill should also trigger when the user asks to improve or iterate on a previous image prompt, or when image output would enhance a task (e.g., "I need a hero image for my blog post"). Covers all use cases: website assets for tonyreviewsthings.com and tonysimons.dev, app/software media, marketing visuals, social media content, UI mockups, character/portrait generation, and general creative requests.
image-to-editable-ppt-slide
Rebuild one or more reference images as visually matching editable PowerPoint slides using native shapes, text, fills, and layout instead of a flat screenshot. Use when the user wants an image, flowchart, infographic, dashboard, process diagram, or designed slide converted into an editable PPT/PPTX deck that stays editable and closely matches the source.
openrouter-image-generation
Generate or edit images through OpenRouter's multimodal image generation endpoint (`/api/v1/chat/completions`) using OpenRouter-compatible image models. Use for text-to-image or image-to-image requests when the user wants OpenRouter, `OPENROUTER_API_KEY`, model overrides, or provider-specific `image_config` options.
save-article-with-images
Save web articles locally with images. Automatically downloads images, generates Markdown, and converts to PDF. Supports WeChat Official Account articles via subagent isolation. Triggers: save article, save this article, download article, clip article, wechat article.
blog-image-claw-skill
Generate ai blog image generator images with AI via the Neta AI image generation API (free trial at neta.art/open).
image-review
用户说评价、改进、优化图片时触发。
generate-image
用户请求画图时触发。