mcpField
B
baoyu-comic

baoyu-comic

github.com/smallnest创意与媒体30987 次安装15 周前更新
代码仓库

关于 baoyu-comic

baoyu-comic 是将文本、图像等素材改编为知识漫画的创作技能,面向需要视觉化讲解内容的创作者。它支持多种画风、版式和比例,并生成分镜、角色素材及 PDF。

主要功能

  1. 01分析素材并规划漫画页数
  2. 02生成三种叙事分镜方案
  3. 03组合多种画风、版式与比例
  4. 04生成角色参考和页面图像提示词
  5. 05将漫画页面合并为 PDF

适用场景

  1. 01把人物传记改编为漫画
  2. 02将教程或编程知识视觉化
  3. 03按指定画风制作多页漫画

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/smallnest/langgraphgo --skill baoyu-comic

安装后在 Claude Code 中输入/baoyu-comic确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

package-lock.json
package.json
references/
analysis-framework.md
base-prompt.md
character-template.md
ohmsha-guide.md
storyboard-template.md
references/layouts/
cinematic.md
dense.md
mixed.md
splash.md
standard.md
webtoon.md
references/styles/
chalkboard.md
classic.md
dramatic.md
ohmsha.md
realistic.md
sepia.md
shoujo.md
vibrant.md
warm.md
wuxia.md
scripts/
generate-comic.ts
merge-to-pdf.ts

详细介绍

知识漫画创作器

创作不同视觉风格的原创知识漫画。

用法

/baoyu-comic posts/turing-story/source.md
/baoyu-comic  # then paste content

选项

选项值
--styleclassic(默认)、dramatic、warm、sepia、vibrant、ohmsha、realistic、wuxia、shoujo 或自定义描述
--layoutstandard(默认)、cinematic、dense、splash、mixed、webtoon
--aspect3:4(默认,纵向)、4:3(横向)、16:9(宽屏)
--langauto(默认)、zh、en、ja 等

风格、布局和纵横比可以自由组合。自定义风格可用自然语言描述。

漫画所有页面的纵横比均保持一致。

自动选择

内容特征风格布局
教程、操作指南、入门内容ohmshawebtoon
计算、AI、编程ohmshadense
1950 年以前、古典、古代sepiacinematic
个人故事、导师warmstandard
冲突、突破dramaticsplash
葡萄酒、食品、商业、生活方式、专业内容realisticcinematic
武术、武侠、仙侠、中国历史wuxiasplash
浪漫、爱情、校园生活、友谊、情感shoujostandard
传记、均衡内容classicmixed

脚本目录

重要:所有脚本都位于此技能的 scripts/ 子目录中。

Agent 执行说明:

  1. 将此 SKILL.md 文件所在目录的路径确定为 SKILL_DIR
  2. 脚本路径 = ${SKILL_DIR}/scripts/<script-name>.ts
  3. 将本文档中的所有 ${SKILL_DIR} 替换为实际路径

脚本参考:

脚本用途
scripts/merge-to-pdf.ts将漫画页面合并为 PDF

文件结构

每个会话都会创建一个以内容 slug 命名的独立目录:

comic/{topic-slug}/
├── source-{slug}.{ext}            # Source files (text, images, etc.)
├── analysis.md                    # Deep analysis results (YAML+MD)
├── storyboard-chronological.md    # Variant A (preserved)
├── storyboard-thematic.md         # Variant B (preserved)
├── storyboard-character.md        # Variant C (preserved)
├── characters-chronological/      # Variant A chars (preserved)
│   ├── characters.md
│   └── characters.png
├── characters-thematic/           # Variant B chars (preserved)
│   ├── characters.md
│   └── characters.png
├── characters-character/          # Variant C chars (preserved)
│   ├── characters.md
│   └── characters.png
├── storyboard.md                  # Final selected
├── characters/                    # Final selected
│   ├── characters.md
│   └── characters.png
├── prompts/
│   ├── 00-cover-[slug].md
│   └── NN-page-[slug].md
├── 00-cover-[slug].png
├── NN-page-[slug].png
└── {topic-slug}.pdf

Slug 生成:

  1. 从内容中提取主题(2-4 个词,使用 kebab-case)
  2. 示例:“Alan Turing Biography” → alan-turing-bio

冲突处理: 如果 comic/{topic-slug}/ 已存在:

  • 追加时间戳:{topic-slug}-YYYYMMDD-HHMMSS
  • 示例:turing-story 已存在 → turing-story-20260118-143052

源文件: 将所有源文件复制并命名为 source-{slug}.{ext}:

  • source-biography.md、source-portrait.jpg、source-timeline.png 等
  • 支持多个来源:文本、图片、对话中的文件

工作流

步骤 1:分析内容 → analysis.md

阅读源内容,必要时保存,并进行深入分析。

操作:

  1. 保存源内容(如果尚未保存为文件):
    • 如果用户提供文件路径:按原样使用
    • 如果用户粘贴内容:将其保存到目标目录中的 source.md
  2. 阅读源内容
  3. 根据 references/analysis-framework.md 进行深入分析:
    • 确定目标受众
    • 明确读者价值主张
    • 提炼核心主题和叙事潜力
    • 梳理关键人物及其故事发展
  4. 检测源语言
  5. 确定建议的页数:
    • 短篇故事:5-8 页
    • 中等复杂度:9-15 页
    • 完整传记:16-25 页
  6. 分析内容特征,推荐风格和布局
  7. 保存到 analysis.md

analysis.md 格式:

---
title: "Alan Turing: Father of Computing"
topic: Biography
time_span: 1912-1954
source_language: en
user_language: zh
aspect_ratio: "3:4"
recommended_page_count: 12
---

## Target Audience

- **Primary**: Tech enthusiasts curious about computing history
- **Secondary**: Students learning about scientific breakthroughs
- **Tertiary**: General readers interested in biographical stories

## Value Proposition

What readers will gain:
1. Understanding of how modern computing was born
2. Emotional connection to a brilliant but tragic figure
3. Appreciation for the human cost of innovation

## Core Themes

| Theme | Narrative Potential | Visual Opportunity |
|-------|--------------------|--------------------|
| Genius vs. Society | High conflict, dramatic arcs | Contrast scenes |
| Code-breaking | Mystery, tension | Technical diagrams as art |
| Personal tragedy | Emotional depth | Intimate, somber panels |

## Key Figures & Story Arcs

### Alan Turing (Protagonist)
- **Arc**: Misunderstood genius → War hero → Tragic end
- **Visual identity**: Disheveled academic, intense eyes
- **Key moments**: Enigma breakthrough, arrest, final days

### Christopher Morcom (Catalyst)
- **Role**: Early friend whose death shaped Turing
- **Visual identity**: Youthful, bright
- **Key moments**: School friendship, sudden death

## Content Signals

- "biography" → classic + mixed
- "computing history" → ohmsha + dense
- "personal tragedy" → dramatic + splash

## Recommended Approaches

1. **Chronological** - follow life timeline (recommended for biography)
2. **Thematic** - organize by contributions (good for educational focus)
3. **Character-focused** - relationships drive narrative (good for emotional impact)
步骤 2:生成 3 个分镜脚本变体

创建三个不同的变体,每个变体都结合一种叙事方式与推荐风格。

变体叙事方式推荐风格布局
A按时间顺序sepiacinematic
B主题式ohmshadense
C以角色为中心warmstandard

对于每个变体:

  1. 生成分镜脚本(storyboard-{approach}.md):

    • YAML 前置内容,包含 narrative_approach、recommended_style、recommended_layout、aspect_ratio
    • 封面设计
    • 每页:布局、分格细分、视觉提示词
    • 使用用户偏好的语言编写
    • 参考:references/storyboard-template.md
  2. 生成匹配的角色(characters-{approach}/):

    • characters.md - 与推荐风格匹配的视觉规格(使用用户偏好的语言)
    • characters.png - 角色参考图
    • 参考:references/character-template.md

选择后会保留所有变体,以供参考。

步骤 3:由用户确认所有选项

重要:使用 AskUserQuestion 在同一个确认步骤中呈现所有选项。不要通过多个单独的确认步骤打断工作流。

确定要询问哪些问题:

问题询问时机
分镜脚本变体始终询问(必选)
视觉风格始终询问(必选)
语言仅当 source_language ≠ user_language 时询问
纵横比仅当用户可能偏好非默认值时询问(例如,横向内容)

语言处理:

  • 如果源语言与用户语言相同:仅告知用户(例如,“漫画将使用中文”)
  • 如果不同:询问要使用哪种语言

所有分镜脚本和提示词都使用用户选择或偏好的语言生成。

纵横比处理:

  • 默认值:3:4(纵向)——标准漫画格式
  • 如果内容适合横向,提供 4:3(横向)选项(例如,全景场景、技术图表)
  • 对于电影风格的内容,提供 16:9(宽屏)选项

AskUserQuestion 格式(包含所有问题的示例):

Question 1 (Storyboard): Which storyboard variant?
- A: Chronological + sepia (Recommended)
- B: Thematic + ohmsha
- C: Character-focused + warm
- Custom

Question 2 (Style): Which visual style?
- sepia (Recommended from variant)
- classic / dramatic / warm / sepia / vibrant / ohmsha / realistic / wuxia
- Custom description

Question 3 (Language) - only if mismatch:
- Chinese (source material language)
- English (your preference)

Question 4 (Aspect) - only if relevant:
- 3:4 Portrait (Recommended)
- 4:3 Landscape
- 16:9 Widescreen

确认后:

  1. 将选定的分镜脚本复制到 storyboard.md
  2. 将选定的角色复制到 characters/
  3. 使用确认后的风格、语言和 aspect_ratio 更新 YAML 前置内容
  4. 如果风格与变体推荐的风格不同:重新生成 characters/characters.png
  5. 用户可以直接编辑文件以进行微调
步骤 4:生成图像

确认分镜脚本、风格和纵横比后:

对于每一页(封面 + 页面):

  1. 将提示词保存到 prompts/NN-{cover|page}-[slug].md(使用用户偏好的语言)
  2. 使用确认后的风格和纵横比生成图像
  3. 每生成一张图像后报告进度

图像生成技能选择:

  • 检查可用的图像生成技能
  • 如果有多个可用技能,询问用户偏好

角色参考处理:

  • 如果技能支持参考图像:传入 characters/characters.png
  • 如果技能不支持参考图像:在提示词中加入 characters/characters.md 的内容

会话管理: 如果图像生成技能支持 --sessionId:

  1. 生成唯一的会话 ID:comic-{topic-slug}-{timestamp}
  2. 所有页面使用相同的会话 ID
  3. 确保生成图像之间的视觉一致性
步骤 5:合并为 PDF

所有图像生成后:

npx -y bun ${SKILL_DIR}/scripts/merge-to-pdf.ts <comic-dir>

创建 {topic-slug}.pdf,其中所有页面均为整页图像。

步骤 6:完成报告
Comic Complete!
Title: [title] | Style: [style] | Pages: [count] | Aspect: [ratio] | Language: [lang]
Location: [path]
✓ analysis.md
✓ characters.png
✓ 00-cover-[slug].png ... NN-page-[slug].png
✓ {topic-slug}.pdf

修改页面

支持在初次生成后修改单个页面。

编辑单页

使用修改后的提示词重新生成指定页面:

  1. 确定要编辑的页面(例如,03-page-enigma-machine.png)
  2. 如有需要,更新 prompts/03-page-enigma-machine.md 中的提示词
  3. 如果内容变化较大,更新文件名中的 slug
  4. 使用相同的会话 ID 和纵横比重新生成图像
  5. 重新生成 PDF
添加新页面

在指定位置插入新页面:

  1. 指定插入位置(例如,在第 3 页之后)
  2. 创建带有适当 slug 的新提示词(例如,04-page-bletchley-park.md)
  3. 生成新页面图片(宽高比保持一致)
  4. 重新编号文件:后续所有页面的 NN 加 1
    • 04-page-tragedy.png → 05-page-tragedy.png
    • Slug 保持不变
  5. 使用新页面条目更新 storyboard.md
  6. 重新生成 PDF
删除页面

删除页面并重新编号:

  1. 找到要删除的页面(例如,03-page-enigma-machine.png)
  2. 删除图片文件和提示词文件
  3. 重新编号文件:后续所有页面的 NN 减 1
    • 04-page-tragedy.png → 03-page-tragedy.png
    • Slug 保持不变
  4. 从 storyboard.md 中删除对应页面条目
  5. 重新生成 PDF
文件命名约定

文件使用有意义的 slug,以便于阅读:

NN-cover-[slug].png / NN-page-[slug].png
NN-cover-[slug].md / NN-page-[slug].md (in prompts/)

示例:

  • 00-cover-turing-story.png
  • 01-page-early-life.png
  • 02-page-cambridge-years.png
  • 03-page-enigma-machine.png

Slug 规则:

  • 根据页面标题/内容生成(kebab-case)
  • 在漫画中必须唯一
  • 页面内容发生重大变化时,相应更新 slug

重新编号:

  • 添加/删除页面后,更新受影响页面的 NN 前缀
  • 除非内容发生变化,否则 slug 保持不变
  • 保持编号连续,不留空缺

特定风格指南

Ohmsha 风格(--style ohmsha)

教育漫画的附加要求:

  • 默认:直接使用哆啦A梦角色——无需创建新角色
    • 大雄:学生角色,好奇的学习者
    • 哆啦A梦:导师角色,使用道具讲解概念
    • 胖虎:反派/挑战角色,代表障碍或误解
    • 静香:辅助角色,提出澄清问题
  • 仅在明确要求时才使用自定义角色:--characters "Student:小明,Mentor:教授"
  • 必须使用视觉隐喻(道具、动作场景)——禁止使用对话头像
  • 页面标题:采用叙事风格,而非“第 X 页:主题”

参考:详细指南见 references/ohmsha-guide.md。

参考资料

详细模板和指南位于 references/ 目录:

  • analysis-framework.md - 漫画改编的深度内容分析
  • character-template.md - 角色定义格式和示例
  • storyboard-template.md - 分镜结构和面板拆分
  • ohmsha-guide.md - Ohmsha 漫画风格详解
  • styles/ - 详细风格定义
  • layouts/ - 详细布局定义

扩展支持

通过 EXTEND.md 自定义风格和配置。

检查路径(按优先级排序):

  1. .baoyu-skills/baoyu-comic/EXTEND.md(项目)
  2. ~/.baoyu-skills/baoyu-comic/EXTEND.md(用户)

如果找到扩展文件,请在步骤 1 之前加载。扩展内容会覆盖默认设置。

评论

支持 Markdown