Install
openclaw skills install @bjbook/zhz-picture-story-book连环画生成器:每页一幅画+底部文字说明,支持多种画风。用于生成故事绘本、小人书、连环画、图文故事。Use when user asks to create "连环画", "故事绘本", "picture story", "illustrated story", or "picture book".
openclaw skills install @bjbook/zhz-picture-story-book每页一幅画、底部配文字,生成完整连环画故事。
连环画是中国传统叙事形式,每页包含:
连环画注重单幅完整场景和文字叙事的配合。
本技能使用 zhz-image-gen 作为图片生成后端。
调用方式:
python ~/.openclaw/workspace/skills/zhz-image-gen/scripts/main.py \
--promptfiles prompts/NN-page-[slug].md \
--image illustrations/NN-page-[slug].png \
--ar 3:4 \
--quality 2k
⛔ 禁止用 SVG、HTML、Canvas 等代码渲染替代光栅图片生成。
提示词文件要求(硬性):在调用任何后端之前,必须先将每页的完整提示词写入独立文件 prompts/NN-page-[slug].md。
{baseDir} = 本 SKILL.md 所在目录。所有 scripts/... 路径均相对于 {baseDir}。
Python 环境:需要 Pillow 和 fpdf2 库。如果缺失,先安装:
pip install Pillow fpdf2
| 脚本 | 用途 |
|---|---|
scripts/composite-page.py | 将插图与文字合成为最终页面 |
scripts/merge-to-pdf.py | 将最终页面合并为 PDF |
| 参数 | 可选值 | 说明 |
|---|---|---|
--art | ink-brush(默认)、realistic、watercolor、oil-painting、minimalist | 画风 |
--tone | neutral(默认)、warm、dramatic、nostalgic、action | 画面基调/氛围 |
--pages | 3-30 | 目标页数(默认 10) |
--aspect | 3:4(默认竖版)、4:3、1:1 | 页面宽高比 |
--lang | auto(默认)、zh、en、ja | 输出语言 |
--text-position | bottom(默认)、top | 文字位置 |
--text-ratio | 0.20(默认) | 文字区域占比(0.15-0.30) |
--batch-size | 1-8 | 图片生成批处理数量(默认 4) |
输出目录:picture-story/{主题简称}/
| 文件 | 说明 |
|---|---|
storyboard.md | 故事大纲与分镜设计 |
characters.md | 角色视觉定义 |
prompts/NN-page-[slug].md | 图片生成提示词 + 文字说明 |
illustrations/NN-page-[slug].png | 原始插图(不含文字) |
pages/NN-page-[slug].png | 最终页面(插图 + 文字合成) |
{主题简称}.pdf | 最终合并的 PDF |
每页最终布局如下:
┌─────────────────────────────┐
│ │
│ │
│ 插图区域 │ ← 占页面高度的 (1 - text_ratio)
│ (AI生成的图片) │
│ │
│ │
├─────────────────────────────┤
│ 文字说明 / 旁白 │ ← 占页面高度的 text_ratio
│ (清晰排版的文字) │
└─────────────────────────────┘
连环画进度:
- [ ] 步骤 1:故事规划
- [ ] 步骤 2:确认 ⚠️ 必须
- [ ] 步骤 3:生成故事板 + 角色定义
- [ ] 步骤 4:生成提示词
- [ ] 步骤 5:生成插图
- [ ] 步骤 6:合成页面(插图 + 文字)
- [ ] 步骤 7:合并为 PDF
- [ ] 步骤 8:完成报告
分析用户提供的故事/主题:
storyboard.md向用户展示:
询问用户(合并所有问题):
storyboard.md,包含详细的场景描述和每页文字说明characters.md,包含重复出现角色的视觉定义storyboard.md 格式:
---
title: "故事标题"
topic: "主题简称"
page_count: N
art_style: "画风"
tone: "画面基调"
aspect_ratio: "3:4"
language: "zh"
generated: "YYYY-MM-DD"
---
# 故事标题 - 连环画故事板
## 第 1 页:场景标题
**文件名**:01-page-[slug].png
**场景**:[画面的视觉描述——插图展示什么]
**角色**:[出场人物]
**文字说明**:[页面底部的叙述文字]
## 第 2 页:场景标题
...
characters.md 格式:
# 角色定义 - 故事标题
## 角色名
- **角色**:主角/反派/配角
- **外貌**:[详细视觉描述]
- **服装**:[服装细节,含具体颜色和十六进制色值]
- **标志性特征**:[独特的视觉标记]
为每页创建提示词文件 prompts/NN-page-[slug].md:
# 第 NN 页:场景标题
## 视觉风格
画风:[style] | 画面基调:[tone]
## 角色参考
[从 characters.md 提取相关角色描述]
## 场景描述
[详细的画面视觉描述]
## 生成提示词
[组合好的英文提示词——包含画风关键词、场景构图、角色、动作、环境、光线、色彩。
不要在图片中包含任何文字/词语/标签。]
提示词编写规则:
逐页生成图片:
illustrations/NN-page-[slug].png--batch-size 可批处理使用 {baseDir}/scripts/composite-page.py 合成每页:
python {baseDir}/scripts/composite-page.py \
--image illustrations/01-page-[slug].png \
--text "页面底部的文字说明内容" \
--output pages/01-page-[slug].png \
--text-ratio 0.20 \
--aspect 3:4
脚本功能:
python {baseDir}/scripts/merge-to-pdf.py picture-story/{主题简称}/
页面按数字顺序合并。每页成为 PDF 的完整页面。
连环画完成!
标题:[title] | 画风:[art] | 画面基调:[tone] | 页数:[count]
位置:picture-story/{主题简称}/
✓ storyboard.md
✓ characters.md
✓ illustrations/(原始插图)
✓ pages/(最终页面含文字)
✓ {主题简称}.pdf
| 画风 | 说明 | 适合题材 |
|---|---|---|
| ink-brush | 中国水墨画风,毛笔笔触,水墨晕染 | 古典故事、武侠、神话、民间传说 |
| watercolor | 水彩画风格,透明轻盈 | 儿童故事、温馨题材、自然风景 |
| realistic | 写实数字绘画,照片级质感 | 历史故事、人物传记、纪实题材 |
| oil-painting | 油画风格,厚重笔触,丰富色彩 | 艺术题材、史诗故事、西方经典 |
| minimalist | 极简线条风,留白多 | 寓言、哲理故事、现代绘本 |
| cartoon | 卡通风格,造型简化夸张,线条清晰,色彩明快 | 儿童故事、喜剧、日常轻松题材 |
卡通
| 画面基调 | 色彩效果 | 氛围 |
|---|---|---|
| neutral | 均衡自然色调 | 平和叙事,客观描述 |
| warm | 暖色调,柔和金色光线 | 温馨、怀旧、家庭 |
| dramatic | 高对比度,浓重阴影 | 紧张、激烈、冲突 |
| nostalgic | 棕褐色调,褪色感,颗粒感 | 回忆、历史、岁月 |
| action | 鲜艳饱和,动态十足 | 战斗、运动、冒险 |
文字说明是每页底部的叙述文字。详细范例见 references/caption-examples.md。
规则:
好的写法:"悟空举棒便打,白骨精惨叫一声,化作一缕青烟逃去。唐僧见状大怒:'你这泼猴,又伤人性命!'" 不好的写法:"这一页画的是悟空在打架。"(太简短,无叙事价值) 不好的写法:[500 字长篇描述](太长,放不下)
多页故事中有重复出现的角色时:
characters.md 中定义每个角色的视觉外观,包含具体颜色(十六进制色值)--ref),可先生成角色参考图| 错误 | 恢复方案 |
|---|---|
| 图片生成失败 | 重试一次;仍失败则跳过该页并在报告中标注 |
| 文字太长放不下 | 自动缩小字号(最小 14px);仍放不下则截断并加"..." |
| 合成脚本失败 | 尝试 pip install Pillow;降级到 ImageMagick 或纯插图输出 |
| PDF 合并失败 | 输出单页图片作为最终交付物 |