🎁 Get the FREE AI Skills Starter Guide — Subscribe →
BytesAgainBytesAgain
ðŸĶ€ ClawHub

Baoyu Cover Image

by @jimliu

Generates article cover images with 5 dimensions (type, palette, rendering, text, mood) combining 11 color palettes and 7 rendering styles. Supports cinemati...

Versionv1.117.4
Downloads8,982
Stars⭐ 7
TERMINAL
clawhub install baoyu-cover-image

📖 About This Skill


name: baoyu-cover-image description: Generates article cover images with 5 dimensions (type, palette, rendering, text, mood) combining 11 color palettes and 7 rendering styles. Supports cinematic (2.35:1), widescreen (16:9), and square (1:1) aspects. Use when user asks to "generate cover image", "create article cover", or "make cover". version: 1.56.2 metadata: openclaw: homepage: https://github.com/JimLiu/baoyu-skills#baoyu-cover-image

Cover Image Generator

Generate elegant cover images for articles with 5-dimensional customization.

User Input Tools

When this skill prompts the user, follow this tool-selection rule (priority order):

1. Prefer built-in user-input tools exposed by the current agent runtime — e.g., AskUserQuestion, request_user_input, clarify, ask_user, or any equivalent. 2. Fallback: if no such tool exists, emit a numbered plain-text message and ask the user to reply with the chosen number/answer for each question. 3. Batching: if the tool supports multiple questions per call, combine all applicable questions into a single call; if only single-question, ask them one at a time in priority order.

Concrete AskUserQuestion references below are examples — substitute the local equivalent in other runtimes.

Image Generation Tools

When this skill needs to render an image, resolve the backend in this order:

1. Current-request override — if the user names a specific backend in the current message, use it. 2. Saved preference — if EXTEND.md sets preferred_image_backend to a backend available right now, use it. 3. Auto-select (when the preference is auto, unset, or the pinned backend isn't available): - If the current runtime exposes a native image tool (e.g., Codex imagegen, Hermes image_generate), use it. Runtime-native tools are preferred by default — agents that know their own tool inventory should surface the native one here. - Otherwise, if exactly one non-native backend is installed (e.g., baoyu-imagine), use it. - Otherwise (multiple non-native backends with no runtime-native tool), ask the user once — batch with any other initial questions. 4. If none are available, tell the user and ask how to proceed.

Setting preferred_image_backend: ask forces the step-3 prompt every run regardless of available backends. Users change the pinned backend via the ## Changing Preferences section below.

Prompt file requirement (hard): write each image's full, final prompt to a standalone file under prompts/ (naming: NN-{type}-[slug].md) BEFORE invoking any backend. The backend receives the prompt file (or its content); the file is the reproducibility record and lets you switch backends without regenerating prompts.

Concrete tool names (imagegen, image_generate, baoyu-imagine) above are examples — substitute the local equivalents under the same rule.

Confirmation Policy

Default behavior: confirm before generation.

  • Treat explicit skill invocation, a file path, matched keywords/presets, EXTEND.md defaults, and any documented auto-selection as recommendation inputs only. None of them authorizes skipping confirmation.
  • Do not start Step 3 or Step 4 until the user confirms the dimensions / aspect / language / backend choices.
  • Skip confirmation only when the current request explicitly says to do so, for example: --quick, "į›īæŽĨį”Ÿæˆ", "äļį”ĻįĄŪčŪĪ", "č·ģčŋ‡įĄŪčŪĪ", "按éŧ˜čŪĪ凚å›ū", or equivalent wording. quick_mode: true in EXTEND.md counts as a standing explicit opt-out — set it only when you want every run to skip Step 2.
  • If confirmation is skipped explicitly, state the assumed dimensions / aspect / language / backend in the next user-facing update before generating.
  • Options

    | Option | Description | |--------|-------------| | --type | hero, conceptual, typography, metaphor, scene, minimal | | --palette | warm, elegant, cool, dark, earth, vivid, pastel, mono, retro, duotone, macaron | | --rendering | flat-vector, hand-drawn, painterly, digital, pixel, chalk, screen-print | | --style | Preset shorthand (see Style Presets) | | --text | none, title-only, title-subtitle, text-rich | | --mood | subtle, balanced, bold | | --font | clean, handwritten, serif, display | | --aspect | 16:9 (default), 2.35:1, 4:3, 3:2, 1:1, 3:4 | | --lang | Title language (en, zh, ja, etc.) | | --no-title | Alias for --text none | | --quick | Skip confirmation, use auto-selection | | --ref | 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, macaron | 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, macaron → 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}/
  • /
    ├── 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 in priority order — the first one found wins:

    | Priority | Path | Scope | |----------|------|-------| | 1 | .baoyu-skills/baoyu-cover-image/EXTEND.md | Project | | 2 | ${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-cover-image/EXTEND.md | XDG | | 3 | $HOME/.baoyu-skills/baoyu-cover-image/EXTEND.md | User home |

    | Result | Action | |--------|--------| | Found | Load, display summary → Continue | | Not found | ⛔ Run first-time setup (references/config/first-time-setup.md) → Save → Continue |

    CRITICAL: If not found, complete setup BEFORE any other steps or questions.

    Step 1: Analyze Content

    1. Save reference images (if provided) → references/workflow/reference-images.md 2. Save source content (if pasted, save to source.md) 3. Analyze content: topic, tone, keywords, visual metaphors 4. Deep analyze references ⚠ïļ: Extract specific, concrete elements (see reference-images.md) 5. Detect language: Compare source, user input, EXTEND.md preference 6. 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 ⚠ïļ

    Hard gate: this step is mandatory per the Confirmation Policy — Steps 3–4 cannot start until the user confirms here (or explicitly opts out with --quick / quick_mode: true / equivalent wording in the current request).

    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

    1. Backup existing cover.png if regenerating 2. Select backend via the ## Image Generation Tools rule at the top: use whatever is available; if multiple, ask the user once. Do this once per session before any generation. 3. Write the full final prompt to prompts/01-cover-[slug].md (hard requirement) BEFORE invoking the backend. 4. Process references from prompt frontmatter: - direct usage → pass via --ref (use ref-capable backend) - style/palette → extract traits, append to prompt 5. Generate: Call the chosen backend with the prompt file, output path, aspect ratio 6. 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
  • Changing Preferences

    EXTEND.md lives at the path noted in Step 0. Three ways to change it:

  • Edit directly — open EXTEND.md and change fields. Full schema: references/config/preferences-schema.md.
  • Reconfigure interactively — delete EXTEND.md (or ask "reconfigure baoyu-cover-image preferences" / "重新配į―Ū"). The next run re-triggers first-time setup.
  • Common one-line edits:
  • - preferred_image_backend: auto — default; runtime-native tool wins, falls back to the only installed backend, asks only if multiple non-native are present. - preferred_image_backend: codex-imagegen — pin to Codex's built-in. - preferred_image_backend: baoyu-imagine — pin to the baoyu-imagine skill. - preferred_image_backend: ask — confirm backend every run. - watermark.enabled: true, preferred_type, preferred_palette, preferred_rendering, default_aspect, quick_mode: true, language — shift the auto-selection defaults and confirmation flow.

    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

    ⚙ïļ Configuration

    | Option | Description | |--------|-------------| | --type | hero, conceptual, typography, metaphor, scene, minimal | | --palette | warm, elegant, cool, dark, earth, vivid, pastel, mono, retro, duotone, macaron | | --rendering | flat-vector, hand-drawn, painterly, digital, pixel, chalk, screen-print | | --style | Preset shorthand (see Style Presets) | | --text | none, title-only, title-subtitle, text-rich | | --mood | subtle, balanced, bold | | --font | clean, handwritten, serif, display | | --aspect | 16:9 (default), 2.35:1, 4:3, 3:2, 1:1, 3:4 | | --lang | Title language (en, zh, ja, etc.) | | --no-title | Alias for --text none | | --quick | Skip confirmation, use auto-selection | | --ref | Reference images for style/composition guidance |