diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index f53bb34..69ffbb3 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -6,7 +6,7 @@ }, "metadata": { "description": "Skills shared by Baoyu for improving daily work efficiency", - "version": "1.19.0" + "version": "1.20.0" }, "plugins": [ { diff --git a/CHANGELOG.md b/CHANGELOG.md index 286bd5e..807b474 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,16 @@ English | [中文](./CHANGELOG.zh.md) +## 1.20.0 - 2026-01-24 + +### Features +- `baoyu-cover-image`: upgrades from Type × Style two-dimension system to **4-dimension system**—adds `--text` dimension (none, title-only, title-subtitle, text-rich) for text density control and `--mood` dimension (subtle, balanced, bold) for emotional intensity. New `--quick` flag skips confirmation and uses auto-selection. + +### Documentation +- `baoyu-cover-image`: adds dimension reference files—`references/dimensions/text.md` (text density levels) and `references/dimensions/mood.md` (mood intensity levels). +- `baoyu-cover-image`: updates base-prompt, first-time-setup, and preferences-schema to support new 4-dimension system with v2 schema. +- `README.md`, `README.zh.md`: updates baoyu-cover-image documentation to reflect new 4-dimension system with `--text`, `--mood`, and `--quick` options. + ## 1.19.0 - 2026-01-24 ### Features diff --git a/CHANGELOG.zh.md b/CHANGELOG.zh.md index c5c2c0c..635d848 100644 --- a/CHANGELOG.zh.md +++ b/CHANGELOG.zh.md @@ -2,6 +2,16 @@ [English](./CHANGELOG.md) | 中文 +## 1.20.0 - 2026-01-24 + +### 新功能 +- `baoyu-cover-image`:从类型 × 风格二维系统升级为**四维系统**——新增 `--text` 维度(none 无文字、title-only 仅标题、title-subtitle 标题+副标题、text-rich 丰富文字)控制文字密度,新增 `--mood` 维度(subtle 低调、balanced 平衡、bold 醒目)控制情感强度。新增 `--quick` 标志跳过确认,直接使用自动选择。 + +### 文档 +- `baoyu-cover-image`:新增维度参考文件——`references/dimensions/text.md`(文字密度级别)和 `references/dimensions/mood.md`(氛围强度级别)。 +- `baoyu-cover-image`:更新 base-prompt、first-time-setup 和 preferences-schema 以支持新的四维系统及 v2 配置模式。 +- `README.md`、`README.zh.md`:更新 baoyu-cover-image 文档,反映新的四维系统及 `--text`、`--mood`、`--quick` 选项。 + ## 1.19.0 - 2026-01-24 ### 新功能 diff --git a/README.md b/README.md index ef2f2bc..0ba0efb 100644 --- a/README.md +++ b/README.md @@ -245,24 +245,31 @@ Generate professional infographics with 20 layout types and 17 visual styles. An #### baoyu-cover-image -Generate cover images for articles with Type × Style two-dimension system. +Generate cover images for articles with 4 dimensions: Type × Style × Text × Mood. ```bash -# Auto-select type and style based on content +# Auto-select all dimensions based on content /baoyu-cover-image path/to/article.md -# Specify type and/or style +# Quick mode: skip confirmation, use auto-selection +/baoyu-cover-image path/to/article.md --quick + +# Specify dimensions /baoyu-cover-image path/to/article.md --type conceptual --style blueprint -/baoyu-cover-image path/to/article.md --style warm +/baoyu-cover-image path/to/article.md --text title-subtitle --mood bold # Specify aspect ratio (default: 2.35:1) /baoyu-cover-image path/to/article.md --aspect 16:9 -# Without title text +# Visual only (no title text) /baoyu-cover-image path/to/article.md --no-title ``` -Available types: `hero`, `conceptual`, `typography`, `metaphor`, `scene`, `minimal` +**Four Dimensions**: +- **Type**: `hero`, `conceptual`, `typography`, `metaphor`, `scene`, `minimal` +- **Style**: 20 built-in styles (see previews below) +- **Text**: `none`, `title-only` (default), `title-subtitle`, `text-rich` +- **Mood**: `subtle`, `balanced` (default), `bold` Available styles: `elegant` (default), `blueprint`, `bold-editorial`, `chalkboard`, `dark-atmospheric`, `editorial-infographic`, `fantasy-animation`, `flat-doodle`, `intuition-machine`, `minimal`, `nature`, `notion`, `pixel-art`, `playful`, `retro`, `sketch-notes`, `vector-illustration`, `vintage`, `warm`, `watercolor` diff --git a/README.zh.md b/README.zh.md index 341db70..d2845a6 100644 --- a/README.zh.md +++ b/README.zh.md @@ -245,24 +245,31 @@ npx skills add jimliu/baoyu-skills #### baoyu-cover-image -为文章生成封面图,支持类型 × 风格二维系统。 +为文章生成封面图,支持四维定制系统:类型 × 风格 × 文字 × 氛围。 ```bash -# 根据内容自动选择类型和风格 +# 根据内容自动选择所有维度 /baoyu-cover-image path/to/article.md -# 指定类型和/或风格 +# 快速模式:跳过确认,使用自动选择 +/baoyu-cover-image path/to/article.md --quick + +# 指定维度 /baoyu-cover-image path/to/article.md --type conceptual --style blueprint -/baoyu-cover-image path/to/article.md --style warm +/baoyu-cover-image path/to/article.md --text title-subtitle --mood bold # 指定宽高比(默认:2.35:1) /baoyu-cover-image path/to/article.md --aspect 16:9 -# 不包含标题文字 +# 纯视觉(不含标题文字) /baoyu-cover-image path/to/article.md --no-title ``` -可用类型:`hero`、`conceptual`、`typography`、`metaphor`、`scene`、`minimal` +**四个维度**: +- **类型 (Type)**:`hero`、`conceptual`、`typography`、`metaphor`、`scene`、`minimal` +- **风格 (Style)**:20 种内置风格(见下方预览) +- **文字 (Text)**:`none`、`title-only`(默认)、`title-subtitle`、`text-rich` +- **氛围 (Mood)**:`subtle`、`balanced`(默认)、`bold` 可用风格:`elegant`(默认)、`blueprint`、`bold-editorial`、`chalkboard`、`dark-atmospheric`、`editorial-infographic`、`fantasy-animation`、`flat-doodle`、`intuition-machine`、`minimal`、`nature`、`notion`、`pixel-art`、`playful`、`retro`、`sketch-notes`、`vector-illustration`、`vintage`、`warm`、`watercolor` diff --git a/skills/baoyu-cover-image/SKILL.md b/skills/baoyu-cover-image/SKILL.md index eb3b8f1..aa40397 100644 --- a/skills/baoyu-cover-image/SKILL.md +++ b/skills/baoyu-cover-image/SKILL.md @@ -1,23 +1,24 @@ --- name: baoyu-cover-image -description: Generates article cover images with 20 hand-drawn styles and auto-style selection. Supports cinematic (2.35:1), widescreen (16:9), and square (1:1) aspects. Use when user asks to "generate cover image", "create article cover", "make cover", or mentions "封面图". +description: Generates article cover images with 4 dimensions (type, style, text, mood) and 20 hand-drawn 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", "make cover", or mentions "封面图". --- # Cover Image Generator -Generate elegant cover images for articles with multiple style options. +Generate elegant cover images for articles with 4-dimensional customization. ## Usage ```bash -# Auto-select style and aspect based on content +# Auto-select all dimensions based on content /baoyu-cover-image path/to/article.md -# Specify style -/baoyu-cover-image article.md --style blueprint +# Quick mode: skip confirmation, use auto-selection +/baoyu-cover-image article.md --quick -# Specify aspect ratio -/baoyu-cover-image article.md --aspect 16:9 +# Specify dimensions +/baoyu-cover-image article.md --type conceptual --style blueprint +/baoyu-cover-image article.md --text title-subtitle --mood bold # Visual only (no title text) /baoyu-cover-image article.md --no-title @@ -27,7 +28,7 @@ Generate elegant cover images for articles with multiple style options. [paste content] # Direct input with options -/baoyu-cover-image --style notion --aspect 1:1 +/baoyu-cover-image --style notion --aspect 1:1 --quick [paste content] ``` @@ -35,20 +36,25 @@ Generate elegant cover images for articles with multiple style options. | Option | Description | |--------|-------------| -| `--type ` | Cover type (see Type Gallery) | +| `--type ` | Cover type: hero, conceptual, typography, metaphor, scene, minimal | | `--style ` | Cover style (see Style Gallery) | +| `--text ` | Text density: none, title-only, title-subtitle, text-rich | +| `--mood ` | Emotional intensity: subtle, balanced, bold | | `--aspect ` | 2.35:1 (default), 16:9, 1:1 | | `--lang ` | Title language (en, zh, ja, etc.) | -| `--no-title` | Visual only, no title text | +| `--no-title` | Alias for `--text none` | +| `--quick` | Skip confirmation, use auto-selection for missing dimensions | -## Two Dimensions +## Four Dimensions -| Dimension | Controls | Examples | -|-----------|----------|----------| -| **Type** | Visual composition, information structure | hero, conceptual, typography, metaphor, scene, minimal | -| **Style** | Visual aesthetics, colors, mood | elegant, blueprint, notion, warm, minimal, watercolor | +| Dimension | Controls | Values | Default | +|-----------|----------|--------|---------| +| **Type** | Visual composition, information structure | hero, conceptual, typography, metaphor, scene, minimal | auto | +| **Style** | Visual aesthetics, colors, technique | 20 built-in styles | auto | +| **Text** | Text density, information hierarchy | none, title-only, title-subtitle, text-rich | title-only | +| **Mood** | Emotional intensity, visual weight | subtle, balanced, bold | balanced | -Type × Style can be freely combined. Example: `--type conceptual --style blueprint` creates technical concept visualization with schematic aesthetics. +Dimensions can be freely combined. Example: `--type conceptual --style blueprint --text title-only --mood subtle` creates a calm technical concept visualization. ## Type Gallery @@ -101,19 +107,6 @@ When `--type` is omitted, select based on content signals: Style definitions: [references/styles/](references/styles/) -## Type × Style Compatibility - -| | elegant | blueprint | notion | warm | minimal | watercolor | bold-editorial | dark-atmospheric | -|---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:| -| hero | ✓✓ | ✓ | ✓ | ✓✓ | ✓ | ✓✓ | ✓✓ | ✓✓ | -| conceptual | ✓✓ | ✓✓ | ✓✓ | ✓ | ✓✓ | ✗ | ✓ | ✓ | -| typography | ✓✓ | ✓ | ✓✓ | ✓ | ✓✓ | ✓ | ✓✓ | ✓✓ | -| metaphor | ✓✓ | ✗ | ✓ | ✓✓ | ✓ | ✓✓ | ✓ | ✓ | -| scene | ✓ | ✗ | ✗ | ✓✓ | ✓ | ✓✓ | ✓ | ✓✓ | -| minimal | ✓✓ | ✓ | ✓✓ | ✓ | ✓✓ | ✓ | ✗ | ✓ | - -✓✓ = highly recommended | ✓ = compatible | ✗ = not recommended - ## Auto Style Selection When `--style` is omitted, select based on content signals: @@ -140,6 +133,89 @@ When `--style` is omitted, select based on content signals: | Lifestyle, travel | `watercolor` | | Business, professional | `elegant` | +## Text Dimension + +| Value | Title | Subtitle | Tags | Use Case | +|-------|:-----:|:--------:|:----:|----------| +| `none` | - | - | - | Pure visual, no text | +| `title-only` | ✓ (≤8字) | - | - | Simple headline (default) | +| `title-subtitle` | ✓ | ✓ (≤15字) | - | Title + supporting context | +| `text-rich` | ✓ | ✓ | ✓ (2-4) | Information-dense | + +Full guide: [references/dimensions/text.md](references/dimensions/text.md) + +## Auto Text Selection + +When `--text` is omitted, select based on content signals: + +| Signals | Text Level | +|---------|------------| +| Visual-only, photography, abstract, art | `none` | +| Article, blog, standard cover | `title-only` | +| Series, tutorial, technical with context | `title-subtitle` | +| Announcement, features, multiple points, infographic | `text-rich` | + +Default: `title-only` + +## Mood Dimension + +| Value | Contrast | Saturation | Weight | Use Case | +|-------|:--------:|:----------:|:------:|----------| +| `subtle` | Low | Muted | Light | Corporate, thought leadership | +| `balanced` | Medium | Normal | Medium | General articles (default) | +| `bold` | High | Vivid | Heavy | Announcements, promotions | + +Full guide: [references/dimensions/mood.md](references/dimensions/mood.md) + +## Auto Mood Selection + +When `--mood` is omitted, select based on content signals: + +| Signals | Mood Level | +|---------|------------| +| Professional, corporate, thought leadership, academic, luxury | `subtle` | +| General, educational, standard, blog, documentation | `balanced` | +| Launch, announcement, promotion, event, gaming, entertainment | `bold` | + +Default: `balanced` + +## Compatibility Matrices + +### Type × Style + +| | elegant | blueprint | notion | warm | minimal | watercolor | bold-editorial | dark-atmospheric | +|---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:| +| hero | ✓✓ | ✓ | ✓ | ✓✓ | ✓ | ✓✓ | ✓✓ | ✓✓ | +| conceptual | ✓✓ | ✓✓ | ✓✓ | ✓ | ✓✓ | ✗ | ✓ | ✓ | +| typography | ✓✓ | ✓ | ✓✓ | ✓ | ✓✓ | ✓ | ✓✓ | ✓✓ | +| metaphor | ✓✓ | ✗ | ✓ | ✓✓ | ✓ | ✓✓ | ✓ | ✓ | +| scene | ✓ | ✗ | ✗ | ✓✓ | ✓ | ✓✓ | ✓ | ✓✓ | +| minimal | ✓✓ | ✓ | ✓✓ | ✓ | ✓✓ | ✓ | ✗ | ✓ | + +### Type × Text + +| | none | title-only | title-subtitle | text-rich | +|---|:---:|:---:|:---:|:---:| +| hero | ✓ | ✓✓ | ✓✓ | ✓ | +| conceptual | ✓✓ | ✓✓ | ✓ | ✓ | +| typography | ✗ | ✓ | ✓✓ | ✓✓ | +| metaphor | ✓✓ | ✓ | ✓ | ✗ | +| scene | ✓✓ | ✓ | ✓ | ✗ | +| minimal | ✓✓ | ✓✓ | ✓ | ✗ | + +### Type × Mood + +| | subtle | balanced | bold | +|---|:---:|:---:|:---:| +| hero | ✓ | ✓✓ | ✓✓ | +| conceptual | ✓✓ | ✓✓ | ✓ | +| typography | ✓ | ✓✓ | ✓✓ | +| metaphor | ✓✓ | ✓✓ | ✓ | +| scene | ✓✓ | ✓✓ | ✓ | +| minimal | ✓✓ | ✓✓ | ✗ | + +✓✓ = highly recommended | ✓ = compatible | ✗ = not recommended + ## File Structure Each session creates an independent directory named by content slug: @@ -175,7 +251,7 @@ Copy and track progress: Cover Image Progress: - [ ] Step 0: Check preferences (EXTEND.md) ⚠️ REQUIRED if not found - [ ] Step 1: Analyze content -- [ ] Step 2: Confirm options (type + style + aspect) ⚠️ REQUIRED +- [ ] Step 2: Confirm options (4 dimensions) ⚠️ REQUIRED unless --quick or all specified - [ ] Step 3: Create prompt - [ ] Step 4: Generate image - [ ] Step 5: Completion report @@ -184,7 +260,9 @@ Cover Image Progress: ### Flow ``` -Input → [Step 0: Preferences/Setup] → Analyze → [Confirm: Type + Style + Aspect] → Prompt → Generate → Complete +Input → [Step 0: Preferences/Setup] → Analyze → [Confirm: 4 Dimensions] → Prompt → Generate → Complete + ↓ + (skip if --quick or all dimensions specified) ``` ### Step 0: Load Preferences (EXTEND.md) ⚠️ @@ -226,7 +304,10 @@ Preferences loaded from [project/user]: • Watermark: [enabled/disabled] [content if enabled] • Type: [preferred_type or "auto"] • Style: [preferred_style or "auto"] +• Text: [preferred_text or "title-only"] +• Mood: [preferred_mood or "balanced"] • Aspect: [default_aspect] +• Quick mode: [enabled/disabled] • Language: [language or "auto"] ``` @@ -284,7 +365,18 @@ options: description: "Square, social media friendly" ``` -**Q5: Save Location** +**Q5: Quick Mode** +```yaml +header: "Quick" +question: "Enable quick mode by default?" +options: + - label: "No (Recommended)" + description: "Confirm dimension choices each time" + - label: "Yes" + description: "Skip confirmation, use auto-selection" +``` + +**Q6: Save Location** ```yaml header: "Save" question: "Where to save preferences?" @@ -299,7 +391,7 @@ options: Full setup details: `references/config/first-time-setup.md` -**EXTEND.md Supports**: Watermark | Preferred type | Preferred style | Default aspect ratio | Custom style definitions | Language preference +**EXTEND.md Supports**: Watermark | Preferred type | Preferred style | Preferred text | Preferred mood | Default aspect ratio | Quick mode | Custom style definitions | Language preference Schema: `references/config/preferences-schema.md` @@ -323,7 +415,30 @@ Read source content, save it if needed, and perform analysis. ### Step 2: Confirm Options ⚠️ -**Purpose**: Validate type, style and aspect ratio. **Do NOT skip.** +**Purpose**: Validate all 4 dimensions. **Skip if `--quick` flag OR all 4 dimensions specified via CLI.** + +**Skip Conditions**: +| Condition | Behavior | +|-----------|----------| +| `--quick` flag | Auto-select missing dimensions, skip to Step 3 | +| All 4 dimensions specified | Use specified values, skip to Step 3 | +| `quick_mode: true` in EXTEND.md | Auto-select missing dimensions, skip to Step 3 | +| Otherwise | Show confirmation (current behavior) | + +**Quick Mode Output** (when skipping confirmation): + +``` +Quick Mode: Auto-selected dimensions +• Type: [type] ([reason]) +• Style: [style] ([reason]) +• Text: [text] ([reason]) +• Mood: [mood] ([reason]) +• Aspect: [aspect] + +Generating... +``` + +**Confirmation Flow** (when NOT skipping): **Language**: Auto-determined (user's input language > saved preference > source language). No need to ask. @@ -364,7 +479,41 @@ options: description: "[reason]" ``` -**Question 3: Aspect Ratio** (if not specified via `--aspect`) +**Question 3: Text** (if not specified via `--text`) +- Based on selected Type, show compatible text levels (✓✓ first from compatibility matrix) + +```yaml +header: "Text" +question: "Text density level?" +multiSelect: false +options: + - label: "title-only (Recommended)" + description: "Simple headline, ≤8 characters" + - label: "none" + description: "Pure visual, no text elements" + - label: "title-subtitle" + description: "Title + supporting context" + - label: "text-rich" + description: "Title + subtitle + keyword tags" +``` + +**Question 4: Mood** (if not specified via `--mood`) +- Based on content analysis, show recommended mood + +```yaml +header: "Mood" +question: "Emotional intensity?" +multiSelect: false +options: + - label: "balanced (Recommended)" + description: "Medium contrast and saturation, versatile" + - label: "subtle" + description: "Low contrast, muted colors, calm" + - label: "bold" + description: "High contrast, vivid colors, dynamic" +``` + +**Question 5: Aspect Ratio** (if not specified via `--aspect`) ```yaml header: "Aspect" @@ -379,35 +528,61 @@ options: description: "Square, social media friendly" ``` -**After response**: Proceed to Step 3 with confirmed type + style + aspect ratio. +**After response**: Proceed to Step 3 with confirmed dimensions. ### Step 3: Create Prompt Save to `prompts/cover.md`: ```markdown -Cover theme: [2-3 words] +# Content Context +Article title: [full original title from source] +Content summary: [2-3 sentence summary of key points and themes] +Keywords: [5-8 key terms extracted from content] + +# Visual Design +Cover theme: [2-3 words visual interpretation] Type: [confirmed type] Style: [confirmed style] +Text level: [confirmed text level] +Mood: [confirmed mood] Aspect ratio: [confirmed ratio] -Title text: [max 8 chars, or "none" if --no-title] Language: [confirmed language] +# Text Elements +[Based on text level:] +- none: "No text elements" +- title-only: "Title: [max 8 chars headline]" +- title-subtitle: "Title: [headline] / Subtitle: [max 15 chars context]" +- text-rich: "Title: [headline] / Subtitle: [context] / Tags: [2-4 keywords]" + +# Mood Application +[Based on mood level:] +- subtle: "Use low contrast, muted colors, light visual weight, calm aesthetic" +- balanced: "Use medium contrast, normal saturation, balanced visual weight" +- bold: "Use high contrast, vivid saturated colors, heavy visual weight, dynamic energy" + +# Composition Type composition: - [Type-specific layout and structure] Visual composition: -- Main visual: [type + style appropriate metaphor] +- Main visual: [metaphor derived from content meaning] - Layout: [positioning based on type and aspect ratio] -- Decorative: [style elements] +- Decorative: [style elements that reinforce content theme] -Color scheme: [primary, background, accent from style] +Color scheme: [primary, background, accent from style, adjusted by mood] Type notes: [key characteristics from type definition] Style notes: [key characteristics from style definition] [Watermark section if enabled] ``` +**Content-Driven Design**: +- Article title and summary inform the visual metaphor choice +- Keywords guide decorative elements and symbols +- The skill controls visual style; the content drives meaning + **Type-Specific Composition**: | Type | Composition Guidelines | @@ -419,7 +594,7 @@ Style notes: [key characteristics from style definition] | `scene` | Atmospheric environment, narrative elements, mood-setting lighting and colors | | `minimal` | Single focal element, generous whitespace (60%+), essential shapes only | -**Title guidelines** (if included): +**Title guidelines** (when text level includes title): - Max 8 characters, punchy headline - Use hooks: numbers, questions, contrasts - Match confirmed language @@ -435,6 +610,10 @@ Reference: `references/config/watermark-guide.md` ### Step 4: Generate Image +**Backup Existing Cover** (if regenerating): +If `cover.png` already exists in the output directory: +- Rename to `cover-backup-YYYYMMDD-HHMMSS.png` + **Image Generation Skill Selection**: 1. Check available image generation skills 2. If multiple skills available, ask user preference @@ -453,8 +632,10 @@ Cover Generated! Topic: [topic] Type: [type name] Style: [style name] +Text: [text level] +Mood: [mood level] Aspect: [ratio] -Title: [title or "visual only"] +Title: [title text or "visual only"] Language: [lang] Watermark: [enabled/disabled] Location: [directory path] @@ -463,29 +644,39 @@ Files: ✓ source-{slug}.{ext} ✓ prompts/cover.md ✓ cover.png +[✓ cover-backup-{timestamp}.png (if regenerated)] ``` ## Image Modification | Action | Steps | |--------|-------| -| **Regenerate** | Update prompt → Regenerate with same settings | -| **Change type** | Confirm new type → Update prompt → Regenerate | -| **Change style** | Confirm new style → Update prompt → Regenerate | -| **Change aspect** | Confirm new aspect → Update prompt → Regenerate | +| **Regenerate** | Backup existing → Update prompt → Regenerate with same settings | +| **Change type** | Backup existing → Confirm new type → Update prompt → Regenerate | +| **Change style** | Backup existing → Confirm new style → Update prompt → Regenerate | +| **Change text** | Backup existing → Confirm new text level → Update prompt → Regenerate | +| **Change mood** | Backup existing → Confirm new mood → Update prompt → Regenerate | +| **Change aspect** | Backup existing → Confirm new aspect → Update prompt → Regenerate | + +All modifications automatically backup the existing `cover.png` before regenerating. ## Notes - Cover must be readable at small preview sizes - Visual metaphors > literal representations - Title: max 8 chars, readable, impactful -- **Two confirmation points**: Step 0 (first-time setup if no EXTEND.md) + Step 2 (options) - do NOT skip +- **Two confirmation points**: Step 0 (first-time setup if no EXTEND.md) + Step 2 (options) - can skip Step 2 with `--quick` - Use confirmed language for title text - Maintain watermark consistency if enabled -- Check Type × Style compatibility matrix when selecting combinations +- Check compatibility matrices when selecting combinations +- `--no-title` is preserved as alias for `--text none` ## References +**Dimensions**: +- `references/dimensions/text.md` - Text density dimension +- `references/dimensions/mood.md` - Mood intensity dimension + **Styles**: `references/styles/.md` - Style definitions **Config**: diff --git a/skills/baoyu-cover-image/references/base-prompt.md b/skills/baoyu-cover-image/references/base-prompt.md index af7cc82..da51d81 100644 --- a/skills/baoyu-cover-image/references/base-prompt.md +++ b/skills/baoyu-cover-image/references/base-prompt.md @@ -13,14 +13,49 @@ Create a WeChat article cover image following these guidelines: - Ample whitespace, highlight core message, avoid cluttered layouts - Main visual elements centered or slightly left (leave right side for title area if title included) +## Four Dimensions + +### Type (Visual Composition) +- `hero`: Large focal visual (60-70% area), dramatic composition +- `conceptual`: Abstract shapes, information hierarchy, clean zones +- `typography`: Title as primary element (40%+ area), minimal visuals +- `metaphor`: Concrete object representing abstract idea, symbolic elements +- `scene`: Atmospheric environment, narrative elements, mood lighting +- `minimal`: Single focal element, generous whitespace (60%+) + +### Style (Visual Aesthetics) +Apply the specified style's color palette, visual elements, and typography characteristics. + +### Text (Density Level) +- `none`: No text elements, full visual area +- `title-only`: Single headline (≤8 characters), 85% visual area +- `title-subtitle`: Title + context (≤15 chars), 75% visual area +- `text-rich`: Title + subtitle + 2-4 keyword tags, 60% visual area + +### Mood (Emotional Intensity) +- `subtle`: Low contrast, muted/desaturated colors, light visual weight, calm aesthetic +- `balanced`: Medium contrast, normal saturation, balanced visual weight +- `bold`: High contrast, vivid/saturated colors, heavy visual weight, dynamic energy + ## Text Style (When Title Included) - **ALL text MUST be hand-drawn style** - Title text: Large, eye-catching, max 8 characters -- May include 1 line of subtitle or keyword tags +- Subtitle: Secondary, max 15 characters (if title-subtitle or text-rich) +- Tags: 2-4 keyword badges (if text-rich) - Font style harmonizes with illustration style - **DO NOT use realistic or computer-generated fonts** +## Mood Application + +Apply mood adjustments to the base style: + +| Mood | Contrast | Saturation | Weight | +|------|----------|------------|--------| +| subtle | Reduce 20-30% | Desaturate 20-30% | Lighter strokes/fills | +| balanced | Standard | Standard | Standard | +| bold | Increase 20-30% | Increase 20-30% | Heavier strokes/fills | + ## Language - Use the same language as the content provided below for any text elements diff --git a/skills/baoyu-cover-image/references/config/first-time-setup.md b/skills/baoyu-cover-image/references/config/first-time-setup.md index d33ff03..48e35e3 100644 --- a/skills/baoyu-cover-image/references/config/first-time-setup.md +++ b/skills/baoyu-cover-image/references/config/first-time-setup.md @@ -93,7 +93,19 @@ options: description: "Square, social media friendly" ``` -### Question 5: Save Location +### Question 5: Quick Mode + +``` +header: "Quick" +question: "Enable quick mode by default?" +options: + - label: "No (Recommended)" + description: "Confirm dimension choices each time" + - label: "Yes" + description: "Skip confirmation, use auto-selection" +``` + +### Question 6: Save Location ``` header: "Save" @@ -123,7 +135,7 @@ options: ```yaml --- -version: 1 +version: 2 watermark: enabled: [true/false] content: "[user input or empty]" @@ -131,12 +143,25 @@ watermark: opacity: 0.7 preferred_type: [selected type or null] preferred_style: [selected style or null] +preferred_text: title-only +preferred_mood: balanced default_aspect: [2.35:1/16:9/1:1] +quick_mode: [true/false] language: null custom_styles: [] --- ``` +## New Fields in v2 + +| Field | Default | Description | +|-------|---------|-------------| +| `preferred_text` | title-only | Text density (none, title-only, title-subtitle, text-rich) | +| `preferred_mood` | balanced | Mood intensity (subtle, balanced, bold) | +| `quick_mode` | false | Skip confirmation step when true | + +Note: Text and Mood preferences use sensible defaults (title-only, balanced) and don't require setup questions. Users can modify these in EXTEND.md directly. + ## Modifying Preferences Later Users can edit EXTEND.md directly or run setup again: diff --git a/skills/baoyu-cover-image/references/config/preferences-schema.md b/skills/baoyu-cover-image/references/config/preferences-schema.md index 2e391ff..fc17ebc 100644 --- a/skills/baoyu-cover-image/references/config/preferences-schema.md +++ b/skills/baoyu-cover-image/references/config/preferences-schema.md @@ -9,7 +9,7 @@ description: EXTEND.md YAML schema for baoyu-cover-image user preferences ```yaml --- -version: 1 +version: 2 watermark: enabled: false @@ -21,8 +21,14 @@ preferred_type: null # hero|conceptual|typography|metaphor|scene|minimal or preferred_style: null # Built-in style name or null for auto-select +preferred_text: title-only # none|title-only|title-subtitle|text-rich + +preferred_mood: balanced # subtle|balanced|bold + default_aspect: "2.35:1" # 2.35:1|16:9|1:1 +quick_mode: false # Skip confirmation when true + language: null # zh|en|ja|ko|auto (null = auto-detect) custom_styles: @@ -42,14 +48,17 @@ custom_styles: | Field | Type | Default | Description | |-------|------|---------|-------------| -| `version` | int | 1 | Schema version | +| `version` | int | 2 | Schema version | | `watermark.enabled` | bool | false | Enable watermark | | `watermark.content` | string | "" | Watermark text (@username or custom) | | `watermark.position` | enum | bottom-right | Position on image | | `watermark.opacity` | float | 0.7 | Transparency (0.1-1.0) | | `preferred_type` | string | null | Type name or null for auto | | `preferred_style` | string | null | Style name or null for auto | +| `preferred_text` | string | title-only | Text density level | +| `preferred_mood` | string | balanced | Mood intensity level | | `default_aspect` | string | "2.35:1" | Default aspect ratio | +| `quick_mode` | bool | false | Skip confirmation step | | `language` | string | null | Output language (null = auto-detect) | | `custom_styles` | array | [] | User-defined styles | @@ -64,6 +73,23 @@ custom_styles: | `scene` | Atmospheric scene, narrative feel | | `minimal` | Minimalist composition, generous whitespace | +## Text Options + +| Value | Description | +|-------|-------------| +| `none` | Pure visual, no text elements | +| `title-only` | Single headline (≤8 characters) | +| `title-subtitle` | Title + subtitle (≤15 characters) | +| `text-rich` | Title + subtitle + keyword tags (2-4) | + +## Mood Options + +| Value | Description | +|-------|-------------| +| `subtle` | Low contrast, muted colors, calm aesthetic | +| `balanced` | Medium contrast, normal saturation, versatile | +| `bold` | High contrast, vivid colors, dynamic energy | + ## Position Options | Value | Description | @@ -98,12 +124,15 @@ custom_styles: ```yaml --- -version: 1 +version: 2 watermark: enabled: true content: "@myhandle" preferred_type: null preferred_style: elegant +preferred_text: title-only +preferred_mood: balanced +quick_mode: false --- ``` @@ -111,7 +140,7 @@ preferred_style: elegant ```yaml --- -version: 1 +version: 2 watermark: enabled: true content: "myblog.com" @@ -122,8 +151,14 @@ preferred_type: conceptual preferred_style: blueprint +preferred_text: title-subtitle + +preferred_mood: subtle + default_aspect: "16:9" +quick_mode: true + language: en custom_styles: @@ -138,3 +173,16 @@ custom_styles: best_for: "SaaS, enterprise, technical" --- ``` + +## Migration from v1 + +When loading v1 schema, auto-upgrade: + +| v1 Field | v2 Field | Default Value | +|----------|----------|---------------| +| (missing) | `version` | 2 | +| (missing) | `preferred_text` | title-only | +| (missing) | `preferred_mood` | balanced | +| (missing) | `quick_mode` | false | + +v1 `--no-title` flag maps to `preferred_text: none`. diff --git a/skills/baoyu-cover-image/references/dimensions/mood.md b/skills/baoyu-cover-image/references/dimensions/mood.md new file mode 100644 index 0000000..17c8d5b --- /dev/null +++ b/skills/baoyu-cover-image/references/dimensions/mood.md @@ -0,0 +1,125 @@ +--- +name: mood-dimension +description: Emotional intensity dimension for cover images +--- + +# Mood Dimension + +Controls emotional intensity and visual weight of cover images. + +## Values + +| Value | Contrast | Saturation | Weight | Energy | +|-------|:--------:|:----------:|:------:|:------:| +| `subtle` | Low | Muted | Light | Calm | +| `balanced` | Medium | Normal | Medium | Moderate | +| `bold` | High | Vivid | Heavy | Dynamic | + +## Detail + +### subtle + +Calm, understated visual presence. + +**Characteristics**: +- Low contrast between elements +- Muted, desaturated colors +- Light visual weight +- Gentle, refined aesthetic +- Soft edges and transitions + +**Use Cases**: +- Thought leadership content +- Professional/corporate communications +- Meditation, wellness topics +- Academic or scholarly articles +- Luxury brand aesthetics + +**Color Guidance**: +- Pastels, earth tones, neutrals +- Low saturation (30-50%) +- Soft gradients +- Minimal color variety (2-3 colors) + +### balanced + +Versatile, harmonious visual presence. + +**Characteristics**: +- Medium contrast +- Natural saturation levels +- Balanced visual weight +- Clear but not aggressive +- Standard aesthetic approach + +**Use Cases**: +- General articles (default) +- Most blog content +- Educational material +- Product documentation +- News and updates + +**Color Guidance**: +- Standard saturation (50-70%) +- Complementary color schemes +- Clear foreground/background separation +- Moderate color variety (3-4 colors) + +### bold + +Dynamic, high-impact visual presence. + +**Characteristics**: +- High contrast between elements +- Vivid, saturated colors +- Heavy visual weight +- Energetic, attention-grabbing +- Sharp edges and strong shapes + +**Use Cases**: +- Product launches +- Promotional announcements +- Event marketing +- Call-to-action content +- Entertainment/gaming topics + +**Color Guidance**: +- High saturation (70-100%) +- Vibrant, primary colors +- Strong contrast ratios +- Dynamic color combinations (4+ colors) + +## Type Compatibility + +| Type | subtle | balanced | bold | +|------|:------:|:--------:|:----:| +| hero | ✓ | ✓✓ | ✓✓ | +| conceptual | ✓✓ | ✓✓ | ✓ | +| typography | ✓ | ✓✓ | ✓✓ | +| metaphor | ✓✓ | ✓✓ | ✓ | +| scene | ✓✓ | ✓✓ | ✓ | +| minimal | ✓✓ | ✓✓ | ✗ | + +✓✓ = highly recommended | ✓ = compatible | ✗ = not recommended + +## Style Interaction + +Mood modifies the base style characteristics: + +| Style Category | subtle | balanced | bold | +|----------------|--------|----------|------| +| Technical (blueprint, notion) | Lighter lines, softer colors | Standard rendering | Stronger contrast, sharper edges | +| Artistic (watercolor, sketch-notes) | More whitespace, lighter strokes | Standard rendering | Deeper colors, heavier strokes | +| Editorial (bold-editorial, dark-atmospheric) | Reduced contrast, softer tones | Standard rendering | Maximum impact, vivid colors | + +## Auto Selection + +When `--mood` is omitted, select based on signals: + +| Signals | Mood Level | +|---------|------------| +| Professional, corporate, thought leadership, academic, luxury | `subtle` | +| General, educational, standard, blog, documentation | `balanced` | +| Launch, announcement, promotion, event, gaming, entertainment | `bold` | + +Default: `balanced` diff --git a/skills/baoyu-cover-image/references/dimensions/text.md b/skills/baoyu-cover-image/references/dimensions/text.md new file mode 100644 index 0000000..4675707 --- /dev/null +++ b/skills/baoyu-cover-image/references/dimensions/text.md @@ -0,0 +1,122 @@ +--- +name: text-dimension +description: Text density dimension for cover images +--- + +# Text Dimension + +Controls text density and information hierarchy on cover images. + +## Values + +| Value | Title | Subtitle | Tags | Visual Area | +|-------|:-----:|:--------:|:----:|:-----------:| +| `none` | - | - | - | 100% | +| `title-only` | ✓ (≤8字) | - | - | 85% | +| `title-subtitle` | ✓ | ✓ (≤15字) | - | 75% | +| `text-rich` | ✓ | ✓ | ✓ (2-4) | 60% | + +## Detail + +### none + +Pure visual cover with no text elements. + +**Use Cases**: +- Photography-focused covers +- Abstract art pieces +- Visual-only social sharing +- When title added externally + +**Composition**: +- Full visual area available +- No reserved text zones +- Emphasis on visual metaphor + +### title-only + +Single headline, maximum impact. + +**Use Cases**: +- Most article covers (default) +- Clear single message +- Strong brand recognition + +**Composition**: +- Title: ≤8 characters, prominent +- Reserved zone: top or bottom 15% +- Visual supports title message + +**Title Guidelines**: +- Punchy, action-oriented +- Numbers, questions, contrasts work well +- Match content language + +### title-subtitle + +Title with supporting context. + +**Use Cases**: +- Technical articles needing clarification +- Series with episode/part info +- Content with dual messages + +**Composition**: +- Title: ≤8 characters, primary +- Subtitle: ≤15 characters, secondary +- Reserved zone: 25% +- Clear hierarchy between title/subtitle + +**Subtitle Guidelines**: +- Clarify or contextualize title +- Can include series name, author, date +- Smaller, less prominent than title + +### text-rich + +Information-dense cover with multiple text elements. + +**Use Cases**: +- Infographic-style covers +- Event announcements with details +- Promotional material with features +- Content with multiple key points + +**Composition**: +- Title: primary focus +- Subtitle: supporting info +- Tags: 2-4 keyword labels +- Reserved zone: 40% +- Clear visual hierarchy + +**Tag Guidelines**: +- 2-4 tags maximum +- Short keywords (1-2 words each) +- Positioned as badges/labels +- Can highlight: category, date, author, key features + +## Type Compatibility + +| Type | none | title-only | title-subtitle | text-rich | +|------|:----:|:----------:|:--------------:|:---------:| +| hero | ✓ | ✓✓ | ✓✓ | ✓ | +| conceptual | ✓✓ | ✓✓ | ✓ | ✓ | +| typography | ✗ | ✓ | ✓✓ | ✓✓ | +| metaphor | ✓✓ | ✓ | ✓ | ✗ | +| scene | ✓✓ | ✓ | ✓ | ✗ | +| minimal | ✓✓ | ✓✓ | ✓ | ✗ | + +✓✓ = highly recommended | ✓ = compatible | ✗ = not recommended + +## Auto Selection + +When `--text` is omitted, select based on signals: + +| Signals | Text Level | +|---------|------------| +| Visual-only, photography, abstract, art | `none` | +| Article, blog, standard cover | `title-only` | +| Series, tutorial, technical with context | `title-subtitle` | +| Announcement, features, multiple points, infographic | `text-rich` | + +Default: `title-only`