Cover Image Generator
Generate elegant cover images for articles with 5-dimensional customization.
Usage
/baoyu-cover-image path/to/article.md
/baoyu-cover-image article.md --quick
/baoyu-cover-image article.md --type conceptual --palette warm --rendering flat-vector
/baoyu-cover-image article.md --style blueprint
/baoyu-cover-image article.md --ref style-ref.png
/baoyu-cover-image --palette mono --aspect 1:1 --quick
[paste content]
Options
| Option |
Description |
--type <name> |
hero, conceptual, typography, metaphor, scene, minimal |
--palette <name> |
warm, elegant, cool, dark, earth, vivid, pastel, mono, retro, duotone |
--rendering <name> |
flat-vector, hand-drawn, painterly, digital, pixel, chalk, screen-print |
--style <name> |
Preset shorthand (see Style Presets) |
--text <level> |
none, title-only, title-subtitle, text-rich |
--mood <level> |
subtle, balanced, bold |
--font <name> |
clean, handwritten, serif, display |
--aspect <ratio> |
16:9 (default), 2.35:1, 4:3, 3:2, 1:1, 3:4 |
--lang <code> |
Title language (en, zh, ja, etc.) |
--no-title |
Alias for --text none |
--quick |
Skip confirmation, use auto-selection |
--ref <files...> |
Reference images for style/composition guidance |
Five Dimensions
| Dimension |
Values |
Default |
| Type |
hero, conceptual, typography, metaphor, scene, minimal |
auto |
| Palette |
warm, elegant, cool, dark, earth, vivid, pastel, mono, retro, duotone |
auto |
| Rendering |
flat-vector, hand-drawn, painterly, digital, pixel, chalk, screen-print |
auto |
| Text |
none, title-only, title-subtitle, text-rich |
title-only |
| Mood |
subtle, balanced, bold |
balanced |
| Font |
clean, handwritten, serif, display |
clean |
Auto-selection rules: references/auto-selection.md
Galleries
Types: hero, conceptual, typography, metaphor, scene, minimal
β Details: references/types.md
Palettes: warm, elegant, cool, dark, earth, vivid, pastel, mono, retro, duotone
β Details: references/palettes/
Renderings: flat-vector, hand-drawn, painterly, digital, pixel, chalk, screen-print
β Details: references/renderings/
Text Levels: none (pure visual) | title-only (default) | title-subtitle | text-rich (with tags)
β Details: references/dimensions/text.md
Mood Levels: subtle (low contrast) | balanced (default) | bold (high contrast)
β Details: references/dimensions/mood.md
Fonts: clean (sans-serif) | handwritten | serif | display (bold decorative)
β Details: references/dimensions/font.md
File Structure
Output directory per default_output_dir preference:
same-dir: {article-dir}/
imgs-subdir: {article-dir}/imgs/
independent (default): cover-image/{topic-slug}/
<output-dir>/
βββ source-{slug}.{ext} # Source files
βββ refs/ # Reference images (if provided)
β βββ ref-01-{slug}.{ext}
β βββ ref-01-{slug}.md # Description file
βββ prompts/cover.md # Generation prompt
βββ cover.png # Output image
Slug: 2-4 words, kebab-case. Conflict: append -YYYYMMDD-HHMMSS
Workflow
Progress Checklist
Cover Image Progress:
- [ ] Step 0: Check preferences (EXTEND.md) β BLOCKING
- [ ] Step 1: Analyze content + save refs + determine output dir
- [ ] Step 2: Confirm options (6 dimensions) β οΈ unless --quick
- [ ] Step 3: Create prompt
- [ ] Step 4: Generate image
- [ ] Step 5: Completion report
Flow
Input β [Step 0: Preferences] ββ¬β Found β Continue
ββ Not found β First-Time Setup β BLOCKING β Save EXTEND.md β Continue
β
Analyze + Save Refs β [Output Dir] β [Confirm: 6 Dimensions] β Prompt β Generate β Complete
β
(skip if --quick or all specified)
Step 0: Load Preferences β BLOCKING
Check EXTEND.md existence (priority: project β user):
test -f .baoyu-skills/baoyu-cover-image/EXTEND.md && echo "project"
test -f "${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-cover-image/EXTEND.md" && echo "xdg"
test -f "$HOME/.baoyu-skills/baoyu-cover-image/EXTEND.md" && echo "user"
if (Test-Path .baoyu-skills/baoyu-cover-image/EXTEND.md) { "project" }
$xdg = if ($env:XDG_CONFIG_HOME) { $env:XDG_CONFIG_HOME } else { "$HOME/.config" }
if (Test-Path "$xdg/baoyu-skills/baoyu-cover-image/EXTEND.md") { "xdg" }
if (Test-Path "$HOME/.baoyu-skills/baoyu-cover-image/EXTEND.md") { "user" }
CRITICAL: If not found, complete setup BEFORE any other steps or questions.
Step 1: Analyze Content
- Save reference images (if provided) β references/workflow/reference-images.md
- Save source content (if pasted, save to
source.md)
- Analyze content: topic, tone, keywords, visual metaphors
- Deep analyze references β οΈ: Extract specific, concrete elements (see reference-images.md)
- Detect language: Compare source, user input, EXTEND.md preference
- Determine output directory: Per File Structure rules
β οΈ People in Reference Images:
If reference images contain people who should appear in the cover:
- Model supports
--ref (default): Copy image to refs/, pass via --ref at generation. No description file needed β the model sees the face directly.
- Model does NOT support
--ref (Jimeng, Seedream 3.0): Create refs/ref-NN-{slug}.md with per-character description (hair, glasses, skin tone, clothing). Embed as MUST/REQUIRED instructions in prompt text.
See reference-images.md for full decision table.
Step 2: Confirm Options β οΈ
MUST use AskUserQuestion tool to present options as interactive selection β NOT plain text tables. Present up to 4 questions in a single AskUserQuestion call (Type, Palette, Rendering, Font + Settings). Each question shows the recommended option first with reason, followed by alternatives.
Full confirmation flow and question format: references/workflow/confirm-options.md
| Condition |
Skipped |
Still Asked |
--quick or quick_mode: true |
6 dimensions |
Aspect ratio (unless --aspect) |
All 6 + --aspect specified |
All |
None |
Step 3: Create Prompt
Save to prompts/cover.md. Template: references/workflow/prompt-template.md
CRITICAL - References in Frontmatter:
- Files saved to
refs/ β Add to frontmatter references list
- Style extracted verbally (no file) β Omit
references, describe in body
- Before writing β Verify:
test -f refs/ref-NN-{slug}.{ext}
Reference elements in body MUST be detailed, prefixed with "MUST"/"REQUIRED", with integration approach.
Step 4: Generate Image
- Backup existing
cover.png if regenerating
- Check image generation skills; if multiple, ask preference
- Process references from prompt frontmatter:
direct usage β pass via --ref (use ref-capable backend)
style/palette β extract traits, append to prompt
- Generate: Call skill with prompt file, output path, aspect ratio
- On failure: auto-retry once
Step 5: Completion Report
Cover Generated!
Topic: [topic]
Type: [type] | Palette: [palette] | Rendering: [rendering]
Text: [text] | Mood: [mood] | Font: [font] | Aspect: [ratio]
Title: [title or "visual only"]
Language: [lang] | Watermark: [enabled/disabled]
References: [N images or "extracted style" or "none"]
Location: [directory path]
Files:
β source-{slug}.{ext}
β prompts/cover.md
β cover.png
Image Modification
| Action |
Steps |
| Regenerate |
Backup β Update prompt file FIRST β Regenerate |
| Change dimension |
Backup β Confirm new value β Update prompt β Regenerate |
Composition Principles
- Whitespace: 40-60% breathing room
- Visual anchor: Main element centered or offset left
- Characters: Simplified silhouettes; NO realistic humans
- Title: Use exact title from user/source; never invent
Extension Support
Custom configurations via EXTEND.md. See Step 0 for paths.
Supports: Watermark | Preferred dimensions | Default aspect/output | Quick mode | Custom palettes | Language
Schema: references/config/preferences-schema.md
References
Dimensions: text.md | mood.md | font.md
Palettes: references/palettes/
Renderings: references/renderings/
Types: references/types.md
Auto-Selection: references/auto-selection.md
Style Presets: references/style-presets.md
Compatibility: references/compatibility.md
Visual Elements: references/visual-elements.md
Workflow: confirm-options.md | prompt-template.md | reference-images.md
Config: preferences-schema.md | first-time-setup.md | watermark-guide.md