mcpField
B
baoyu-comic

baoyu-comic

github.com/jimliu创意与媒体27.0k30.0k 次安装7 周前更新
代码仓库

关于 baoyu-comic

baoyu-comic 是用于创作原创知识漫画的 Skill,可配置画风、基调、版式和输出语言,并支持分镜、图像生成及合并为 PDF。

主要功能

  1. 01可配置画风与基调
  2. 02多种分镜版式和画幅
  3. 03仅生成分镜或提示词
  4. 04支持参考图生成
  5. 05批量生成漫画页面
  6. 06合并页面为 PDF

适用场景

  1. 01将源材料改编为知识漫画
  2. 02为漫画主题选择视觉表现
  3. 03重新生成指定漫画页面
  4. 04将完成的漫画页面导出为 PDF

安装

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

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

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

包含的文件

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

references/
analysis-framework.md
auto-selection.md
base-prompt.md
character-template.md
codex-imagegen.md
ohmsha-guide.md
partial-workflows.md
storyboard-template.md
references/art-styles/
chalk.md
ink-brush.md
ligne-claire.md
manga.md
minimalist.md
realistic.md
references/config/
first-time-setup.md
preferences-schema.md
watermark-guide.md
references/layouts/
cinematic.md
dense.md
four-panel.md
mixed.md
splash.md
standard.md
webtoon.md
references/presets/
concept-story.md
four-panel.md
ohmsha.md
shoujo.md
wuxia.md
references/tones/
action.md

详细介绍

知识漫画创作工具

以灵活的画风 × 基调组合,创作原创知识漫画。

用户输入工具

此技能向用户提问时,请遵循以下工具选择规则(按优先级排序):

  1. 优先使用当前 Agent 运行环境提供的内置用户输入工具,例如 AskUserQuestion、request_user_input、clarify、ask_user 或任何同类工具。
  2. 备用方案:如果没有此类工具,请输出带编号的纯文本消息,并请用户针对每个问题回复所选编号或答案。
  3. 批量提问:如果工具支持每次调用多个问题,请将所有适用问题合并到一次调用中;如果每次只能提问一个问题,则按优先级依次提问。

下面具体的 AskUserQuestion 引用仅为示例;在其他运行环境中,请替换为当地对应工具。

图像生成工具

此技能需要渲染图像时,请按以下顺序确定后端:

  1. 当前请求指定 — 如果用户在当前消息中指定了某个后端,请使用该后端。
  2. 已保存的偏好 — 如果 EXTEND.md 将 preferred_image_backend 设为当前可用的后端,请使用该后端。
  3. 自动选择(偏好为 auto、未设置,或固定指定的后端不可用时):
    • Codex(imagegen) — 首先检查可用技能/工具清单。如果清单中列出了名为 imagegen 的技能,则表示你正在 Codex 中运行,必须使用该技能:通过 Skill 工具调用,设置 skill: "imagegen",并传入已保存提示词文件的内容(以及 Codex imagegen 自身参数要求的输出路径和宽高比)。Codex imagegen 是该运行环境的官方栅格图像后端,优先级高于任何非原生技能(例如 baoyu-image-gen),除非用户明确固定了其他 preferred_image_backend。
    • 通过 codex exec 使用 Codex(codex-imagegen) — 如果当前运行环境没有原生 imagegen 技能,但 codex CLI 已加入 PATH,且已登录 Codex,请通过 baoyu-image-gen --provider codex-cli 运行(优先);如果 baoyu-image-gen 不可用,则直接调用捆绑的封装程序。详细信息、参数和运行环境探测步骤见 references/codex-imagegen.md — 仅在选择此分支时加载该文件。
    • Cursor(GenerateImage) — 如果运行环境提供原生 GenerateImage 工具,则表示你正在 Cursor 中运行,其优先级高于任何非原生技能,与 Codex imagegen 相同。需特别注意两个限制:(a) 它没有宽高比参数 — 请在传给 description 的提示词中明确写出目标宽高比/尺寸;(b) 它不接受输出目录 — 文件会保存到由工具管理的位置,因此生成后请将文件复制/移动到技能所需的输出路径(例如 outputs/.../NN-xxx.png)。参考图像应放在 reference_image_paths 中。
    • 其他运行环境的原生工具 — 如果运行环境提供其他原生图像工具(例如 Hermes image_generate),请以相同方式使用。
    • 否则,如果恰好安装了一个非原生后端(例如 baoyu-image-gen),请使用它。
    • 否则(存在多个非原生后端,且没有运行环境原生工具),请向用户提问一次 — 与其他初始问题合并提问。
  4. 如果都不可用,请告知用户,并询问如何继续。

⛔ 切勿用 SVG、HTML、画布或其他基于代码的渲染方式替代栅格图像生成。 Codex imagegen 自身说明指出,应在“输出应为位图资源,而不是仓库原生代码或矢量图”时使用它。如果无法通过第 3 步确定栅格图像后端,请转至第 4 步并询问用户 — 不要默默输出 SVG、编写内联 <svg> 标记,或制作 HTML/CSS 艺术图作为替代方案。即使文章/章节看起来“像图表”,也同样适用:调用此规则的使用方技能已经确定需要的是栅格图像。 ⛔ 切勿通过在生成的位图上绘制来修复渲染后的文本。 不要使用 ImageMagick、Pillow、Canvas、SVG、HTML/CSS、OCR 脚本或任何其他程序化叠加手段,来遮盖、改写、擦除、描边或替换已生成漫画页面中的对话、音效、分格标签或任何其他文本。如果文本有误或不清晰,请根据修正后的提示词重新生成、重绘页面并减少或不添加图中文字,或者询问用户要保留哪个不完美的候选版本。

设置 preferred_image_backend: ask 会强制每次运行时都显示第 3 步提示,无论是否有可用后端。用户可通过下文的 ## Changing Preferences 部分更改固定使用的后端。

提示词文件要求(硬性):在调用任何后端之前,先将每张图片的完整最终提示词写入 prompts/ 下的独立文件(命名格式:NN-{type}-[slug].md)。后端接收提示词文件(或其内容);该文件是可复现记录,也让你能够切换后端而无需重新生成提示词。

上面的具体工具名称(imagegen、GenerateImage、image_generate、baoyu-image-gen)仅为示例——请按相同规则替换为本地对应工具。

批量生成策略

当前生成组中的所有提示词文件保存并验证完毕后,默认以批次生成图片。

优先顺序:

  1. 如果所选后端提供原生批处理/多任务接口,请使用该接口。每个任务必须保留各自的提示词文件、输出路径、宽高比、会话 ID 和直接参考图。
  2. 如果没有原生批处理接口,但运行时可以并行调用工具,则每次最多并行生成 generation_batch_size 张图片。默认值:4。当前消息中的明确用户请求(例如 --batch-size 4 或“并行4张一起生成”)优先于 EXTEND.md。
  3. 如果原生批处理和并行工具调用都不可用,则按顺序生成。

规则:

  • 优先遵守工作流依赖:先生成 characters/characters.png,再生成将其用作参考图的页面。
  • 在所有选定页面的提示词文件都已写入磁盘之前,切勿启动第一批页面生成。
  • 失败的项目只重试一次,不要重新生成成功的项目。
  • 不要仅为并行渲染图片而使用子 Agent。只有在分别迭代提示词或进行创意探索时才使用子 Agent。

参考图

用户可能会提供参考图来指导美术风格、调色板、场景构图或主题。这与自动生成的角色设定表(步骤 7.1)相互独立——两者可以同时使用:用户参考图指导整体风格,角色设定表则固定重复出现角色的形象。

接收方式:通过 --ref <files...> 提供,或在用户提供文件路径/在对话中粘贴图片时接收。

  • 文件路径 → 复制到漫画输出目录旁的 refs/NN-ref-{slug}.{ext}
  • 粘贴的图片没有路径 → 请用户提供路径(遵循上文的“用户输入工具”规则),或通过口头提取风格特征作为文本替代方案
  • 没有参考图 → 跳过本节

使用模式(每张参考图):

用法效果
direct在每个页面(或选定页面)生成时,将文件作为参考图传给后端
style提取风格特征(线条处理、质感、氛围),并附加到每个页面提示词正文中
palette提取十六进制颜色,并附加到每个页面提示词正文中

存在参考图时,记录在每个页面提示词的 frontmatter 中:

references:
  - ref_id: 01
    filename: 01-ref-scene.png
    usage: direct

生成时:

  • 确认每个引用的文件都存在于磁盘上
  • 如果 usage: direct 且所选后端接受多张参考图 → 通过后端的 ref 参数同时传入角色设定表(步骤 7.2)和用户参考图;先按照步骤 7.1 的指南压缩图片,以避免负载失败
  • 如果后端只接受一张参考图 → 对有重复角色的页面优先使用角色设定表;改为在提示词正文中融入用户参考图的特征
  • 对于 style/palette 用法 → 将提取的特征融入每页提示词文本中(无论后端是否支持)

选项

视觉维度
选项值描述
--artligne-claire(默认)、manga、realistic、ink-brush、chalk、minimalist艺术风格/渲染技法
--toneneutral(默认)、warm、dramatic、romantic、energetic、vintage、action情绪/氛围
--layoutstandard(默认)、cinematic、dense、splash、mixed、webtoon、four-panel分格布局
--aspect3:4(默认,纵向)、4:3(横向)、16:9(宽屏)页面宽高比
--langauto(默认)、zh、en、ja 等输出语言
--ref <files...>文件路径将参考图应用于每一页,用于指导风格/配色/场景。参见上文的参考图像。
--batch-size <n>1-8本次运行的临时页面生成批次大小。默认值:取自 EXTEND.md 的 generation_batch_size,否则为 4。
部分工作流选项
选项描述
--storyboard-only仅生成分镜脚本,跳过提示词和图像
--prompts-only生成分镜脚本和提示词,跳过图像
--images-only根据现有提示词目录生成图像
--regenerate N仅重新生成指定页面(例如 3 或 2,5,8)

详情:references/partial-workflows.md

艺术风格、基调与预设目录
  • 艺术风格(6 种):ligne-claire、manga、realistic、ink-brush、chalk、minimalist。完整定义见 references/art-styles/<style>.md。

  • 基调(7 种):neutral、warm、dramatic、romantic、energetic、vintage、action。完整定义见 references/tones/<tone>.md。

  • 预设(5 种),包含纯艺术风格+基调之外的特殊规则:

    预设等效组合特点
    ohmshamanga + neutral视觉隐喻、避免对话式头像、展示小玩意
    wuxiaink-brush + action气的效果、战斗视觉、氛围感
    shoujomanga + romantic装饰元素、眼部细节、浪漫桥段
    concept-storymanga + warm视觉符号系统、成长弧线、对话与动作的平衡
    four-panelminimalist + neutral + four-panel 布局起承转合结构、黑白+点缀色、火柴人角色

    完整规则见 references/presets/<preset>.md——选择预设时加载该文件。

  • 兼容性矩阵和内容信号 → 预设表位于 references/auto-selection.md。在第 2 步推荐组合前请先阅读。

脚本目录

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

Agent 执行说明:

  1. 将此 SKILL.md 文件所在目录路径确定为 {baseDir}
  2. 脚本路径 = {baseDir}/scripts/<script-name>.ts
  3. 将本文档中的所有 {baseDir} 替换为实际路径
  4. 解析 ${BUN_X} 运行时:如果已安装 bun → 使用 bun;如果可用 npx → 使用 npx -y bun;否则建议安装 bun

脚本参考:

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

文件结构

输出目录:comic/{topic-slug}/

  • Slug:根据主题取 2-4 个词,并使用 kebab-case(例如 alan-turing-bio)
  • 冲突:追加时间戳(例如 turing-story-20260118-143052)

内容:

文件描述
source-{slug}.{ext}源文件
analysis.md内容分析
storyboard.md含分格拆解的分镜脚本
characters/characters.md角色定义
characters/characters.png角色参考图
prompts/NN-{cover|page}-[slug].md生成提示词
NN-{cover|page}-[slug].png生成的图像
{topic-slug}.pdf最终合并的 PDF

语言处理

检测优先级:

  1. --lang 标志(显式指定)
  2. EXTEND.md 中的 language 设置
  3. 用户的对话语言
  4. 源内容语言

规则:所有交互均使用用户输入的语言或已保存的语言偏好:

  • 故事板大纲和场景描述
  • 图像生成提示词
  • 用户选择选项和确认信息
  • 进度更新、问题、错误和摘要

技术术语保持英文。

工作流

进度清单
Comic Progress:
- [ ] Step 1: Setup & Analyze
  - [ ] 1.1 Preferences (EXTEND.md) ⛔ BLOCKING
    - [ ] Found → load preferences → continue
    - [ ] Not found → run first-time setup → MUST complete before other steps
  - [ ] 1.2 Analyze, 1.3 Check existing
- [ ] Step 2: Confirmation - Style & options ⚠️ REQUIRED
- [ ] Step 3: Generate storyboard + characters
- [ ] Step 4: Review outline (conditional)
- [ ] Step 5: Generate prompts
- [ ] Step 6: Review prompts (conditional)
- [ ] Step 7: Generate images
  - [ ] 7.1 Generate character sheet (if needed) → characters/characters.png
  - [ ] 7.2 Generate pages (with --ref if character sheet exists)
- [ ] Step 8: Merge to PDF
- [ ] Step 9: Completion report
流程
Input → [Preferences] ─┬─ Found → Continue
                       │
                       └─ Not found → First-Time Setup ⛔ BLOCKING
                                      │
                                      └─ Complete setup → Save EXTEND.md → Continue
                                                                              │
        ┌─────────────────────────────────────────────────────────────────────┘
        ↓
Analyze → [Check Existing?] → [Confirm: Style + Reviews] → Storyboard → [Review?] → Prompts → [Review?] → Images → PDF → Complete
步骤摘要
步骤操作主要输出
1.1加载 EXTEND.md 偏好设置 ⛔ 未找到时阻塞已加载配置
1.2分析内容analysis.md
1.3检查现有目录处理冲突
2确认风格、重点、受众、审核安排用户偏好
3生成故事板和角色storyboard.md、characters/
4审核大纲(如有要求)用户批准
5生成提示词prompts/*.md
6审核提示词(如有要求)用户批准
7.1生成角色设定表(如需要)characters/characters.png
7.2生成页面(如有角色参考图则使用)*.png 文件
8合并为 PDF{slug}.pdf
9完成报告摘要
步骤 7:图像生成

每个会话只选择一次后端,依据顶部的 ## Image Generation Tools 规则。如果后端是仓库技能(例如 baoyu-image-gen),请阅读其 SKILL.md,并使用其中记录的接口,而不是其脚本。

codex-imagegen 调用:当规则选择 codex-imagegen 时,请参阅 references/codex-imagegen.md 中的调用约定(首选 baoyu-image-gen --provider codex-cli 路径、运行时包装器发现、参数说明、标准输出架构、批处理语义——每次调用 n=1,因此页面批次必须为每页分派一次包装器调用)。

7.1 角色设定表——当漫画有多页且角色反复出现时,生成至 characters/characters.png,宽高比为 4:3。简单预设(例如四格极简风格)或单页漫画可跳过。使用前先压缩为 JPEG(macOS 上使用 sips -s format jpeg -s formatOptions 80 …,其他系统使用 pngquant --quality=65-80 …),以避免载荷失败。调用后端前,characters/characters.md 中的提示词文件必须已存在。

7.2 页面——调用后端前,每页的提示词必须已保存至 prompts/NN-{cover|page}-[slug].md;该文件是可复现记录。策略取决于角色设定表:

角色设定表后端 --ref策略
已生成支持每页都将设定表作为 --ref 传入
已生成不支持将角色描述添加到每个提示词文件的开头
已跳过—在提示词中内联所有描述

执行策略:如需生成角色设定表,应先生成。然后根据已保存的提示词文件构建所选页面任务列表,并按照 ## Batch Generation Policy 分批分派页面:优先使用后端原生批处理,其次使用运行时并行工具调用,最后才按顺序执行。--regenerate N 和 --images-only 对所选的现有提示词应用相同的批处理规则。

备份规则:重新生成前,将现有的 prompts/…md 和 …png 文件重命名,并添加 -backup-YYYYMMDD-HHMMSS 后缀。宽高比取自故事板(默认 3:4;预设可覆盖)。

--ref 失败恢复:压缩设定表 → 重试 → 仍然失败 → 移除 --ref,并将角色描述嵌入提示词文本。

完整的分步工作流(分析、故事板、审核关卡、重新生成变体):references/workflow.md。

EXTEND.md 路径 ⛔ 阻塞

如果未找到 EXTEND.md,首次设置将阻塞后续流程——请先完成设置,再进行任何内容分析或风格/语气相关问题。

优先级路径范围
1.baoyu-skills/baoyu-comic/EXTEND.md项目
2$HOME/.baoyu-skills/baoyu-comic/EXTEND.md用户主目录
结果操作
已找到阅读、解析并显示摘要 → 继续
未找到⛔ 运行首次设置(references/config/first-time-setup.md)→ 保存 EXTEND.md → 继续

EXTEND.md 支持:水印、偏好的艺术风格/语气/版式、自定义风格定义、角色预设、语言偏好、偏好的图像后端、生成批次大小。架构:references/config/preferences-schema.md。

参考资料

核心模板:

风格定义:

  • references/art-styles/ - 艺术风格(ligne-claire、manga、realistic、ink-brush、chalk、minimalist)
  • references/tones/ - 语气(neutral、warm、dramatic、romantic、energetic、vintage、action)
  • references/presets/ - 含特殊规则的预设(ohmsha、wuxia、shoujo、concept-story、four-panel)
  • references/layouts/ - 版式(standard、cinematic、dense、splash、mixed、webtoon、four-panel)

工作流:

配置:

页面修改

操作步骤
编辑先更新提示词文件 → --regenerate N → 重新生成 PDF
添加在对应位置创建提示词 → 使用角色参考生成 → 重新编号后续页面 → 更新分镜 → 重新生成 PDF
删除删除文件 → 重新编号后续页面 → 更新分镜 → 重新生成 PDF

重要:更新页面时,重新生成之前务必先更新提示词文件(prompts/NN-{cover|page}-[slug].md)。这样可确保变更有记录且可复现。

文字修正规则:

  • 如果对白、音效、分格标签或任何其他渲染出的文字存在拼写错误、乱码、难以辨认或视觉效果较弱等问题,请勿用代码修补位图。
  • 对于文字修正后的重新生成,请编写新的提示词文件并指定新的输出路径,以便保留有缺陷的候选版本进行比较。
  • 后期处理仅限于裁剪、调整尺寸、压缩或格式转换,且不得改动文字或主要构图。

备注

  • 图像生成:每页 10-30 秒
  • 生成失败时自动重试一次
  • 对敏感公众人物使用风格化替代方案
  • 通过会话 ID 保持风格一致
  • 必须确认步骤 2——不可跳过
  • 步骤 4/6 为条件执行——仅在用户于步骤 2 中提出要求时执行
  • 步骤 7.1 角色设定表——建议用于多页漫画;简单预设可选
  • 步骤 7.2 角色参考——若设定表存在则使用 --ref;失败时进行压缩/转换;再退回仅使用提示词
  • 水印/语言仅需在 EXTEND.md 中配置一次

更改偏好设置

EXTEND.md 位于 .baoyu-skills/baoyu-comic/EXTEND.md(项目级)或 ~/.baoyu-skills/baoyu-comic/EXTEND.md(用户级)。有三种更改方式:

  • 直接编辑 — 打开 EXTEND.md 并更改字段。完整架构见:references/config/preferences-schema.md。
  • 交互式重新配置 — 删除 EXTEND.md(或提出“重新配置 baoyu-comic 偏好设置”)。下次运行时会重新触发首次设置。
  • 常见的单行编辑:
    • preferred_image_backend: auto — 默认值;优先使用运行时原生工具,若只有一个已安装的后端则回退到该后端,只有存在多个非原生后端时才会询问。
    • preferred_image_backend: codex-imagegen — 固定使用 Codex 内置工具。
    • preferred_image_backend: baoyu-image-gen — 固定使用 baoyu-image-gen 技能。
    • preferred_image_backend: ask — 每次运行时确认后端。
    • generation_batch_size: 4 — 后端/运行时支持批量或并行生成时,同时渲染的页面图像默认数量。
    • watermark.enabled: true、preferred_art、preferred_tone、preferred_layout、language — 调整自动选择的默认值和外观选项。

评论

支持 Markdown