Xiaohongshu Infographic Series Generator
Break down complex content into eye-catching infographic series for Xiaohongshu with multiple style options.
Usage
# 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
| Style |
Description |
cute (Default) |
Sweet, adorable, girly - classic Xiaohongshu aesthetic |
fresh |
Clean, refreshing, natural |
tech |
Modern, smart, digital |
warm |
Cozy, friendly, approachable |
bold |
High impact, attention-grabbing |
minimal |
Ultra-clean, sophisticated |
retro |
Vintage, nostalgic, trendy |
pop |
Vibrant, energetic, eye-catching |
notion |
Minimalist hand-drawn line art, intellectual |
Detailed style definitions: references/styles/<style>.md
Layout Gallery
| Layout |
Description |
sparse (Default) |
Minimal information, maximum impact (1-2 points) |
balanced |
Standard content layout (3-4 points) |
dense |
High information density, knowledge card style (5-8 points) |
list |
Enumeration and ranking format (4-7 items) |
comparison |
Side-by-side contrast layout |
flow |
Process and timeline layout (3-6 steps) |
Detailed layout definitions: references/layouts/<layout>.md
Auto Selection
| Content Signals |
Style |
Layout |
| Beauty, fashion, cute, girl, pink |
cute |
sparse/balanced |
| Health, nature, clean, fresh, organic |
fresh |
balanced/flow |
| Tech, AI, code, digital, app, tool |
tech |
dense/list |
| Life, story, emotion, feeling, warm |
warm |
balanced |
| Warning, important, must, critical |
bold |
list/comparison |
| Professional, business, elegant, simple |
minimal |
sparse/balanced |
| Classic, vintage, old, traditional |
retro |
balanced |
| Fun, exciting, wow, amazing |
pop |
sparse/list |
| Knowledge, concept, productivity, SaaS |
notion |
dense/list |
File Structure
Each session creates an independent directory named by content slug:
xhs-images/{topic-slug}/
├── source-{slug}.{ext} # Source files (text, images, etc.)
├── analysis.md # Deep analysis results
├── outline-style-[slug].md # Variant A (e.g., outline-style-tech.md)
├── outline-style-[slug].md # Variant B (e.g., outline-style-notion.md)
├── outline-style-[slug].md # Variant C (e.g., outline-style-minimal.md)
├── outline.md # Final selected
├── prompts/
│ ├── 01-cover-[slug].md
│ ├── 02-content-[slug].md
│ └── ...
├── 01-cover-[slug].png
├── 02-content-[slug].png
└── NN-ending-[slug].png
Slug Generation:
- Extract main topic from content (2-4 words, kebab-case)
- Example: "AI工具推荐" →
ai-tools-recommend
Conflict Resolution:
If xhs-images/{topic-slug}/ already exists:
- Append timestamp:
{topic-slug}-YYYYMMDD-HHMMSS
- Example:
ai-tools exists → ai-tools-20260118-143052
Source Files:
Copy all sources with naming source-{slug}.{ext}:
source-article.md, source-photo.jpg, etc.
- Multiple sources supported: text, images, files from conversation
Workflow
Step 1: Analyze Content → analysis.md
Read source content, save it if needed, and perform deep analysis.
Actions:
- Save source content (if not already a file):
- If user provides a file path: use as-is
- If user pastes content: save to
source.md in target directory
- Read source content
- Deep analysis following
references/analysis-framework.md:
- Content type classification (种草/干货/测评/教程/避坑...)
- Hook analysis (爆款标题潜力)
- Target audience identification
- Engagement potential (收藏/分享/评论)
- Visual opportunity mapping
- Swipe flow design
- Detect source language
- Determine recommended image count (2-10)
- Select 3 style+layout combinations
- Save to
analysis.md
Step 2: Generate 3 Outline Variants
Based on analysis, create three distinct style variants.
For each variant:
- Generate outline (
outline-style-[slug].md):
- YAML front matter with style, layout, image_count
- Cover design with hook
- Each image: layout, core message, text content, visual concept
- Written in user's preferred language
- Reference:
references/outline-template.md
| Variant |
Selection Logic |
Example Filename |
| A |
Primary recommendation |
outline-style-tech.md |
| B |
Alternative style |
outline-style-notion.md |
| C |
Different audience/mood |
outline-style-minimal.md |
All variants are preserved after selection for reference.
Step 3: User Confirms All Options
IMPORTANT: Present ALL options in a single confirmation step using AskUserQuestion. Do NOT interrupt workflow with multiple separate confirmations.
Determine which questions to ask:
| Question |
When to Ask |
| Style variant |
Always (required) |
| Default layout |
Only if user might want to override |
| Language |
Only if source_language ≠ user_language |
Language handling:
- If source language = user language: Just inform user (e.g., "Images will be in Chinese")
- If different: Ask which language to use
AskUserQuestion format:
Question 1 (Style): Which style variant?
- A: tech + dense (Recommended) - 专业科技感,适合干货
- B: notion + list - 清爽知识卡片
- C: minimal + balanced - 简约高端风格
- Custom: 自定义风格描述
Question 2 (Layout) - only if relevant:
- Keep variant default (Recommended)
- sparse / balanced / dense / list / comparison / flow
Question 3 (Language) - only if mismatch:
- 中文 (匹配原文)
- English (your preference)
After confirmation:
- Copy selected
outline-style-[slug].md → outline.md
- Update YAML front matter with confirmed options
- If custom style: regenerate outline with that style
- User may edit
outline.md directly for fine-tuning
Step 4: Generate Images
With confirmed outline + style + layout:
For each image (cover + content + ending):
- Save prompt to
prompts/NN-{type}-[slug].md (in user's preferred language)
- Generate image using confirmed style and layout
- Report progress after each generation
Image Generation Skill Selection:
- Check available image generation skills
- If multiple skills available, ask user preference
Session Management:
If image generation skill supports --sessionId:
- Generate unique session ID:
xhs-{topic-slug}-{timestamp}
- Use same session ID for all images
- Ensures visual consistency across generated images
Step 5: Completion Report
Xiaohongshu Infographic Series Complete!
Topic: [topic]
Style: [style name]
Layout: [layout name or "varies"]
Location: [directory path]
Images: N total
✓ analysis.md
✓ outline-style-tech.md
✓ outline-style-notion.md
✓ outline-style-minimal.md
✓ outline.md (selected: tech + dense)
Files:
- 01-cover-[slug].png ✓ Cover (sparse)
- 02-content-[slug].png ✓ Content (balanced)
- 03-content-[slug].png ✓ Content (dense)
- 04-ending-[slug].png ✓ Ending (sparse)
Image Modification
Edit Single Image
- Identify image to edit (e.g.,
03-content-chatgpt.png)
- Update prompt in
prompts/03-content-chatgpt.md if needed
- Regenerate image using same session ID
Add New Image
- Specify insertion position (e.g., after image 3)
- Create new prompt with appropriate slug
- Generate new image
- Renumber files: All subsequent images increment NN by 1
- Update
outline.md with new image entry
Delete Image
- Remove image file and prompt file
- Renumber files: All subsequent images decrement NN by 1
- Update
outline.md to remove image entry
Content Breakdown Principles
- Cover (Image 1): Hook + visual impact →
sparse layout
- Content (Middle): Core value per image →
balanced/dense/list/comparison/flow
- Ending (Last): CTA / summary →
sparse or balanced
Style × Layout Matrix (✓✓ = highly recommended, ✓ = works well):
|
sparse |
balanced |
dense |
list |
comparison |
flow |
| cute |
✓✓ |
✓✓ |
✓ |
✓✓ |
✓ |
✓ |
| fresh |
✓✓ |
✓✓ |
✓ |
✓ |
✓ |
✓✓ |
| tech |
✓ |
✓✓ |
✓✓ |
✓✓ |
✓✓ |
✓✓ |
| warm |
✓✓ |
✓✓ |
✓ |
✓ |
✓✓ |
✓ |
| bold |
✓✓ |
✓ |
✓ |
✓✓ |
✓✓ |
✓ |
| minimal |
✓✓ |
✓✓ |
✓✓ |
✓ |
✓ |
✓ |
| retro |
✓✓ |
✓✓ |
✓ |
✓✓ |
✓ |
✓ |
| pop |
✓✓ |
✓✓ |
✓ |
✓✓ |
✓✓ |
✓ |
| notion |
✓✓ |
✓✓ |
✓✓ |
✓✓ |
✓✓ |
✓✓ |
References
Detailed templates and guidelines in references/ directory:
analysis-framework.md - XHS-specific content analysis
outline-template.md - Outline format and examples
styles/<style>.md - Detailed style definitions
layouts/<layout>.md - Detailed layout definitions
base-prompt.md - Base prompt template
Notes
- Image generation typically takes 10-30 seconds per image
- Auto-retry once on generation failure
- Use cartoon alternatives for sensitive public figures
- All prompts and text use confirmed language preference
- Maintain style consistency across all images in series
Extension Support
Custom styles and configurations via EXTEND.md.
Check paths (priority order):
.baoyu-skills/baoyu-xhs-images/EXTEND.md (project)
~/.baoyu-skills/baoyu-xhs-images/EXTEND.md (user)
If found, load before Step 1. Extension content overrides defaults.
1---2name: baoyu-xhs-images3description: 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".4---56# Xiaohongshu Infographic Series Generator78Break down complex content into eye-catching infographic series for Xiaohongshu with multiple style options.910## Usage1112```bash13# Auto-select style and layout based on content14/baoyu-xhs-images posts/ai-future/article.md1516# Specify style17/baoyu-xhs-images posts/ai-future/article.md --style notion1819# Specify layout20/baoyu-xhs-images posts/ai-future/article.md --layout dense2122# Combine style and layout23/baoyu-xhs-images posts/ai-future/article.md --style tech --layout list2425# Direct content input26/baoyu-xhs-images27[paste content]2829# Direct input with options30/baoyu-xhs-images --style bold --layout comparison31[paste content]32```3334## Options3536| Option | Description |37|--------|-------------|38| `--style <name>` | Visual style (see Style Gallery) |39| `--layout <name>` | Information layout (see Layout Gallery) |4041## Two Dimensions4243| Dimension | Controls | Options |44|-----------|----------|---------|45| **Style** | Visual aesthetics: colors, lines, decorations | cute, fresh, tech, warm, bold, minimal, retro, pop, notion |46| **Layout** | Information structure: density, arrangement | sparse, balanced, dense, list, comparison, flow |4748Style × Layout can be freely combined. Example: `--style notion --layout dense` creates an intellectual-looking knowledge card with high information density.4950## Style Gallery5152| Style | Description |53|-------|-------------|54| `cute` (Default) | Sweet, adorable, girly - classic Xiaohongshu aesthetic |55| `fresh` | Clean, refreshing, natural |56| `tech` | Modern, smart, digital |57| `warm` | Cozy, friendly, approachable |58| `bold` | High impact, attention-grabbing |59| `minimal` | Ultra-clean, sophisticated |60| `retro` | Vintage, nostalgic, trendy |61| `pop` | Vibrant, energetic, eye-catching |62| `notion` | Minimalist hand-drawn line art, intellectual |6364Detailed style definitions: `references/styles/<style>.md`6566## Layout Gallery6768| Layout | Description |69|--------|-------------|70| `sparse` (Default) | Minimal information, maximum impact (1-2 points) |71| `balanced` | Standard content layout (3-4 points) |72| `dense` | High information density, knowledge card style (5-8 points) |73| `list` | Enumeration and ranking format (4-7 items) |74| `comparison` | Side-by-side contrast layout |75| `flow` | Process and timeline layout (3-6 steps) |7677Detailed layout definitions: `references/layouts/<layout>.md`7879## Auto Selection8081| Content Signals | Style | Layout |82|-----------------|-------|--------|83| Beauty, fashion, cute, girl, pink | `cute` | sparse/balanced |84| Health, nature, clean, fresh, organic | `fresh` | balanced/flow |85| Tech, AI, code, digital, app, tool | `tech` | dense/list |86| Life, story, emotion, feeling, warm | `warm` | balanced |87| Warning, important, must, critical | `bold` | list/comparison |88| Professional, business, elegant, simple | `minimal` | sparse/balanced |89| Classic, vintage, old, traditional | `retro` | balanced |90| Fun, exciting, wow, amazing | `pop` | sparse/list |91| Knowledge, concept, productivity, SaaS | `notion` | dense/list |9293## File Structure9495Each session creates an independent directory named by content slug:9697```98xhs-images/{topic-slug}/99├── source-{slug}.{ext} # Source files (text, images, etc.)100├── analysis.md # Deep analysis results101├── outline-style-[slug].md # Variant A (e.g., outline-style-tech.md)102├── outline-style-[slug].md # Variant B (e.g., outline-style-notion.md)103├── outline-style-[slug].md # Variant C (e.g., outline-style-minimal.md)104├── outline.md # Final selected105├── prompts/106│ ├── 01-cover-[slug].md107│ ├── 02-content-[slug].md108│ └── ...109├── 01-cover-[slug].png110├── 02-content-[slug].png111└── NN-ending-[slug].png112```113114**Slug Generation**:1151. Extract main topic from content (2-4 words, kebab-case)1162. Example: "AI工具推荐" → `ai-tools-recommend`117118**Conflict Resolution**:119If `xhs-images/{topic-slug}/` already exists:120- Append timestamp: `{topic-slug}-YYYYMMDD-HHMMSS`121- Example: `ai-tools` exists → `ai-tools-20260118-143052`122123**Source Files**:124Copy all sources with naming `source-{slug}.{ext}`:125- `source-article.md`, `source-photo.jpg`, etc.126- Multiple sources supported: text, images, files from conversation127128## Workflow129130### Step 1: Analyze Content → `analysis.md`131132Read source content, save it if needed, and perform deep analysis.133134**Actions**:1351. **Save source content** (if not already a file):136 - If user provides a file path: use as-is137 - If user pastes content: save to `source.md` in target directory1382. Read source content1393. **Deep analysis** following `references/analysis-framework.md`:140 - Content type classification (种草/干货/测评/教程/避坑...)141 - Hook analysis (爆款标题潜力)142 - Target audience identification143 - Engagement potential (收藏/分享/评论)144 - Visual opportunity mapping145 - Swipe flow design1464. Detect source language1475. Determine recommended image count (2-10)1486. Select 3 style+layout combinations1497. **Save to `analysis.md`**150151### Step 2: Generate 3 Outline Variants152153Based on analysis, create three distinct style variants.154155**For each variant**:1561. **Generate outline** (`outline-style-[slug].md`):157 - YAML front matter with style, layout, image_count158 - Cover design with hook159 - Each image: layout, core message, text content, visual concept160 - **Written in user's preferred language**161 - Reference: `references/outline-template.md`162163| Variant | Selection Logic | Example Filename |164|---------|-----------------|------------------|165| A | Primary recommendation | `outline-style-tech.md` |166| B | Alternative style | `outline-style-notion.md` |167| C | Different audience/mood | `outline-style-minimal.md` |168169**All variants are preserved after selection for reference.**170171### Step 3: User Confirms All Options172173**IMPORTANT**: Present ALL options in a single confirmation step using AskUserQuestion. Do NOT interrupt workflow with multiple separate confirmations.174175**Determine which questions to ask**:176177| Question | When to Ask |178|----------|-------------|179| Style variant | Always (required) |180| Default layout | Only if user might want to override |181| Language | Only if `source_language ≠ user_language` |182183**Language handling**:184- If source language = user language: Just inform user (e.g., "Images will be in Chinese")185- If different: Ask which language to use186187**AskUserQuestion format**:188189```190Question 1 (Style): Which style variant?191- A: tech + dense (Recommended) - 专业科技感,适合干货192- B: notion + list - 清爽知识卡片193- C: minimal + balanced - 简约高端风格194- Custom: 自定义风格描述195196Question 2 (Layout) - only if relevant:197- Keep variant default (Recommended)198- sparse / balanced / dense / list / comparison / flow199200Question 3 (Language) - only if mismatch:201- 中文 (匹配原文)202- English (your preference)203```204205**After confirmation**:2061. Copy selected `outline-style-[slug].md` → `outline.md`2072. Update YAML front matter with confirmed options2083. If custom style: regenerate outline with that style2094. User may edit `outline.md` directly for fine-tuning210211### Step 4: Generate Images212213With confirmed outline + style + layout:214215**For each image (cover + content + ending)**:2161. Save prompt to `prompts/NN-{type}-[slug].md` (in user's preferred language)2172. Generate image using confirmed style and layout2183. Report progress after each generation219220**Image Generation Skill Selection**:221- Check available image generation skills222- If multiple skills available, ask user preference223224**Session Management**:225If image generation skill supports `--sessionId`:2261. Generate unique session ID: `xhs-{topic-slug}-{timestamp}`2272. Use same session ID for all images2283. Ensures visual consistency across generated images229230### Step 5: Completion Report231232```233Xiaohongshu Infographic Series Complete!234235Topic: [topic]236Style: [style name]237Layout: [layout name or "varies"]238Location: [directory path]239Images: N total240241✓ analysis.md242✓ outline-style-tech.md243✓ outline-style-notion.md244✓ outline-style-minimal.md245✓ outline.md (selected: tech + dense)246247Files:248- 01-cover-[slug].png ✓ Cover (sparse)249- 02-content-[slug].png ✓ Content (balanced)250- 03-content-[slug].png ✓ Content (dense)251- 04-ending-[slug].png ✓ Ending (sparse)252```253254## Image Modification255256### Edit Single Image2572581. Identify image to edit (e.g., `03-content-chatgpt.png`)2592. Update prompt in `prompts/03-content-chatgpt.md` if needed2603. Regenerate image using same session ID261262### Add New Image2632641. Specify insertion position (e.g., after image 3)2652. Create new prompt with appropriate slug2663. Generate new image2674. **Renumber files**: All subsequent images increment NN by 12685. Update `outline.md` with new image entry269270### Delete Image2712721. Remove image file and prompt file2732. **Renumber files**: All subsequent images decrement NN by 12743. Update `outline.md` to remove image entry275276## Content Breakdown Principles2772781. **Cover (Image 1)**: Hook + visual impact → `sparse` layout2792. **Content (Middle)**: Core value per image → `balanced`/`dense`/`list`/`comparison`/`flow`2803. **Ending (Last)**: CTA / summary → `sparse` or `balanced`281282**Style × Layout Matrix** (✓✓ = highly recommended, ✓ = works well):283284| | sparse | balanced | dense | list | comparison | flow |285|---|:---:|:---:|:---:|:---:|:---:|:---:|286| cute | ✓✓ | ✓✓ | ✓ | ✓✓ | ✓ | ✓ |287| fresh | ✓✓ | ✓✓ | ✓ | ✓ | ✓ | ✓✓ |288| tech | ✓ | ✓✓ | ✓✓ | ✓✓ | ✓✓ | ✓✓ |289| warm | ✓✓ | ✓✓ | ✓ | ✓ | ✓✓ | ✓ |290| bold | ✓✓ | ✓ | ✓ | ✓✓ | ✓✓ | ✓ |291| minimal | ✓✓ | ✓✓ | ✓✓ | ✓ | ✓ | ✓ |292| retro | ✓✓ | ✓✓ | ✓ | ✓✓ | ✓ | ✓ |293| pop | ✓✓ | ✓✓ | ✓ | ✓✓ | ✓✓ | ✓ |294| notion | ✓✓ | ✓✓ | ✓✓ | ✓✓ | ✓✓ | ✓✓ |295296## References297298Detailed templates and guidelines in `references/` directory:299- `analysis-framework.md` - XHS-specific content analysis300- `outline-template.md` - Outline format and examples301- `styles/<style>.md` - Detailed style definitions302- `layouts/<layout>.md` - Detailed layout definitions303- `base-prompt.md` - Base prompt template304305## Notes306307- Image generation typically takes 10-30 seconds per image308- Auto-retry once on generation failure309- Use cartoon alternatives for sensitive public figures310- All prompts and text use confirmed language preference311- Maintain style consistency across all images in series312313## Extension Support314315Custom styles and configurations via EXTEND.md.316317**Check paths** (priority order):3181. `.baoyu-skills/baoyu-xhs-images/EXTEND.md` (project)3192. `~/.baoyu-skills/baoyu-xhs-images/EXTEND.md` (user)320321If found, load before Step 1. Extension content overrides defaults.