baoyu-xhs-images
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-toolsexists →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.mdin 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.mddirectly 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.mdif 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.mdwith new image entry
Delete Image
- Remove image file and prompt file
- Renumber files: All subsequent images decrement NN by 1
- Update
outline.mdto remove image entry
Content Breakdown Principles
- Cover (Image 1): Hook + visual impact →
sparselayout - Content (Middle): Core value per image →
balanced/dense/list/comparison/flow - Ending (Last): CTA / summary →
sparseorbalanced
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 analysisoutline-template.md- Outline format and examplesstyles/<style>.md- Detailed style definitionslayouts/<layout>.md- Detailed layout definitionsbase-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.
$ npx skills add jimliu/baoyu-skills --skill "baoyu-xhs-images"