1实现原理 · 为什么它能做到
先做“深度内容分析”再画:按分析框架产出 analysis.md(受众、价值主张、核心主题、人物与故事弧、内容信号),据信号推荐 art/tone/layout 与页数。
Deep analysis framework for transforming source content into effective visual storytelling.
风格是 art(6) × tone(7) × layout(7) 三维,加上 preset 层:preset 不只是 art+tone 的别名,还带额外规则(如 ohmsha 禁“说话头”、必须有视觉隐喻)。
**Preset vs Art+Tone**: Presets include special rules beyond art+tone.
角色一致性靠“角色设定表 + 参考图”工程化:先生成 characters/characters.png 作为跨页 --ref,后端不支持 --ref 时降级为把角色描述写进每页 prompt。
| Exists | Supported | Pass sheet as `--ref` on every page |
分页生成有严格的依赖顺序与批次策略:先出角色表,再按批派发页面;每页 prompt 必须先落盘才允许调用后端。
Honor workflow dependencies first: generate `characters/characters.png` before pages that use it as a reference.
自带一个可执行脚本把页面合并成 PDF:用 bun 跑 merge-to-pdf.ts,pdf-lib 建文档、按图片实际尺寸建页、Bun.write 落盘。
const pdfDoc = await PDFDocument.create();
局部工作流避免整套重跑:只出分镜、只出 prompt、只出图、或指定页重生成。
| `--regenerate N` | Regenerate specific page(s) only (e.g., `3` or `2,5,8`) |
重生成前必须备份:已有 prompt 与图片统一改名加 -backup-YYYYMMDD-HHMMSS 后缀,保留可比较的旧版本。
**Backup rule**: If `characters/characters.png` exists, rename to `characters/characters-backup-YYYYMMDD-HHMMSS.png`
交互语言贯穿全流程:分镜、prompt、选项与进度反馈都用用户输入语言或保存的偏好语言。
**Rule**: Use user's input language or saved language preference for ALL interactions:
2核心能力
3外部依赖
| 类型 | 依赖 |
|---|---|
| cli | bun / npx(${BUN_X} 运行时,跑 scripts/merge-to-pdf.ts) |
| package | pdf-lib(脚本内 import,用于建 PDF) |
| cli | sips / pngquant(压缩角色表,避免 --ref payload 失败) |
| cli | codex CLI / baoyu-image-gen(图像生成后端,codex-imagegen 分支) |
| api | Codex 原生 imagegen / Cursor GenerateImage / Hermes image_generate(宿主原生图像工具) |
4风险提醒 风险提醒:橙色 · 评估后使用
- 素材与整本分镜 prompt 出网到第三方生成后端(orange 档主因) — 传记/教程原文、角色设定、逐页 prompt 都会发往 Codex imagegen / baoyu-image-gen 等后端;多页漫画按批生成,账号额度消耗与内容外发量都大,涉密素材不可用。
- PDF 脚本的依赖靠外部解析 — merge-to-pdf.ts import pdf-lib,但 skill 目录无 package.json;若运行环境里 Bun/Node 解析不到该包(或 Bun 触发运行时自动安装),最后一步“合并 PDF”会失败或从 registry 拉包。[INFERENCE] 依赖仓库根 workspace 或全局环境。
- 流程重、交互多 — 九步流程、两道可选评审门、确认问题 5 个;想快速出一张图会显得繁琐(对比 four-panel 这类轻量 preset 才划算)。
- 角色表压缩依赖系统工具 — sips(macOS)或 pngquant(其它平台)缺失时,--ref payload 失败会迫使流程降级为“描述内嵌”,一致性随之下降。
- 素材文本构成注入面 — 素材内容经分析/分镜原样进入 prompt;恶意文本理论上可影响 agent 拼 prompt 与文件命名的决策(宿主级通用风险,非本 skill 特有)。
5第二遍独立确认
- [ok] 自带脚本只有 merge-to-pdf.ts,且仅本地行为 — 逐行核对:import fs/path/pdf-lib,createPdf() 里 readFileSync 页面图 → embedPng/embedJpg → Bun.write(outputPath);无网络调用、无 env 读取、无子进程。
- [ok] pdf-lib 依赖来源(无自带 package.json) — skill 目录确无 package.json;依赖靠仓库根 workspace 的 dependencies(pdf-lib ^1.17.1)或运行环境解析。这一点写进 risks,不影响档位。
- [ok] SKILL.md 点名单一生成后端(orange 依据) — Codex imagegen / codex CLI (baoyu-image-gen --provider codex-cli) / Cursor GenerateImage / Hermes image_generate 均在 SKILL.md 正文,且 7.2 要求“生成任何页面前先读后端 SKILL.md 判断 --ref 能力”。
- [ok] 角色一致性三策略与失败恢复 — SKILL.md 7.2 表(Exists/Supported、Exists/Not supported、Skipped)与 workflow.md 的 Strategy A/B/C 一一对应,另有 --ref 失败时的压缩→重试→降级链。
- [ok] 预设与默认角色 — workflow.md 列出 ohmsha 默认四角色(大雄/哆啦A梦/胖虎/静香)并写明不得为 ohmsha 自造角色;presets/ 5 个文件均在盘。
- [ok] 备份与局部重跑规则 — workflow.md 7.1 备份规则、SKILL.md Partial Workflow Options 表与 partial-workflows.md 均存在。
- [ok] meta 元数据 — GitHub API:MIT、25926 stars、pushed_at 2026-09-10T15:13:43Z;本地 HEAD 与任务 pin 1567581c26ec… 一致。
6结论
0b7b74a684ebd49d…1567581c26