Compare commits

..

5 Commits

55 changed files with 707 additions and 422 deletions
+8 -8
View File
@@ -6,7 +6,7 @@
},
"metadata": {
"description": "Skills shared by Baoyu for improving daily work efficiency",
"version": "0.3.0"
"version": "0.4.0"
},
"plugins": [
{
@@ -15,13 +15,13 @@
"source": "./",
"strict": false,
"skills": [
"./skills/gemini-web",
"./skills/xhs-images",
"./skills/post-to-x",
"./skills/post-to-wechat",
"./skills/article-illustrator",
"./skills/cover-image",
"./skills/slide-deck"
"./skills/baoyu-gemini-web",
"./skills/baoyu-xhs-images",
"./skills/baoyu-post-to-x",
"./skills/baoyu-post-to-wechat",
"./skills/baoyu-article-illustrator",
"./skills/baoyu-cover-image",
"./skills/baoyu-slide-deck"
]
}
]
+1
View File
@@ -139,3 +139,4 @@ vite.config.js.timestamp-*
vite.config.ts.timestamp-*
tests-data/
.DS_Store
+20 -15
View File
@@ -10,12 +10,13 @@ Claude Code marketplace plugin providing AI-powered content generation skills. S
```
skills/
├── gemini-web/ # Core: Gemini API wrapper (text + image gen)
├── xhs-images/ # Xiaohongshu infographic series (1-10 images)
├── cover-image/ # Article cover images (2.35:1 aspect)
├── slide-deck/ # Presentation slides with outlines
├── article-illustrator/ # Smart illustration placement
── post-to-x/ # X/Twitter posting automation
├── baoyu-gemini-web/ # Core: Gemini API wrapper (text + image gen)
├── baoyu-xhs-images/ # Xiaohongshu infographic series (1-10 images)
├── baoyu-cover-image/ # Article cover images (2.35:1 aspect)
├── baoyu-slide-deck/ # Presentation slides with outlines
├── baoyu-article-illustrator/ # Smart illustration placement
── baoyu-post-to-x/ # X/Twitter posting automation
└── baoyu-post-to-wechat/ # WeChat Official Account posting
```
Each skill contains:
@@ -34,24 +35,24 @@ npx -y bun skills/<skill>/scripts/main.ts [options]
Examples:
```bash
# Text generation
npx -y bun skills/gemini-web/scripts/main.ts "Hello"
npx -y bun skills/baoyu-gemini-web/scripts/main.ts "Hello"
# Image generation
npx -y bun skills/gemini-web/scripts/main.ts --prompt "A cat" --image cat.png
npx -y bun skills/baoyu-gemini-web/scripts/main.ts --prompt "A cat" --image cat.png
# From prompt files
npx -y bun skills/gemini-web/scripts/main.ts --promptfiles system.md content.md --image out.png
npx -y bun skills/baoyu-gemini-web/scripts/main.ts --promptfiles system.md content.md --image out.png
```
## Key Dependencies
- **Bun**: TypeScript runtime (via `npx -y bun`)
- **Chrome**: Required for `gemini-web` auth and `post-to-x` automation
- **Chrome**: Required for `baoyu-gemini-web` auth and `baoyu-post-to-x` automation
- **No npm packages**: Self-contained TypeScript, no external dependencies
## Authentication
`gemini-web` uses browser cookies for Google auth:
`baoyu-gemini-web` uses browser cookies for Google auth:
- First run opens Chrome for login
- Cookies cached in data directory
- Force refresh: `--login` flag
@@ -62,10 +63,14 @@ npx -y bun skills/gemini-web/scripts/main.ts --promptfiles system.md content.md
## Adding New Skills
1. Create `skills/<name>/SKILL.md` with YAML front matter
2. Add TypeScript in `skills/<name>/scripts/`
3. Add prompt templates in `skills/<name>/prompts/` if needed
4. Register in `marketplace.json` plugins[0].skills array
**IMPORTANT**: All skills MUST use `baoyu-` prefix to avoid conflicts when users import this plugin.
1. Create `skills/baoyu-<name>/SKILL.md` with YAML front matter
- Directory name: `baoyu-<name>`
- SKILL.md `name` field: `baoyu-<name>`
2. Add TypeScript in `skills/baoyu-<name>/scripts/`
3. Add prompt templates in `skills/baoyu-<name>/prompts/` if needed
4. Register in `marketplace.json` plugins[0].skills array as `./skills/baoyu-<name>`
## Code Style
+24 -3
View File
@@ -56,16 +56,37 @@ Interacts with Gemini Web to generate text and images.
### xhs-images
Xiaohongshu (RedNote) infographic series generator. Breaks down content into 1-10 cartoon-style infographics.
Xiaohongshu (RedNote) infographic series generator. Breaks down content into 1-10 cartoon-style infographics with **Style × Layout** two-dimensional system.
```bash
# Specify article path
# Auto-select style and layout
/xhs-images posts/ai-future/article.md
# Specify style
/xhs-images posts/ai-future/article.md --style notion
# Specify layout
/xhs-images posts/ai-future/article.md --layout dense
# Combine style and layout
/xhs-images posts/ai-future/article.md --style tech --layout list
# Direct content input
/xhs-images 今日星座运势
```
**Styles** (visual aesthetics): `cute` (default), `fresh`, `tech`, `warm`, `bold`, `minimal`, `retro`, `pop`, `notion`
**Layouts** (information density):
| Layout | Density | Best for |
|--------|---------|----------|
| `sparse` | 1-2 pts | Covers, quotes |
| `balanced` | 3-4 pts | Regular content |
| `dense` | 5-8 pts | Knowledge cards, cheat sheets |
| `list` | 4-7 items | Checklists, rankings |
| `comparison` | 2 sides | Before/after, pros/cons |
| `flow` | 3-6 steps | Processes, timelines |
### cover-image
Generate hand-drawn style cover images for articles with multiple style options.
@@ -103,7 +124,7 @@ Generate professional slide deck images from content. Creates comprehensive outl
/slide-deck path/to/article.md --lang zh
```
Available styles: `editorial` (default), `corporate`, `technical`, `playful`, `minimal`, `storytelling`, `warm`, `retro-flat`
Available styles: `editorial` (default), `corporate`, `technical`, `playful`, `minimal`, `storytelling`, `warm`, `retro-flat`, `notion`
### post-to-wechat
+24 -3
View File
@@ -56,16 +56,37 @@
### xhs-images
小红书信息图系列生成器。将内容拆解为 1-10 张卡通风格信息图。
小红书信息图系列生成器。将内容拆解为 1-10 张卡通风格信息图,支持 **风格 × 布局** 二维系统
```bash
# 指定文章路径
# 自动选择风格和布局
/xhs-images posts/ai-future/article.md
# 指定风格
/xhs-images posts/ai-future/article.md --style notion
# 指定布局
/xhs-images posts/ai-future/article.md --layout dense
# 组合风格和布局
/xhs-images posts/ai-future/article.md --style tech --layout list
# 直接输入内容
/xhs-images 今日星座运势
```
**风格**(视觉美学):`cute`(默认)、`fresh``tech``warm``bold``minimal``retro``pop``notion`
**布局**(信息密度):
| 布局 | 密度 | 适用场景 |
|------|------|----------|
| `sparse` | 1-2 点 | 封面、金句 |
| `balanced` | 3-4 点 | 常规内容 |
| `dense` | 5-8 点 | 知识卡片、干货总结 |
| `list` | 4-7 项 | 清单、排行 |
| `comparison` | 双栏 | 对比、优劣 |
| `flow` | 3-6 步 | 流程、时间线 |
### cover-image
为文章生成手绘风格封面图,支持多种风格选项。
@@ -103,7 +124,7 @@
/slide-deck path/to/article.md --lang zh
```
可用风格:`editorial`(默认)、`corporate``technical``playful``minimal``storytelling``warm``retro-flat`
可用风格:`editorial`(默认)、`corporate``technical``playful``minimal``storytelling``warm``retro-flat``notion`
### post-to-wechat
@@ -1,5 +1,5 @@
---
name: article-illustrator
name: baoyu-article-illustrator
description: Smart article illustration skill. Analyzes article content and generates illustrations at positions requiring visual aids with multiple style options. Use when user asks to "add illustrations to article", "generate images for article", or "illustrate article".
---
@@ -11,15 +11,15 @@ Analyze article structure and content, identify positions requiring visual aids,
```bash
# Auto-select style based on content
/article-illustrator path/to/article.md
/baoyu-article-illustrator path/to/article.md
# Specify a style
/article-illustrator path/to/article.md --style tech
/article-illustrator path/to/article.md --style warm
/article-illustrator path/to/article.md --style minimal
/baoyu-article-illustrator path/to/article.md --style tech
/baoyu-article-illustrator path/to/article.md --style warm
/baoyu-article-illustrator path/to/article.md --style minimal
# Combine with other options
/article-illustrator path/to/article.md --style playful
/baoyu-article-illustrator path/to/article.md --style playful
```
## Options
@@ -30,7 +30,7 @@ Analyze article structure and content, identify positions requiring visual aids,
## Style Gallery
### 1. `elegant` (Default)
### 1. `elegant`
Refined, sophisticated, professional
- **Colors**: Soft coral, muted teal, dusty rose, cream background
- **Elements**: Delicate line work, subtle icons, balanced composition
@@ -78,6 +78,12 @@ Raw, authentic, notebook-style
- **Elements**: Rough lines, sketch marks, handwritten notes, arrows
- **Best for**: Ideas in progress, brainstorming, thought processes
### 9. `notion` (Default)
Minimalist hand-drawn line art, intellectual
- **Colors**: Black outlines, white background, 1-2 pastel accents
- **Elements**: Simple line doodles, geometric shapes, hand-drawn wobble, maximum whitespace
- **Best for**: Knowledge sharing, concept explanations, SaaS content, productivity articles
## Auto Style Selection
When no `--style` is specified, analyze content to select the best style:
@@ -92,6 +98,7 @@ When no `--style` is specified, analyze content to select the best style:
| Nature, eco, wellness, health, organic, green | `nature` |
| Idea, thought, concept, draft, brainstorm | `sketch` |
| Business, professional, strategy, analysis | `elegant` |
| Knowledge, concept, productivity, SaaS, notion | `notion` |
## File Management
@@ -194,17 +201,16 @@ Style notes: [specific style characteristics]
### Step 5: Generate Images
For each illustration, call:
**Image Generation Skill Selection**:
1. Check available image generation skills
2. If multiple skills available, ask user to choose
```bash
/gemini-web --promptfiles [SKILL_ROOT]/skills/article-illustrator/prompts/system.md [ARTICLE_DIR]/imgs/prompts/illustration-[slug].md --image [ARTICLE_DIR]/imgs/illustration-[slug].png
```
Generation flow:
1. Generate images sequentially
2. After each image, output progress: "Generated X/N"
3. On failure, auto-retry once
4. If retry fails, log reason, continue to next
**Generation Flow**:
1. Call selected image generation skill with prompt file and output path
2. Generate images sequentially
3. After each image, output progress: "Generated X/N"
4. On failure, auto-retry once
5. If retry fails, log reason, continue to next
### Step 6: Update Article
@@ -304,6 +310,15 @@ Accents: Single highlight color (blue, red, or yellow)
Elements: Rough sketch lines, arrows, handwritten labels, crossed-out marks
```
### notion
```
Colors: Black (#1A1A1A), dark gray (#4A4A4A)
Background: Pure white (#FFFFFF), off-white (#FAFAFA)
Accents: Pastel blue (#A8D4F0), pastel yellow (#F9E79F), pastel pink (#FADBD8)
Elements: Simple line doodles, hand-drawn wobble effect, geometric shapes, stick figures, maximum whitespace
Typography: Clean hand-drawn lettering, simple sans-serif labels
```
## Notes
- Illustrations serve the content: supplement information, visualize concepts
@@ -1,5 +1,5 @@
---
name: cover-image
name: baoyu-cover-image
description: Generate elegant cover images for articles. Analyzes content and creates eye-catching hand-drawn style cover images with multiple style options. Use when user asks to "generate cover image", "create article cover", or "make a cover for article".
---
@@ -11,25 +11,25 @@ Generate hand-drawn style cover images for articles with multiple style options.
```bash
# From markdown file (auto-select style based on content)
/cover-image path/to/article.md
/baoyu-cover-image path/to/article.md
# Specify a style
/cover-image path/to/article.md --style tech
/cover-image path/to/article.md --style warm
/cover-image path/to/article.md --style bold
/baoyu-cover-image path/to/article.md --style tech
/baoyu-cover-image path/to/article.md --style warm
/baoyu-cover-image path/to/article.md --style bold
# Without title text
/cover-image path/to/article.md --no-title
/baoyu-cover-image path/to/article.md --no-title
# Combine options
/cover-image path/to/article.md --style minimal --no-title
/baoyu-cover-image path/to/article.md --style minimal --no-title
# From direct text input
/cover-image
/baoyu-cover-image
[paste content or describe the topic]
# Direct input with style
/cover-image --style playful
/baoyu-cover-image --style playful
[paste content]
```
@@ -191,11 +191,12 @@ Note: No title text, pure visual illustration only.
### Step 5: Generate Image
Call gemini-web to generate the cover:
**Image Generation Skill Selection**:
1. Check available image generation skills
2. If multiple skills available, ask user to choose
```bash
/gemini-web --promptfiles [SKILL_ROOT]/skills/cover-image/prompts/system.md [PROMPT_PATH] --image [OUTPUT_PATH]
```
**Generation**:
Call selected image generation skill with prompt file and output path.
### Step 6: Output Summary
@@ -1,5 +1,5 @@
---
name: gemini-web
name: baoyu-gemini-web
description: Interacts with Gemini Web to generate text and images. Use when the user needs AI-generated content via Gemini, including text responses and image generation.
---
@@ -100,7 +100,7 @@ export async function loadGeminiCookies(
}
log?.(
'[gemini-web] Missing Gemini auth cookies. Run `npx -y bun skills/gemini-web/scripts/main.ts --login` to sign in and refresh cookies.',
'[gemini-web] Missing Gemini auth cookies. Run `npx -y bun skills/baoyu-gemini-web/scripts/main.ts --login` to sign in and refresh cookies.',
);
return merged;
}
@@ -124,7 +124,7 @@ export function createGeminiWebExecutor(
const cookieMap = await loadGeminiCookies(runOptions.config, log);
if (!hasRequiredGeminiCookies(cookieMap)) {
throw new Error(
'Gemini browser mode requires auth cookies (missing __Secure-1PSID/__Secure-1PSIDTS). Run `npx -y bun skills/gemini-web/scripts/main.ts --login` to sign in and save cookies.',
'Gemini browser mode requires auth cookies (missing __Secure-1PSID/__Secure-1PSIDTS). Run `npx -y bun skills/baoyu-gemini-web/scripts/main.ts --login` to sign in and save cookies.',
);
}
@@ -16,10 +16,10 @@ function printUsage(exitCode = 0): never {
const profileDir = resolveGeminiWebChromeProfileDir();
console.log(`Usage:
npx -y bun skills/gemini-web/scripts/main.ts --prompt "Hello"
npx -y bun skills/gemini-web/scripts/main.ts "Hello"
npx -y bun skills/gemini-web/scripts/main.ts --prompt "A cute cat" --image generated.png
npx -y bun skills/gemini-web/scripts/main.ts --promptfiles system.md content.md --image out.png
npx -y bun skills/baoyu-gemini-web/scripts/main.ts --prompt "Hello"
npx -y bun skills/baoyu-gemini-web/scripts/main.ts "Hello"
npx -y bun skills/baoyu-gemini-web/scripts/main.ts --prompt "A cute cat" --image generated.png
npx -y bun skills/baoyu-gemini-web/scripts/main.ts --promptfiles system.md content.md --image out.png
Options:
-p, --prompt <text> Prompt text
@@ -1,5 +1,5 @@
---
name: post-to-wechat
name: baoyu-post-to-wechat
description: Post content to WeChat Official Account (微信公众号). Supports both article posting (文章) and image-text posting (图文).
---
@@ -1,5 +1,5 @@
---
name: post-to-x
name: baoyu-post-to-x
description: Post content and articles to X (Twitter). Supports regular posts with images and X Articles (long-form Markdown). Uses real Chrome with CDP to bypass anti-automation.
---
@@ -16,16 +16,16 @@ Post content, images, and long-form articles to X using real Chrome browser (byp
```bash
# Post text only
/post-to-x "Your post content here"
/baoyu-post-to-x "Your post content here"
# Post with image
/post-to-x "Your post content" --image /path/to/image.png
/baoyu-post-to-x "Your post content" --image /path/to/image.png
# Post with multiple images (up to 4)
/post-to-x "Your post content" --image img1.png --image img2.png
/baoyu-post-to-x "Your post content" --image img1.png --image img2.png
# Actually submit the post
/post-to-x "Your post content" --submit
/baoyu-post-to-x "Your post content" --submit
```
## Prerequisites
@@ -102,7 +102,7 @@ mcp__playwright__browser_take_screenshot filename="preview.png"
## Example Session
```
User: /post-to-x "Hello from Claude!" --image ./screenshot.png
User: /baoyu-post-to-x "Hello from Claude!" --image ./screenshot.png
Claude:
1. Runs: npx -y bun ./scripts/x-browser.ts "Hello from Claude!" --image ./screenshot.png
@@ -147,16 +147,16 @@ Publish Markdown articles to X Articles editor with rich text formatting and ima
```bash
# Publish markdown article (preview mode)
/post-to-x article /path/to/article.md
/baoyu-post-to-x article /path/to/article.md
# With custom cover image
/post-to-x article article.md --cover ./hero.png
/baoyu-post-to-x article article.md --cover ./hero.png
# With custom title
/post-to-x article article.md --title "My Custom Title"
/baoyu-post-to-x article article.md --title "My Custom Title"
# Actually publish (not just draft)
/post-to-x article article.md --submit
/baoyu-post-to-x article article.md --submit
```
## Prerequisites for Articles
@@ -292,7 +292,7 @@ JSON output:
## Article Example Session
```
User: /post-to-x article ./blog/my-post.md --cover ./thumbnail.png
User: /baoyu-post-to-x article ./blog/my-post.md --cover ./thumbnail.png
Claude:
1. Parses markdown: title="My Post", 3 content images
@@ -1,5 +1,5 @@
---
name: slide-deck
name: baoyu-slide-deck
description: Generate professional slide deck images from content. Creates comprehensive outlines with style instructions, then generates individual slide images. Use when user asks to "create slides", "make a presentation", "generate deck", or "slide deck".
---
@@ -11,26 +11,26 @@ Transform content into professional slide deck with comprehensive outlines and g
```bash
# From markdown file
/slide-deck path/to/article.md
/baoyu-slide-deck path/to/article.md
# With style preference
/slide-deck path/to/article.md --style corporate
/slide-deck path/to/article.md --style playful
/slide-deck path/to/article.md --style technical
/baoyu-slide-deck path/to/article.md --style corporate
/baoyu-slide-deck path/to/article.md --style playful
/baoyu-slide-deck path/to/article.md --style technical
# With audience specification
/slide-deck path/to/article.md --audience beginners
/slide-deck path/to/article.md --audience executives
/baoyu-slide-deck path/to/article.md --audience beginners
/baoyu-slide-deck path/to/article.md --audience executives
# With language
/slide-deck path/to/article.md --lang zh
/slide-deck path/to/article.md --lang en
/baoyu-slide-deck path/to/article.md --lang zh
/baoyu-slide-deck path/to/article.md --lang en
# Outline only (no image generation)
/slide-deck path/to/article.md --outline-only
/baoyu-slide-deck path/to/article.md --outline-only
# Direct content input
/slide-deck
/baoyu-slide-deck
[paste content]
```
@@ -94,6 +94,12 @@ Flat vector illustration with retro palette
- **Colors**: Retro muted palette - dusty pink (#E8B4B8), sage green (#A8C686), mustard yellow (#E8B84A), off-white background (#F5F0E6)
- **Best for**: Tutorials, explainers, product introductions, educational content
### 9. `notion`
Minimalist hand-drawn line art, intellectual
- **Aesthetic**: Simple line doodles with hand-drawn wobble, geometric shapes, maximum whitespace, SaaS product feel
- **Colors**: Black outlines (#1A1A1A), white background (#FFFFFF), 1-2 pastel accents (blue #A8D4F0, yellow #F9E79F)
- **Best for**: Knowledge sharing, concept explanations, productivity content, SaaS presentations
## Audience Presets
| Audience | Approach |
@@ -125,7 +131,7 @@ path/to/
### Without Article Path
```
./slide-deck-outputs/YYYY-MM-DD/[topic-slug]/
./baoyu-slide-deck-outputs/YYYY-MM-DD/[topic-slug]/
├── outline.md
├── prompts/
│ ├── 01-cover.md
@@ -152,6 +158,7 @@ path/to/
| Research, analysis, thought leadership | `editorial` |
| Wellness, healing, cozy, self-care, lifestyle, comfort | `warm` |
| Tutorial, explainer, how-to, beginner, product, guide | `retro-flat` |
| Knowledge, concept, productivity, SaaS, notion, intellectual | `notion` |
4. Extract key information:
- Core narrative and key messages
@@ -265,7 +272,7 @@ Style notes: [specific style characteristics to emphasize]
For each slide, generate using:
```bash
/gemini-web --promptfiles [SKILL_ROOT]/skills/slide-deck/prompts/system.md [TARGET_DIR]/prompts/01-cover.md --image [TARGET_DIR]/01-cover.png
/baoyu-gemini-web --promptfiles [SKILL_ROOT]/skills/baoyu-slide-deck/prompts/system.md [TARGET_DIR]/prompts/01-cover.md --image [TARGET_DIR]/01-cover.png
```
Generation flow:
@@ -389,6 +396,18 @@ Visual Elements: Clear black monoline outlines (uniform width), flat color fills
Style Rules: MUST use clear black outlines on all elements, NO 3D effects, NO gradients, simple flat color blocks only
```
### notion
```
Design Aesthetic: Minimalist hand-drawn line art with intellectual SaaS product feel, Notion-style doodles
Background Color: Pure white #FFFFFF, off-white #FAFAFA
Primary Font: Clean hand-drawn lettering, simple sans-serif
Secondary Font: Simple sans-serif labels
Primary Text Color: Black #1A1A1A, dark gray #4A4A4A
Primary Accent Color: Pastel blue #A8D4F0, Pastel yellow #F9E79F, Pastel pink #FADBD8
Visual Elements: Simple line doodles with hand-drawn wobble effect, geometric shapes, stick figures, maximum whitespace, single-weight ink lines
Style Rules: Single color lines (black/dark gray), 1-2 pastel accents only, NO complex gradients, NO heavy shadows, imperfect hand-drawn feel
```
## Notes
### Design Philosophy
+533
View File
@@ -0,0 +1,533 @@
---
name: baoyu-xhs-images
description: Xiaohongshu (Little Red Book) infographic series generator with multiple style options. Breaks down content into 1-10 cartoon-style infographics. Use when user asks to create "小红书图片", "XHS images", or "RedNote infographics".
---
# Xiaohongshu Infographic Series Generator
Break down complex content into eye-catching infographic series for Xiaohongshu with multiple style options.
## Usage
```bash
# Auto-select style and layout based on content
/baoyu-xhs-images posts/ai-future/article.md
# Specify style
/baoyu-xhs-images posts/ai-future/article.md --style notion
# Specify layout
/baoyu-xhs-images posts/ai-future/article.md --layout dense
# Combine style and layout
/baoyu-xhs-images posts/ai-future/article.md --style tech --layout list
# Direct content input
/baoyu-xhs-images
[paste content]
# Direct input with options
/baoyu-xhs-images --style bold --layout comparison
[paste content]
```
## Options
| Option | Description |
|--------|-------------|
| `--style <name>` | Visual style (see Style Gallery) |
| `--layout <name>` | Information layout (see Layout Gallery) |
## Two Dimensions
| Dimension | Controls | Options |
|-----------|----------|---------|
| **Style** | Visual aesthetics: colors, lines, decorations | cute, fresh, tech, warm, bold, minimal, retro, pop, notion |
| **Layout** | Information structure: density, arrangement | sparse, balanced, dense, list, comparison, flow |
Style × Layout can be freely combined. Example: `--style notion --layout dense` creates an intellectual-looking knowledge card with high information density.
## Style Gallery
### 1. `cute` (Default)
Sweet, adorable, girly - classic Xiaohongshu aesthetic
- **Colors**: Pink, peach, mint, lavender, cream background
- **Elements**: Cute stickers, emoji icons, hearts, stars, sparkles
- **Best for**: Lifestyle, beauty, fashion, daily tips
### 2. `fresh`
Clean, refreshing, natural
- **Colors**: Mint green, sky blue, white, light yellow
- **Elements**: Plant icons, clouds, simple shapes, breathing room
- **Best for**: Health, wellness, minimalist lifestyle, self-care
### 3. `tech`
Modern, smart, digital
- **Colors**: Deep blue, purple, cyan, dark backgrounds with neon accents
- **Elements**: Geometric shapes, data icons, circuit patterns, glowing effects
- **Best for**: Tech tutorials, AI content, digital tools, productivity
### 4. `warm`
Cozy, friendly, approachable
- **Colors**: Warm orange, golden yellow, brown, cream
- **Elements**: Sun motifs, coffee cups, cozy illustrations, warm lighting
- **Best for**: Personal stories, life lessons, emotional content
### 5. `bold`
High impact, attention-grabbing
- **Colors**: Red, orange, black, yellow accents
- **Elements**: Strong typography, exclamation marks, arrows, contrast
- **Best for**: Important tips, warnings, must-know content
### 6. `minimal`
Ultra-clean, sophisticated
- **Colors**: Black, white, single accent color
- **Elements**: Maximum whitespace, simple icons, clean lines
- **Best for**: Professional content, serious topics, elegant presentations
### 7. `retro`
Vintage, nostalgic, trendy
- **Colors**: Muted pastels, sepia, faded tones
- **Elements**: Vintage badges, halftone dots, classic typography
- **Best for**: Throwback content, classic tips, timeless advice
### 8. `pop`
Vibrant, energetic, eye-catching
- **Colors**: Bright primary colors, neon accents, white
- **Elements**: Bold shapes, comic-style elements, dynamic compositions
- **Best for**: Exciting announcements, fun facts, engaging tutorials
### 9. `notion`
Minimalist hand-drawn line art, intellectual
- **Colors**: Black outlines, white background, 1-2 pastel accents
- **Elements**: Simple line doodles, geometric shapes, hand-drawn wobble, maximum whitespace
- **Best for**: Knowledge sharing, concept explanations, SaaS content, productivity tips
## Layout Gallery
### 1. `sparse` (Default)
Minimal information, maximum impact
- **Density**: 1-2 key points per image
- **Whitespace**: 60-70% of canvas
- **Structure**: Single focal point, one core message
- **Best for**: Covers, quotes, impactful statements, emotional content
### 2. `balanced`
Standard content layout
- **Density**: 3-4 key points per image
- **Whitespace**: 40-50% of canvas
- **Structure**: Title + 3-4 bullet points or sections
- **Best for**: Regular content pages, tutorials, explanations
### 3. `dense`
High information density, knowledge card style
- **Density**: 5-8 key points per image
- **Whitespace**: 20-30% of canvas
- **Structure**: Multiple sections, structured grid, more text
- **Best for**: Summary cards, cheat sheets, comprehensive guides, 干货总结
### 4. `list`
Enumeration and ranking format
- **Density**: 4-7 items
- **Whitespace**: 30-40% of canvas
- **Structure**: Numbered or bulleted vertical list, consistent item format
- **Best for**: Top N lists, checklists, step-by-step guides, rankings
### 5. `comparison`
Side-by-side contrast layout
- **Density**: 2 main sections with 2-4 points each
- **Whitespace**: 30-40% of canvas
- **Structure**: Left vs Right, Before/After, Pros/Cons
- **Best for**: Comparisons, transformations, decision helpers, 对比图
### 6. `flow`
Process and timeline layout
- **Density**: 3-6 steps/stages
- **Whitespace**: 30-40% of canvas
- **Structure**: Connected nodes with arrows, sequential flow
- **Best for**: Processes, timelines, cause-effect chains, workflows
## Auto Style Selection
When no `--style` is specified, analyze content to select:
| Content Signals | Selected Style |
|----------------|----------------|
| Beauty, fashion, cute, girl, pink | `cute` |
| Health, nature, clean, fresh, organic | `fresh` |
| Tech, AI, code, digital, app, tool | `tech` |
| Life, story, emotion, feeling, warm | `warm` |
| Warning, important, must, critical | `bold` |
| Professional, business, elegant, simple | `minimal` |
| Classic, vintage, old, traditional | `retro` |
| Fun, exciting, wow, amazing | `pop` |
| Knowledge, concept, productivity, SaaS, notion | `notion` |
## Auto Layout Selection
When no `--layout` is specified, analyze content structure to select:
| Content Signals | Selected Layout |
|----------------|-----------------|
| Single quote, one key point, cover | `sparse` |
| 3-4 points, explanation, tutorial | `balanced` |
| 5+ points, summary, cheat sheet, 干货 | `dense` |
| Numbered items, top N, checklist, steps | `list` |
| vs, compare, before/after, pros/cons | `comparison` |
| Process, flow, timeline, steps with order | `flow` |
**Layout by Position**:
| Position | Recommended Layout |
|----------|-------------------|
| Cover | `sparse` |
| Content | `balanced` or content-appropriate |
| Ending | `sparse` or `balanced` |
## File Management
### With Article Path
Save to `xhs-images/` subdirectory in the same folder as the article:
```
posts/ai-future/
├── article.md
└── xhs-images/
├── outline.md
├── prompts/
│ ├── 01-cover.md
│ ├── 02-content-1.md
│ └── ...
├── 01-cover.png
├── 02-content-1.png
└── 03-ending.png
```
### Without Article Path
Save to `xhs-outputs/YYYY-MM-DD/[topic-slug]/`:
```
xhs-outputs/
└── 2026-01-13/
└── ai-agent-guide/
├── outline.md
├── prompts/
│ ├── 01-cover.md
│ └── ...
├── 01-cover.png
└── 02-ending.png
```
## Workflow
### Step 1: Analyze Content & Select Style/Layout
1. Read content
2. If `--style` specified, use that style; otherwise auto-select
3. If `--layout` specified, use that layout; otherwise auto-select per image
4. Determine image count based on content complexity:
| Content Type | Image Count |
|-------------|-------------|
| Simple opinion / single topic | 2-3 |
| Medium complexity / tutorial | 4-6 |
| Deep dive / multi-dimensional | 7-10 |
**Note**: Layout can vary per image in a series. Cover typically uses `sparse`, content pages use `balanced`/`dense`/`list` as appropriate.
### Step 2: Generate Outline
Plan for each image with style and layout specifications:
```markdown
# Xiaohongshu Infographic Series Outline
**Topic**: [topic description]
**Style**: [selected style]
**Default Layout**: [selected layout or "varies"]
**Image Count**: N
**Generated**: YYYY-MM-DD HH:mm
---
## Image 1 of N
**Position**: Cover
**Layout**: sparse
**Core Message**: [one-liner]
**Filename**: 01-cover.png
**Text Content**:
- Title: xxx
- Subtitle: xxx
**Visual Concept**: [style + layout appropriate description]
---
## Image 2 of N
**Position**: Content
**Layout**: [balanced/dense/list/comparison/flow]
**Core Message**: [one-liner]
**Filename**: 02-xxx.png
**Text Content**:
- Title: xxx
- Points: [list based on layout density]
**Visual Concept**: [description matching style + layout]
---
...
```
### Step 3: Save Outline
Save outline as `outline.md`.
### Step 4: Generate Images One by One
For each image, create a prompt file with style and layout specifications.
**Prompt Format**:
```markdown
Infographic theme: [topic]
Style: [style name]
Layout: [layout name]
Position: [cover/content/ending]
Visual composition:
- Main visual: [style-appropriate description]
- Arrangement: [layout-specific structure]
- Decorative elements: [style-specific decorations]
Color scheme:
- Primary: [style primary color]
- Background: [style background color]
- Accent: [style accent color]
Text content:
- Title: 「xxx」(large, prominent)
- Key points: [based on layout density]
Layout instructions: [layout-specific guidance]
Style notes: [style-specific characteristics]
```
**Layout-Specific Instructions**:
| Layout | Arrangement Instructions |
|--------|-------------------------|
| `sparse` | Single focal point centered, 1-2 text elements, maximum breathing room |
| `balanced` | Title at top, 3-4 points in clear sections, moderate spacing |
| `dense` | Grid or multi-section layout, 5-8 points, compact but organized |
| `list` | Vertical numbered/bulleted list, consistent item spacing, clear hierarchy |
| `comparison` | Two-column split, clear divider, mirrored structure left/right |
| `flow` | Horizontal or vertical flow with arrows, connected nodes/steps |
**Image Generation Skill Selection**:
1. Check available image generation skills
2. If multiple skills available, ask user to choose
**Generation Flow**:
1. Call selected image generation skill with prompt file and output path
2. Confirm generation success
3. Report progress: "Generated X/N"
4. Continue to next
### Step 5: Completion Report
```
Xiaohongshu Infographic Series Complete!
Topic: [topic]
Style: [style name]
Layout: [layout name or "varies"]
Location: [directory path]
Images: N total
- 01-cover.png ✓ Cover (sparse)
- 02-content-1.png ✓ Content (balanced)
- 03-content-2.png ✓ Content (dense)
- 04-ending.png ✓ Ending (sparse)
Outline: outline.md
```
## Style Reference Details
### cute
```
Colors: Pink (#FED7E2), peach (#FEEBC8), mint (#C6F6D5), lavender (#E9D8FD)
Background: Cream (#FFFAF0), soft pink (#FFF5F7)
Accents: Hot pink, coral
Elements: Hearts, stars, sparkles, cute faces, ribbon decorations, sticker-style
Typography: Rounded, bubbly hand lettering
```
### fresh
```
Colors: Mint green (#9AE6B4), sky blue (#90CDF4), light yellow (#FAF089)
Background: Pure white (#FFFFFF), soft mint (#F0FFF4)
Accents: Leaf green, water blue
Elements: Plant leaves, clouds, water drops, simple geometric shapes
Typography: Clean, light hand lettering with breathing room
```
### tech
```
Colors: Deep blue (#1A365D), purple (#6B46C1), cyan (#00D4FF)
Background: Dark gray (#1A202C), near-black (#0D1117)
Accents: Neon green (#00FF88), electric blue
Elements: Circuit patterns, data icons, geometric grids, glowing effects
Typography: Monospace-style hand lettering, subtle glow
```
### warm
```
Colors: Warm orange (#ED8936), golden yellow (#F6AD55), terracotta (#C05621)
Background: Cream (#FFFAF0), soft peach (#FED7AA)
Accents: Deep brown (#744210), soft red
Elements: Sun rays, coffee cups, cozy items, warm lighting effects
Typography: Friendly, rounded hand lettering
```
### bold
```
Colors: Vibrant red (#E53E3E), orange (#DD6B20), yellow (#F6E05E)
Background: Deep black (#000000), dark charcoal
Accents: White, neon yellow
Elements: Exclamation marks, arrows, warning icons, strong shapes
Typography: Bold, impactful hand lettering with shadows
```
### minimal
```
Colors: Black (#000000), white (#FFFFFF)
Background: Off-white (#FAFAFA), pure white
Accents: Single color (content-derived - blue, green, or coral)
Elements: Single focal point, thin lines, maximum whitespace
Typography: Clean, simple hand lettering
```
### retro
```
Colors: Muted orange, dusty pink (#FED7E2 at 70%), faded teal
Background: Aged paper (#F5E6D3), sepia tones
Accents: Faded red, vintage gold
Elements: Halftone dots, vintage badges, classic icons, tape effects
Typography: Vintage-style hand lettering, classic feel
```
### pop
```
Colors: Bright red (#F56565), yellow (#ECC94B), blue (#4299E1), green (#48BB78)
Background: White (#FFFFFF), light gray
Accents: Neon pink, electric purple
Elements: Bold shapes, speech bubbles, comic-style effects, starburst
Typography: Dynamic, energetic hand lettering with outlines
```
### notion
```
Colors: Black (#1A1A1A), dark gray (#4A4A4A)
Background: Pure white (#FFFFFF), off-white (#FAFAFA)
Accents: Pastel blue (#A8D4F0), pastel yellow (#F9E79F), pastel pink (#FADBD8)
Elements: Simple line doodles, hand-drawn wobble effect, geometric shapes, stick figures, maximum whitespace
Typography: Clean hand-drawn lettering, simple sans-serif labels
```
## Layout Reference Details
### sparse
```
Information Density: Very Low (1-2 points)
Whitespace: 60-70%
Structure: Single centered focal point
Text Elements: Title only, or title + one subtitle/tagline
Visual Balance: Centered, symmetrical, breathing room on all sides
Best Pairing: Any style, especially effective with bold, minimal, notion
```
### balanced
```
Information Density: Medium (3-4 points)
Whitespace: 40-50%
Structure: Title at top, content sections below
Text Elements: Title + 3-4 bullet points or key messages
Visual Balance: Top-weighted title, evenly distributed content below
Best Pairing: All styles work well
```
### dense
```
Information Density: High (5-8 points)
Whitespace: 20-30%
Structure: Multi-section grid or stacked blocks
Text Elements: Title + multiple sections with headers + numerous points
Visual Balance: Organized chaos, clear section boundaries, compact spacing
Best Pairing: tech, notion, minimal (clean styles prevent visual overload)
```
### list
```
Information Density: Medium-High (4-7 items)
Whitespace: 30-40%
Structure: Vertical enumeration with numbers or bullets
Text Elements: Title + numbered/bulleted items, consistent format per item
Visual Balance: Left-aligned list, clear number/bullet hierarchy
Best Pairing: All styles, especially cute (checklist), bold (rankings)
```
### comparison
```
Information Density: Medium (2×2-4 points)
Whitespace: 30-40%
Structure: Two-column split with center divider
Text Elements: Title + left label + right label + mirrored points
Visual Balance: Symmetrical left/right, clear visual contrast
Best Pairing: bold (dramatic contrast), tech (data comparison), warm (before/after stories)
```
### flow
```
Information Density: Medium (3-6 steps)
Whitespace: 30-40%
Structure: Connected nodes with directional arrows
Text Elements: Title + step labels + optional descriptions per step
Visual Balance: Directional flow (top→bottom or left→right), clear progression
Best Pairing: tech (process diagrams), notion (simple flows), fresh (organic flows)
```
## Content Breakdown Principles
1. **Cover (Image 1)**: Strong visual impact, core title, attention hook → `sparse` layout
2. **Content (Middle)**: Core points per image, density varies by content → `balanced`/`dense`/`list`/`comparison`/`flow`
3. **Ending (Last)**: Summary / call-to-action / memorable quote → `sparse` or `balanced`
**Style × Layout Matrix** (recommended combinations):
| | sparse | balanced | dense | list | comparison | flow |
|---|:---:|:---:|:---:|:---:|:---:|:---:|
| cute | ✓✓ | ✓✓ | ✓ | ✓✓ | ✓ | ✓ |
| fresh | ✓✓ | ✓✓ | ✓ | ✓ | ✓ | ✓✓ |
| tech | ✓ | ✓✓ | ✓✓ | ✓✓ | ✓✓ | ✓✓ |
| warm | ✓✓ | ✓✓ | ✓ | ✓ | ✓✓ | ✓ |
| bold | ✓✓ | ✓ | ✓ | ✓✓ | ✓✓ | ✓ |
| minimal | ✓✓ | ✓✓ | ✓✓ | ✓ | ✓ | ✓ |
| retro | ✓✓ | ✓✓ | ✓ | ✓✓ | ✓ | ✓ |
| pop | ✓✓ | ✓✓ | ✓ | ✓✓ | ✓✓ | ✓ |
| notion | ✓✓ | ✓✓ | ✓✓ | ✓✓ | ✓✓ | ✓✓ |
✓✓ = highly recommended, ✓ = works well
## Notes
- Image generation typically takes 10-30 seconds per image
- Auto-retry once on generation failure
- Use cartoon alternatives for sensitive public figures
- Output language matches input content language
- Maintain selected style consistency across all images in series
-331
View File
@@ -1,331 +0,0 @@
---
name: xhs-images
description: Xiaohongshu (Little Red Book) infographic series generator with multiple style options. Breaks down content into 1-10 cartoon-style infographics. Use when user asks to create "小红书图片", "XHS images", or "RedNote infographics".
---
# Xiaohongshu Infographic Series Generator
Break down complex content into eye-catching infographic series for Xiaohongshu with multiple style options.
## Usage
```bash
# Auto-select style based on content
/xhs-images posts/ai-future/article.md
# Specify a style
/xhs-images posts/ai-future/article.md --style cute
/xhs-images posts/ai-future/article.md --style tech
/xhs-images posts/ai-future/article.md --style minimal
# Direct content input
/xhs-images
[paste content]
# Direct input with style
/xhs-images --style bold
[paste content]
```
## Options
| Option | Description |
|--------|-------------|
| `--style <name>` | Specify infographic style (see Style Gallery below) |
## Style Gallery
### 1. `cute` (Default)
Sweet, adorable, girly - classic Xiaohongshu aesthetic
- **Colors**: Pink, peach, mint, lavender, cream background
- **Elements**: Cute stickers, emoji icons, hearts, stars, sparkles
- **Best for**: Lifestyle, beauty, fashion, daily tips
### 2. `fresh`
Clean, refreshing, natural
- **Colors**: Mint green, sky blue, white, light yellow
- **Elements**: Plant icons, clouds, simple shapes, breathing room
- **Best for**: Health, wellness, minimalist lifestyle, self-care
### 3. `tech`
Modern, smart, digital
- **Colors**: Deep blue, purple, cyan, dark backgrounds with neon accents
- **Elements**: Geometric shapes, data icons, circuit patterns, glowing effects
- **Best for**: Tech tutorials, AI content, digital tools, productivity
### 4. `warm`
Cozy, friendly, approachable
- **Colors**: Warm orange, golden yellow, brown, cream
- **Elements**: Sun motifs, coffee cups, cozy illustrations, warm lighting
- **Best for**: Personal stories, life lessons, emotional content
### 5. `bold`
High impact, attention-grabbing
- **Colors**: Red, orange, black, yellow accents
- **Elements**: Strong typography, exclamation marks, arrows, contrast
- **Best for**: Important tips, warnings, must-know content
### 6. `minimal`
Ultra-clean, sophisticated
- **Colors**: Black, white, single accent color
- **Elements**: Maximum whitespace, simple icons, clean lines
- **Best for**: Professional content, serious topics, elegant presentations
### 7. `retro`
Vintage, nostalgic, trendy
- **Colors**: Muted pastels, sepia, faded tones
- **Elements**: Vintage badges, halftone dots, classic typography
- **Best for**: Throwback content, classic tips, timeless advice
### 8. `pop`
Vibrant, energetic, eye-catching
- **Colors**: Bright primary colors, neon accents, white
- **Elements**: Bold shapes, comic-style elements, dynamic compositions
- **Best for**: Exciting announcements, fun facts, engaging tutorials
## Auto Style Selection
When no `--style` is specified, analyze content to select:
| Content Signals | Selected Style |
|----------------|----------------|
| Beauty, fashion, cute, girl, pink | `cute` |
| Health, nature, clean, fresh, organic | `fresh` |
| Tech, AI, code, digital, app, tool | `tech` |
| Life, story, emotion, feeling, warm | `warm` |
| Warning, important, must, critical | `bold` |
| Professional, business, elegant, simple | `minimal` |
| Classic, vintage, old, traditional | `retro` |
| Fun, exciting, wow, amazing | `pop` |
## File Management
### With Article Path
Save to `xhs-images/` subdirectory in the same folder as the article:
```
posts/ai-future/
├── article.md
└── xhs-images/
├── outline.md
├── prompts/
│ ├── 01-cover.md
│ ├── 02-content-1.md
│ └── ...
├── 01-cover.png
├── 02-content-1.png
└── 03-ending.png
```
### Without Article Path
Save to `xhs-outputs/YYYY-MM-DD/[topic-slug]/`:
```
xhs-outputs/
└── 2026-01-13/
└── ai-agent-guide/
├── outline.md
├── prompts/
│ ├── 01-cover.md
│ └── ...
├── 01-cover.png
└── 02-ending.png
```
## Workflow
### Step 1: Analyze Content & Select Style
1. Read content
2. If `--style` specified, use that style
3. Otherwise, scan for style signals and auto-select
4. Determine image count based on content complexity:
| Content Type | Image Count |
|-------------|-------------|
| Simple opinion / single topic | 2-3 |
| Medium complexity / tutorial | 4-6 |
| Deep dive / multi-dimensional | 7-10 |
### Step 2: Generate Outline
Plan for each image with style-specific approach:
```markdown
# Xiaohongshu Infographic Series Outline
**Topic**: [topic description]
**Style**: [selected style]
**Image Count**: N
**Generated**: YYYY-MM-DD HH:mm
---
## Image 1 of N
**Position**: Cover
**Core Message**: [one-liner]
**Filename**: 01-cover.png
**Text Content**:
- Title: xxx
- Subtitle: xxx
**Visual Concept**: [style-appropriate description]
---
## Image 2 of N
...
```
### Step 3: Save Outline
Save outline as `outline.md`.
### Step 4: Generate Images One by One
For each image, create a style-specific prompt file.
**Prompt Format**:
```markdown
Infographic theme: [topic]
Style: [style name]
Position: [cover/content/ending]
Visual composition:
- Main visual: [style-appropriate description]
- Layout: [element positioning for 3:4 vertical format]
- Decorative elements: [style-specific decorations]
Color scheme:
- Primary: [style primary color]
- Background: [style background color]
- Accent: [style accent color]
Text content:
- Title: 「xxx」(large, prominent)
- Key points: 「xxx」「xxx」
Style notes: [specific style characteristics]
```
Then generate using:
```bash
/gemini-web --promptfiles [SKILL_ROOT]/skills/xhs-images/prompts/system.md [TARGET_DIR]/prompts/01-cover.md --image [TARGET_DIR]/01-cover.png
```
After each image:
1. Confirm generation success
2. Report progress: "Generated X/N"
3. Continue to next
### Step 5: Completion Report
```
Xiaohongshu Infographic Series Complete!
Topic: [topic]
Style: [style name]
Location: [directory path]
Images: N total
- 01-cover.png ✓ Cover
- 02-content-1.png ✓ Content
- 03-content-2.png ✓ Content
- 04-ending.png ✓ Ending
Outline: outline.md
```
## Style Reference Details
### cute
```
Colors: Pink (#FED7E2), peach (#FEEBC8), mint (#C6F6D5), lavender (#E9D8FD)
Background: Cream (#FFFAF0), soft pink (#FFF5F7)
Accents: Hot pink, coral
Elements: Hearts, stars, sparkles, cute faces, ribbon decorations, sticker-style
Typography: Rounded, bubbly hand lettering
```
### fresh
```
Colors: Mint green (#9AE6B4), sky blue (#90CDF4), light yellow (#FAF089)
Background: Pure white (#FFFFFF), soft mint (#F0FFF4)
Accents: Leaf green, water blue
Elements: Plant leaves, clouds, water drops, simple geometric shapes
Typography: Clean, light hand lettering with breathing room
```
### tech
```
Colors: Deep blue (#1A365D), purple (#6B46C1), cyan (#00D4FF)
Background: Dark gray (#1A202C), near-black (#0D1117)
Accents: Neon green (#00FF88), electric blue
Elements: Circuit patterns, data icons, geometric grids, glowing effects
Typography: Monospace-style hand lettering, subtle glow
```
### warm
```
Colors: Warm orange (#ED8936), golden yellow (#F6AD55), terracotta (#C05621)
Background: Cream (#FFFAF0), soft peach (#FED7AA)
Accents: Deep brown (#744210), soft red
Elements: Sun rays, coffee cups, cozy items, warm lighting effects
Typography: Friendly, rounded hand lettering
```
### bold
```
Colors: Vibrant red (#E53E3E), orange (#DD6B20), yellow (#F6E05E)
Background: Deep black (#000000), dark charcoal
Accents: White, neon yellow
Elements: Exclamation marks, arrows, warning icons, strong shapes
Typography: Bold, impactful hand lettering with shadows
```
### minimal
```
Colors: Black (#000000), white (#FFFFFF)
Background: Off-white (#FAFAFA), pure white
Accents: Single color (content-derived - blue, green, or coral)
Elements: Single focal point, thin lines, maximum whitespace
Typography: Clean, simple hand lettering
```
### retro
```
Colors: Muted orange, dusty pink (#FED7E2 at 70%), faded teal
Background: Aged paper (#F5E6D3), sepia tones
Accents: Faded red, vintage gold
Elements: Halftone dots, vintage badges, classic icons, tape effects
Typography: Vintage-style hand lettering, classic feel
```
### pop
```
Colors: Bright red (#F56565), yellow (#ECC94B), blue (#4299E1), green (#48BB78)
Background: White (#FFFFFF), light gray
Accents: Neon pink, electric purple
Elements: Bold shapes, speech bubbles, comic-style effects, starburst
Typography: Dynamic, energetic hand lettering with outlines
```
## Content Breakdown Principles
1. **Cover (Image 1)**: Strong visual impact, core title, attention hook
2. **Content (Middle)**: One core point per image, moderate information density
3. **Ending (Last)**: Summary / call-to-action / memorable quote
## Notes
- Image generation typically takes 10-30 seconds per image
- Auto-retry once on generation failure
- Use cartoon alternatives for sensitive public figures
- Output language matches input content language
- Maintain selected style consistency across all images in series