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 Infographic Series Generator4---5# Xiaohongshu Infographic Series Generator67Break down complex content into eye-catching infographic series for Xiaohongshu with multiple style options.89## Usage1011```bash12# Auto-select style and layout based on content13/baoyu-xhs-images posts/ai-future/article.md1415# Specify style16/baoyu-xhs-images posts/ai-future/article.md --style notion1718# Specify layout19/baoyu-xhs-images posts/ai-future/article.md --layout dense2021# Combine style and layout22/baoyu-xhs-images posts/ai-future/article.md --style tech --layout list2324# Direct content input25/baoyu-xhs-images26[paste content]2728# Direct input with options29/baoyu-xhs-images --style bold --layout comparison30[paste content]31```3233## Options3435| Option | Description |36|--------|-------------|37| `--style <name>` | Visual style (see Style Gallery) |38| `--layout <name>` | Information layout (see Layout Gallery) |3940## Two Dimensions4142| Dimension | Controls | Options |43|-----------|----------|---------|44| **Style** | Visual aesthetics: colors, lines, decorations | cute, fresh, tech, warm, bold, minimal, retro, pop, notion |45| **Layout** | Information structure: density, arrangement | sparse, balanced, dense, list, comparison, flow |4647Style × Layout can be freely combined. Example: `--style notion --layout dense` creates an intellectual-looking knowledge card with high information density.4849## Style Gallery5051| Style | Description |52|-------|-------------|53| `cute` (Default) | Sweet, adorable, girly - classic Xiaohongshu aesthetic |54| `fresh` | Clean, refreshing, natural |55| `tech` | Modern, smart, digital |56| `warm` | Cozy, friendly, approachable |57| `bold` | High impact, attention-grabbing |58| `minimal` | Ultra-clean, sophisticated |59| `retro` | Vintage, nostalgic, trendy |60| `pop` | Vibrant, energetic, eye-catching |61| `notion` | Minimalist hand-drawn line art, intellectual |6263Detailed style definitions: `references/styles/<style>.md`6465## Layout Gallery6667| Layout | Description |68|--------|-------------|69| `sparse` (Default) | Minimal information, maximum impact (1-2 points) |70| `balanced` | Standard content layout (3-4 points) |71| `dense` | High information density, knowledge card style (5-8 points) |72| `list` | Enumeration and ranking format (4-7 items) |73| `comparison` | Side-by-side contrast layout |74| `flow` | Process and timeline layout (3-6 steps) |7576Detailed layout definitions: `references/layouts/<layout>.md`7778## Auto Selection7980| Content Signals | Style | Layout |81|-----------------|-------|--------|82| Beauty, fashion, cute, girl, pink | `cute` | sparse/balanced |83| Health, nature, clean, fresh, organic | `fresh` | balanced/flow |84| Tech, AI, code, digital, app, tool | `tech` | dense/list |85| Life, story, emotion, feeling, warm | `warm` | balanced |86| Warning, important, must, critical | `bold` | list/comparison |87| Professional, business, elegant, simple | `minimal` | sparse/balanced |88| Classic, vintage, old, traditional | `retro` | balanced |89| Fun, exciting, wow, amazing | `pop` | sparse/list |90| Knowledge, concept, productivity, SaaS | `notion` | dense/list |9192## File Structure9394Each session creates an independent directory named by content slug:9596```97xhs-images/{topic-slug}/98├── source-{slug}.{ext} # Source files (text, images, etc.)99├── analysis.md # Deep analysis results100├── outline-style-[slug].md # Variant A (e.g., outline-style-tech.md)101├── outline-style-[slug].md # Variant B (e.g., outline-style-notion.md)102├── outline-style-[slug].md # Variant C (e.g., outline-style-minimal.md)103├── outline.md # Final selected104├── prompts/105│ ├── 01-cover-[slug].md106│ ├── 02-content-[slug].md107│ └── ...108├── 01-cover-[slug].png109├── 02-content-[slug].png110└── NN-ending-[slug].png111```112113**Slug Generation**:1141. Extract main topic from content (2-4 words, kebab-case)1152. Example: "AI工具推荐" → `ai-tools-recommend`116117**Conflict Resolution**:118If `xhs-images/{topic-slug}/` already exists:119- Append timestamp: `{topic-slug}-YYYYMMDD-HHMMSS`120- Example: `ai-tools` exists → `ai-tools-20260118-143052`121122**Source Files**:123Copy all sources with naming `source-{slug}.{ext}`:124- `source-article.md`, `source-photo.jpg`, etc.125- Multiple sources supported: text, images, files from conversation126127## Workflow128129### Step 1: Analyze Content → `analysis.md`130131Read source content, save it if needed, and perform deep analysis.132133**Actions**:1341. **Save source content** (if not already a file):135 - If user provides a file path: use as-is136 - If user pastes content: save to `source.md` in target directory1372. Read source content1383. **Deep analysis** following `references/analysis-framework.md`:139 - Content type classification (种草/干货/测评/教程/避坑...)140 - Hook analysis (爆款标题潜力)141 - Target audience identification142 - Engagement potential (收藏/分享/评论)143 - Visual opportunity mapping144 - Swipe flow design1454. Detect source language1465. Determine recommended image count (2-10)1476. Select 3 style+layout combinations1487. **Save to `analysis.md`**149150### Step 2: Generate 3 Outline Variants151152Based on analysis, create three distinct style variants.153154**For each variant**:1551. **Generate outline** (`outline-style-[slug].md`):156 - YAML front matter with style, layout, image_count157 - Cover design with hook158 - Each image: layout, core message, text content, visual concept159 - **Written in user's preferred language**160 - Reference: `references/outline-template.md`161162| Variant | Selection Logic | Example Filename |163|---------|-----------------|------------------|164| A | Primary recommendation | `outline-style-tech.md` |165| B | Alternative style | `outline-style-notion.md` |166| C | Different audience/mood | `outline-style-minimal.md` |167168**All variants are preserved after selection for reference.**169170### Step 3: User Confirms All Options171172**IMPORTANT**: Present ALL options in a single confirmation step using AskUserQuestion. Do NOT interrupt workflow with multiple separate confirmations.173174**Determine which questions to ask**:175176| Question | When to Ask |177|----------|-------------|178| Style variant | Always (required) |179| Default layout | Only if user might want to override |180| Language | Only if `source_language ≠ user_language` |181182**Language handling**:183- If source language = user language: Just inform user (e.g., "Images will be in Chinese")184- If different: Ask which language to use185186**AskUserQuestion format**:187188```189Question 1 (Style): Which style variant?190- A: tech + dense (Recommended) - 专业科技感,适合干货191- B: notion + list - 清爽知识卡片192- C: minimal + balanced - 简约高端风格193- Custom: 自定义风格描述194195Question 2 (Layout) - only if relevant:196- Keep variant default (Recommended)197- sparse / balanced / dense / list / comparison / flow198199Question 3 (Language) - only if mismatch:200- 中文 (匹配原文)201- English (your preference)202```203204**After confirmation**:2051. Copy selected `outline-style-[slug].md` → `outline.md`2062. Update YAML front matter with confirmed options2073. If custom style: regenerate outline with that style2084. User may edit `outline.md` directly for fine-tuning209210### Step 4: Generate Images211212With confirmed outline + style + layout:213214**For each image (cover + content + ending)**:2151. Save prompt to `prompts/NN-{type}-[slug].md` (in user's preferred language)2162. Generate image using confirmed style and layout2173. Report progress after each generation218219**Image Generation Skill Selection**:220- Check available image generation skills221- If multiple skills available, ask user preference222223**Session Management**:224If image generation skill supports `--sessionId`:2251. Generate unique session ID: `xhs-{topic-slug}-{timestamp}`2262. Use same session ID for all images2273. Ensures visual consistency across generated images228229### Step 5: Completion Report230231```232Xiaohongshu Infographic Series Complete!233234Topic: [topic]235Style: [style name]236Layout: [layout name or "varies"]237Location: [directory path]238Images: N total239240✓ analysis.md241✓ outline-style-tech.md242✓ outline-style-notion.md243✓ outline-style-minimal.md244✓ outline.md (selected: tech + dense)245246Files:247- 01-cover-[slug].png ✓ Cover (sparse)248- 02-content-[slug].png ✓ Content (balanced)249- 03-content-[slug].png ✓ Content (dense)250- 04-ending-[slug].png ✓ Ending (sparse)251```252253## Image Modification254255### Edit Single Image2562571. Identify image to edit (e.g., `03-content-chatgpt.png`)2582. Update prompt in `prompts/03-content-chatgpt.md` if needed2593. Regenerate image using same session ID260261### Add New Image2622631. Specify insertion position (e.g., after image 3)2642. Create new prompt with appropriate slug2653. Generate new image2664. **Renumber files**: All subsequent images increment NN by 12675. Update `outline.md` with new image entry268269### Delete Image2702711. Remove image file and prompt file2722. **Renumber files**: All subsequent images decrement NN by 12733. Update `outline.md` to remove image entry274275## Content Breakdown Principles2762771. **Cover (Image 1)**: Hook + visual impact → `sparse` layout2782. **Content (Middle)**: Core value per image → `balanced`/`dense`/`list`/`comparison`/`flow`2793. **Ending (Last)**: CTA / summary → `sparse` or `balanced`280281**Style × Layout Matrix** (✓✓ = highly recommended, ✓ = works well):282283| | sparse | balanced | dense | list | comparison | flow |284|---|:---:|:---:|:---:|:---:|:---:|:---:|285| cute | ✓✓ | ✓✓ | ✓ | ✓✓ | ✓ | ✓ |286| fresh | ✓✓ | ✓✓ | ✓ | ✓ | ✓ | ✓✓ |287| tech | ✓ | ✓✓ | ✓✓ | ✓✓ | ✓✓ | ✓✓ |288| warm | ✓✓ | ✓✓ | ✓ | ✓ | ✓✓ | ✓ |289| bold | ✓✓ | ✓ | ✓ | ✓✓ | ✓✓ | ✓ |290| minimal | ✓✓ | ✓✓ | ✓✓ | ✓ | ✓ | ✓ |291| retro | ✓✓ | ✓✓ | ✓ | ✓✓ | ✓ | ✓ |292| pop | ✓✓ | ✓✓ | ✓ | ✓✓ | ✓✓ | ✓ |293| notion | ✓✓ | ✓✓ | ✓✓ | ✓✓ | ✓✓ | ✓✓ |294295## References296297Detailed templates and guidelines in `references/` directory:298- `analysis-framework.md` - XHS-specific content analysis299- `outline-template.md` - Outline format and examples300- `styles/<style>.md` - Detailed style definitions301- `layouts/<layout>.md` - Detailed layout definitions302- `base-prompt.md` - Base prompt template303304## Notes305306- Image generation typically takes 10-30 seconds per image307- Auto-retry once on generation failure308- Use cartoon alternatives for sensitive public figures309- All prompts and text use confirmed language preference310- Maintain style consistency across all images in series311312## Extension Support313314Custom styles and configurations via EXTEND.md.315316**Check paths** (priority order):3171. `.baoyu-skills/baoyu-xhs-images/EXTEND.md` (project)3182. `~/.baoyu-skills/baoyu-xhs-images/EXTEND.md` (user)319320If found, load before Step 1. Extension content overrides defaults.