Install
openclaw skills install @piprot/story-comic-creator将故事/小说/回忆录等文字内容制作成专业的连环画/漫画(HTML格式),支持多宫格布局、气泡式对白、心理活动气泡、旁白框、音效字、分集结构。涵盖从剧本创作、角色设定、批量生图、HTML组装到压缩发布的完整工作流。适用于"把我的故事做成漫画""生成连环画""做个小人书""故事转漫画"等需求。
openclaw skills install @piprot/story-comic-creator将用户提供的故事文本(回忆录、小说、散文、真实经历等)转化为可在浏览器中阅读的专业连环画/漫画。最终产物为单文件 HTML + 图片文件夹,支持压缩后发布到各平台。
适用: 个人故事漫画、回忆录连环画、小说改编漫画、短篇故事漫画 不适用: 长篇连载(>20集)、商用专业漫画(需要手绘级精度)、动态漫画/视频
需求确认 → 剧本创作 → 角色资产设定 → 角色锚定 → 批量生图 → HTML组装 → 压缩发布 → 迭代修改
强制门禁:阶段3「角色资产设定」必须在批量生图之前完成。未生成角色立绘+三视图+风格参考图,不得进入批量生图阶段。
门禁总览(每个阶段结束必须逐项检查,全部通过才进入下一阶段):
| 阶段 | 检查重点 | 不通过的后果 |
|---|---|---|
| 1.需求确认 | 参数齐全、用户确认 | 后续返工 |
| 2.剧本创作 | 集数/格数/文字量/距离规则 | 生图出错、画面不对 |
| 3.角色资产 | 三视图完整、风格参考图确认、画风统一、无畸形 | 全本角色不一致 |
| 4.角色锚定 | 描述与资产对应、多版本标注 | 生图角色漂移 |
| 5.批量生图 | 全部生成、质量合格、角色一致、画风锚定 | HTML组装缺图/错图 |
| 6.HTML组装 | 结构正确、无断链、布局合规 | 显示异常、盖脸 |
| 7.压缩发布 | 大小达标、画质可接受、路径正确、引用干净 | 无法发布/显示异常 |
| 8.迭代修改 | 修改到位、同步发布版、重新验证 | 旧问题残留 |
必须确认的参数:
用户说"随便""你来定"时的默认值:
输出物: 剧本.md,包含每集每格的:画面描述、对白、心理活动、旁白、音效。
通读全文,按叙事节奏拆成 6-12 集。每集聚焦一个核心场景或情绪转折。
拆分原则:
每集 4-6 格,按"起承转合"或时间顺序排列。
画格类型分配(每集建议):
每格必须写清:
格X(镜头类型:远景/中景/近景/特写):
- 画面:(人物、动作、场景、镜头、光影。双人画面必须写明距离)
- 对白:(谁说的,内容)—— 可选
- 心理活动:(谁的内心独白)—— 可选
- 旁白:(叙述性文字)—— 可选
- 音效:(如"铃——""砰")—— 可选
镜头类型(强制标注,每格必须写明):
| 类型 | 用途 | 人物占比 | 文字建议 |
|---|---|---|---|
| 远景 / establishing | 交代场景、时空 | 人物<30% | 旁白为主 |
| 中景 | 人物动作、互动 | 人物30%-70% | 对白+旁白 |
| 近景 | 表情、情绪 | 人物70%-90% | 心理活动+对白 |
| 特写 | 关键物品、脸部细节 | 人物>90% | 仅旁白栏,不放叠加气泡 |
在设计每格画面时,必须根据原文判断人物之间的关系和距离,写入剧本的"画面"描述中。
判定流程:
常见错误(必须避免):
目标: 为每个主要角色生成标准化的视觉资产,作为后续所有画格的角色一致性锚点。同时确立全本统一的画风。
输出物: characters/ 文件夹,每个主要角色一张「立绘+三视图」设定图;style_ref.jpg 风格参考图。
在生成任何角色三视图之前,必须先生成一张纯场景的风格参考图(无人物),确认画风符合预期后,再用它作为风格参考生成所有角色三视图和画格。
为什么要做: 纯文字描述"写实水彩风"太笼统,不同模型理解差异大。先生成一张场景图确认画风,再用「参考图生图」以这张图为风格参考生成后续所有图,能确保全本画风高度统一。
风格参考图 prompt(固定模板,直接复制使用):
写实水彩插画风格,传统水彩手绘质感,可见水彩晕染和水痕纹理,
粗糙水彩纸底色,色彩柔和不饱和,暖色调怀旧氛围,
笔触自然随性,边缘柔和不锐利,光影柔和渐变过渡,
类似宫崎骏动画背景的水彩质感,类似新海诚动画背景美术风格,
成熟稳重的成人向插画,非儿童绘本,非卡通萌系。
夏末午后的老校园梧桐大道,阳光透过树叶在地面洒下斑驳光斑,
远处有红砖教学楼,空无一人,宁静怀旧的氛围。
暖金色光线,柔和侧光,远景构图。
不要卡通化,不要二次元动漫风格,不要3D渲染,不要油画厚涂,
不要赛璐璐平涂,不要照片级写实质感,不要Q版,不要大眼萌系,
不要塑料感,不要过度饱和的鲜艳色彩,不要锐利的数字绘画边缘,
不要人物,不要文字。
生成后必须目视确认:
确认通过后保存为 characters/style_ref.jpg,后续所有角色三视图和画格都用它作为风格参考。
如果风格不对: 调整 prompt 中的风格描述词(如增加"透明水彩""湿画法""干笔触感"等),重新生成,直到画风符合预期。不要在风格未确认时就批量生成角色三视图,否则会全部返工。
以下描述块是固定的风格锚定,每张图(角色三视图、画格)的 prompt 开头必须完整包含,不得删减或改写:
【风格】写实水彩插画风格,传统水彩手绘质感,可见水彩晕染和水痕纹理,
粗糙水彩纸底色,色彩柔和不饱和,暖色调怀旧氛围,
笔触自然随性,边缘柔和不锐利,光影柔和渐变过渡,
成熟稳重的成人向插画,非儿童绘本,非卡通萌系。
以下负面约束是固定的,每张图 prompt 结尾必须完整包含:
【禁止】不要卡通化,不要二次元动漫风格,不要3D渲染,不要油画厚涂,
不要赛璐璐平涂,不要照片级写实质感,不要Q版,不要大眼萌系,
不要塑料感,不要过度饱和的鲜艳色彩,不要锐利的数字绘画边缘。
使用方式: 每张图的 prompt = 【风格锚定块】+ 【画面描述】+ 【角色描述】+ 【光影氛围】+ 【负面约束块】。风格锚定块和负面约束块固定不变,只改中间的画面/角色/光影描述。
为每个出场超过3格的角色生成资产:
用「参考图生图」能力生成,以 characters/style_ref.jpg 风格参考图为参考,单张正方形,边长取所在平台支持的最高值(如 1536×1536;部分平台可到 2048×2048),prompt 模板:
【风格】写实水彩插画风格,传统水彩手绘质感,可见水彩晕染和水痕纹理,
粗糙水彩纸底色,色彩柔和不饱和,暖色调怀旧氛围,
笔触自然随性,边缘柔和不锐利,光影柔和渐变过渡,
成熟稳重的成人向插画,非儿童绘本,非卡通萌系。
角色设定三视图,[角色标准化外貌描述]。
三视图:正面、侧面、背面。穿[标准服装]。
身高约[X]cm,体型[描述,自然不过度夸张]。
背景纯白色,角色全身站立,双手自然下垂。
【禁止】不要卡通化,不要二次元动漫风格,不要3D渲染,不要油画厚涂,
不要赛璐璐平涂,不要照片级写实质感,不要Q版,不要大眼萌系,
不要塑料感,不要过度饱和的鲜艳色彩,不要锐利的数字绘画边缘。
参考图: 必须传入 characters/style_ref.jpg 作为「参考图」,确保画风与风格参考图一致。
三视图必须包含:
多角色画风统一(强制): 所有角色三视图都必须用「参考图生图」以 characters/style_ref.jpg 风格参考图为参考生成。第一个角色的三视图生成后,后续角色的三视图可以同时传入 style_ref.jpg + 第一个角色三视图作为双重风格参考,确保所有角色画风、笔触、色彩完全统一。禁止任何角色单独用 文生图 生成(会导致画风漂移)。
如果角色在故事中有明显造型变化(如学生→职场、夏装→冬装、年轻→中年),每个主要造型都要生成一套三视图。在文件名中标注版本,如 二叔_工装版.jpg、二叔_休闲版.jpg。
生成后必须目视检查:
确认通过后,将资产图保存到 characters/ 目录,后续生图时作为参考。
目标: 基于角色资产,为每个角色写一段标准化外貌描述,在所有生图 prompt 中复用。
女主(我):20多岁中国女性,黑色中长发到肩下,发尾微卷自然垂落,偏分刘海,
清秀眉眼,眼睛大小适中,鼻梁小巧挺直,嘴唇饱满自然,脸型鹅蛋脸,气质温和大方。
标准服装:浅米色休闲夹克+白色圆领卫衣+蓝色直筒牛仔裤+白色休闲运动鞋。
身高约165cm,体型匀称自然。
男主(二叔):20多岁北方男性,黑色短发清爽偏分,面容清俊,眉眼温和,
鼻梁挺直,嘴唇薄,气质沉静内敛。
标准服装:蓝色工装夹克+白色T恤+深色长裤+黑色皮鞋。
身高约180cm,体型偏瘦,肩膀略窄。
关键规则:
如果项目中已有生成好的图片,可以直接复用为关键画格。复用的图片要检查角色是否与新设定一致,不一致的需要重生成。
工具: 文生图 用于无角色的场景/远景;参考图生图 用于含角色的画格,以角色三视图 + style_ref.jpg 为参考确保一致性。每批最多 4 张并行。
平台适配(发布前必读): 本 skill 的生图逻辑与具体 AI 平台无关,只用「文生图 / 参考图生图」两个概念。落地时按你所用平台映射工具:
- 豆包:文生图 =
image_gen;参考图生图 =image_edit,参考图经image_reference_url_list传入(可同时传style_ref.jpg+ 角色三视图共 2 张,作为双重风格/角色参考)。- WorkBuddy:两类生图统一用
ImageGen工具——纯文生图只给prompt;含角色画格的双重参考给prompt+image1=角色_三视图路径+image2=style_ref.jpg+input_fidelity="high"(高贴合度锁一致性);参考图支持本地路径或 URL,最多 3 张(正面/侧面/背面可各传一张)。尺寸映射到 1536×1536(三视图)/ 1024×1536(画格)。
| 画格类型 | 推荐工具 | 说明 |
|---|---|---|
| 含主要角色的中近景 | 参考图生图 | 传入 style_ref.jpg + 角色三视图作为参考图,确保画风与脸型/发型/服装一致 |
| 含主要角色的远景 | 文生图 | 远景角色细节不明显,文生图即可(仍带风格锚定块+负面约束) |
| 纯场景/空镜 | 文生图 | 无角色,不需要参考 |
| 物品/特写 | 文生图 | 无角色 |
【风格】写实水彩插画风格,传统水彩手绘质感,可见水彩晕染和水痕纹理,
粗糙水彩纸底色,色彩柔和不饱和,暖色调怀旧氛围,
笔触自然随性,边缘柔和不锐利,光影柔和渐变过渡,
成熟稳重的成人向插画,非儿童绘本,非卡通萌系。
[镜头类型]。[场景描述]。[角色标准化外貌描述],[角色动作/表情]。
[光影/氛围/色调]。
【禁止】不要卡通化,不要二次元动漫风格,不要3D渲染,不要油画厚涂,
不要赛璐璐平涂,不要照片级写实质感,不要Q版,不要大眼萌系,
不要塑料感,不要过度饱和的鲜艳色彩,不要锐利的数字绘画边缘。
参考图(强制传入两张):
characters/style_ref.jpg(风格参考图,确保画风统一)characters/角色_三视图.jpg(角色参考图,确保角色一致)关键: 参考图+风格锚定描述块+角色描述,三重锚定,画风和角色一致性最好。
【风格】写实水彩插画风格,传统水彩手绘质感,可见水彩晕染和水痕纹理,
粗糙水彩纸底色,色彩柔和不饱和,暖色调怀旧氛围,
笔触自然随性,边缘柔和不锐利,光影柔和渐变过渡,
成熟稳重的成人向插画,非儿童绘本,非卡通萌系。
[镜头类型]。[场景描述]。[光影/氛围/色调]。
【禁止】不要卡通化,不要二次元动漫风格,不要3D渲染,不要油画厚涂,
不要赛璐璐平涂,不要照片级写实质感,不要Q版,不要大眼萌系,
不要塑料感,不要过度饱和的鲜艳色彩,不要锐利的数字绘画边缘,
不要人物,不要文字。
注意: 含角色的画格必须用「参考图生图」(5.2),禁止用文生图(会导致角色不一致、画风漂移)。
镜头类型词: 远景、中景、近景、特写 光影词: 夕阳金色光线、暖黄色台灯光、蓝紫色暮色、明亮阳光、柔和侧光
panels/ 目录,命名 e{集数}_p{格数}.jpg| 问题 | 处理方式 |
|---|---|
| 角色脸不一致 | 用 参考图生图 以角色三视图为参考重生成;prompt 中增加更详细的面部特征 |
| 画面有多余文字 | AI 生图偶尔会产生乱码文字,重生成或裁剪掉 |
| 手部畸形 | 特写手部时重生成 1-2 次,或改用中景避开手部 |
| 特定人物不像 | 增加具体特征描述,用 参考图生图 以参考图生成,多生成几次选最像的 |
| 男女距离不当 | prompt 中明确"保持普通朋友距离""隔桌对坐""一臂距离"等 |
panels/
e01_p01.jpg (第1集第1格)
e01_p02.jpg
e02_p01.jpg
...
characters/ (角色资产,三视图 + 风格参考图)
style_ref.jpg (风格参考图,强制)
男主_三视图.jpg
女主_三视图.jpg
二叔_工装版.jpg (多造型版本)
images/ (复用的已有图片,如 page01.jpg)
命名规则(强制):
e{集数两位}_p{格数两位}.jpg,如 e01_p01.jpgcharacters/style_ref.jpg(固定名){角色名}_三视图.jpg,如 女主_三视图.jpg、二叔_三视图.jpg{角色名}_{造型名}.jpg,如 二叔_工装版.jpg输出物: 连环画.html,单文件,引用相对路径的图片。
comic/
连环画.html
panels/ (新生成的画格)
images/ (复用的图片)
剧本.md (剧本备份)
完整模板见 templates/comic_template.html。核心组件:
画格结构(关键):
<div class="panel-cell"> <!-- 画格单元:图片在上,旁白栏在下 -->
<div class="panel"> <!-- 仅放图片 + 叠加气泡 -->
<img src="panels/e01_p01.jpg">
<div class="bubble speech pos-tr">对白</div>
</div>
<div class="narration-bar">旁白</div> <!-- 图片下方独立空间,绝不盖脸 -->
</div>
核心原则:旁白不叠加在图片上——旁白放在图片下方独立的 .narration-bar 中,彻底避免盖住人物脸部。只有对白气泡、心理活动气泡、音效字叠加在图片上,且必须放在四角。
宫格容器:
.grid-2x2:2列×2行,4格.grid-2x3:2列×3行,6格border: 3px solid #3a3025 做画格外框,格子间 1.5px 边框分隔气泡类型:
| 类型 | CSS类 | 样式 | 用途 | 位置限制 |
|---|---|---|---|---|
| 对白气泡 | .speech | 白底+黑边+圆角+尾巴 | 人物说话 | 仅四角 |
| 电话对白 | .speech-phone | 白底+虚线边+斜体 | 电话那头的声音 | 仅四角 |
| 心理活动 | .thought | 米白底+棕边+云朵形+小圆点尾巴 | 内心独白 | 仅四角 |
| 旁白栏 | .narration-bar | 米白底+顶部细线,图片下方独立栏 | 叙述/场景交代 | 图片下方,不叠加 |
| 音效字 | .sfx | 红色粗体+旋转+白边 | 拟声词 | 任意 |
叠加气泡位置(仅四角,禁止居中):
.pos-tl / .pos-tr / .pos-bl / .pos-br:四角max-width: 58%,避免占满画格气泡尾巴方向:
.pos-bl).pos-br)心理活动气泡的小圆点尾巴指向角色的头部。
回忆/闪回处理:
.flashback 类加 filter: sepia(0.15) contrast(0.95),视觉上区分时空手机端优化(强制):
生成HTML后,必须清理以下冗余内容:
data-page-node-id、data-* 等非标准属性(其他模型/平台可能自动添加).narration-bar(虽然CSS有:empty隐藏,但清理更干净)清理命令参考:
import re
html = re.sub(r'\s+data-page-node-id="[^"]*"', '', html)
html = re.sub(r'\s+data-[a-z-]+="[^"]*"', '', html)
对白气泡的尾巴要指向说话人:
.pos-bl).pos-br)心理活动气泡的小圆点尾巴指向角色的头部。
旁白栏(不叠加):
.narration-bar,有自己的空间,绝不盖脸叠加气泡(对白/心理活动):
max-width: 58%(桌面)/ 62%(手机),避免占满画格生图时的防盖脸配合:
<div class="panel-cell"><div class="panel">图片+气泡</div><div class="narration-bar">旁白</div></div>.narration-bar 中(图片下方),无叠加在图片上的旁白.narration.top/.narration.bottom 叠加在图片上)data-page-node-id、data-* 等非标准属性)目标: 将总文件夹压缩到目标大小以内(通常 20MB)。
完整脚本见 templates/compress.py。核心参数:
from PIL import Image
max_size = 1024 # 最长边最大像素
quality = 70 # JPEG 质量 (1-100)
效果参考: 54张原图(1536×2048,约61MB)→ 压缩后约 7.7MB
comic_publish/ 文件夹.jpg/.png,缩放+降质量后保存为 .jpg 到新文件夹(保持目录结构)characters/ 角色三视图与风格参考图通常不被 HTML 引用,不应复制到发布版(会增加文件大小)。检查 HTML 中所有 src="..." 引用,只保留这些文件。max_size(如 800)或 quality(如 60).jpg,如果源文件是 .png,HTML 中的引用也要改为 .jpg)| 平台要求 | 方案 |
|---|---|
| 接受文件夹/ZIP | 直接用 comic_publish/ 文件夹 |
| 要求单文件 HTML | 将图片转 base64 内嵌(文件会变大,需更激进压缩) |
| 要求 PDF | 用无头浏览器打印为 PDF(排版固定,但文件可能较大) |
常见修改类型与处理:
| 修改需求 | 处理方式 |
|---|---|
| 某格画面不满意 | 重新生成该格图片,替换文件,HTML 不用改 |
| 某句台词要改 | 直接编辑 HTML 中对应气泡的文字 |
| 某集太重复/太挤 | 减少画格数(如6格→4格),调整 grid 类,重新排列 |
| 气泡位置挡住脸 | 调整 .pos-xx 类,或微调 top/left 值 |
| 角色不像 | 增加特征描述重生成,或用 参考图生图 参考已有角色图 |
修改后必须:
comic_publish/ 中的 HTML(如果改了 HTML)项目根目录/
├── 连环画.html # 主文件(浏览器打开即可阅读)
├── 剧本.md # 完整剧本(每集每格的画面+文字)
├── characters/ # 角色资产(风格参考图+三视图)
│ ├── style_ref.jpg # 风格参考图(强制,所有图的画风锚点)
│ ├── 男主_三视图.jpg
│ ├── 女主_三视图.jpg
│ └── ...
├── panels/ # 新生成的画格图片
│ ├── e01_p01.jpg
│ ├── e01_p02.jpg
│ └── ...
├── images/ # 复用的已有图片(可选)
│ ├── page01.jpg
│ └── ...
└── comic_publish/ # 压缩发布版(自动生成)
├── 连环画.html
├── panels/
└── images/
| 阶段 | 耗时 | 说明 |
|---|---|---|
| 需求确认+剧本 | 10-15分钟 | 取决于故事长度 |
| 角色资产设定 | 5-10分钟 | 每个主要角色1张三视图,2-3个角色;含风格参考图确认 |
| 批量生图(50格) | 25-35分钟 | 每批4张,约12-13批,含下载;含角色的用参考图生图参考生图 |
| HTML组装 | 10-15分钟 | 用模板填充 |
| 压缩+验证 | 5分钟 | |
| 迭代修改 | 按需 | 每次修改5-10分钟 |
总计: 约 1.5-2 小时完成一个 10集50格的连环画项目(含角色资产)
角色名_三视图.jpg,禁止用prompt作文件名(如"写实水彩风格_角色设定三视图_....png"),太长且无意义。data-page-node-id、data-*等非标准属性(其他模型/平台可能自动添加),保持HTML干净。characters/角色三视图与风格参考图通常不被HTML引用,不应复制到发布版(会增加文件大小)。只保留HTML中实际src="..."引用的图片。.thought的::before/::after尾巴必须覆盖pos-tl/tr/bl/br四个位置,否则上方气泡没有尾巴。