360 Secure SkillHub
360 安全技能中心

往事漫画 · 故事连环画生成器

面向故事、小说或回忆录,提供从需求确认、剧本拆分、风格参考图与角色三视图、双重参考生图、HTML 宫格排版到压缩发布的 8 阶段流程,强调角色一致性和手机端可读性。

piprot
piprot
热度 14.85
最近更新 2026-09-11 20:57:37
分类:创作依赖:代码执行 / 读写文件 / 内部调用大模型 / 第三方 API应用场景:故事创作 / 图像生成 / 工作流 / 模板

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add story-comic-creator
Metadata
name
story-comic-creator
description
将故事/小说/回忆录等文字内容制作成专业的连环画/漫画(HTML格式),支持多宫格布局、气泡式对白、心理活动气泡、旁白框、音效字、分集结构。涵盖从剧本创作、角色设定、批量生图、HTML组装到压缩发布的完整工作流。适用于"把我的故事做成漫画""生成连环画""做个小人书""故事转漫画"等需求。
version
1.5.0
author
沉淀自《我藏了整个青春的人》《岁月不忘,我那位温柔又执拗的二叔》连环画项目
display_name
往事漫画 · 故事连环画生成器
display_name_en
Story Comic Creator
description_zh
将故事、小说或回忆录做成专业连环画(单文件 HTML + 图片)。内置 8 阶段工作流、多宫格布局、气泡对白、旁白栏、写实水彩画风锚定与角色一致性控制。
description_en
Turn stories, novels, or memoirs into professional comic strips (single-file HTML + images). Ships an 8-stage workflow, multi-panel layouts, speech/thought bubbles, narration bars, and watercolor style anchoring with character consistency control.
category
内容创作
update
v1.5 新增画风控制体系:风格参考图(强制第一步)、固定风格锚定描述块、明确负面约束、所有含角色画格用参考图生图双重锚定

故事连环画生成工作流

一、定位与适用场景

将用户提供的故事文本(回忆录、小说、散文、真实经历等)转化为可在浏览器中阅读的专业连环画/漫画。最终产物为单文件 HTML + 图片文件夹,支持压缩后发布到各平台。

适用: 个人故事漫画、回忆录连环画、小说改编漫画、短篇故事漫画 不适用: 长篇连载(>20集)、商用专业漫画(需要手绘级精度)、动态漫画/视频

二、完整工作流(8个阶段)

需求确认 → 剧本创作 → 角色资产设定 → 角色锚定 → 批量生图 → HTML组装 → 压缩发布 → 迭代修改

强制门禁:阶段3「角色资产设定」必须在批量生图之前完成。未生成角色立绘+三视图+风格参考图,不得进入批量生图阶段。

门禁总览(每个阶段结束必须逐项检查,全部通过才进入下一阶段):

阶段 检查重点 不通过的后果
1.需求确认 参数齐全、用户确认 后续返工
2.剧本创作 集数/格数/文字量/距离规则 生图出错、画面不对
3.角色资产 三视图完整、风格参考图确认、画风统一、无畸形 全本角色不一致
4.角色锚定 描述与资产对应、多版本标注 生图角色漂移
5.批量生图 全部生成、质量合格、角色一致、画风锚定 HTML组装缺图/错图
6.HTML组装 结构正确、无断链、布局合规 显示异常、盖脸
7.压缩发布 大小达标、画质可接受、路径正确、引用干净 无法发布/显示异常
8.迭代修改 修改到位、同步发布版、重新验证 旧问题残留

阶段1:需求确认

必须确认的参数:

  1. 总集数:建议 6-12 集,每集 4-6 格画。总画格数控制在 30-60 格。
  2. 宫格布局:每集用 2×2(4格)或 2×3(6格)。避免 3×3(9格)因为单格太小文字放不下。
  3. 画风:往事/回忆录类默认写实水彩风(成熟稳重、非卡通萌系);其他故事可选日系水彩治愈风、国风水墨、美式漫画、像素风等。
  4. 文字元素:是否需要气泡对白、心理活动、旁白框、音效字(默认全开)。
  5. 发布限制:是否有文件大小限制(如 20MB),决定压缩参数。

用户说"随便""你来定"时的默认值:

  • 10集,每集 4-6 格,总计约 50 格
  • 写实水彩风,暖色调(往事/回忆录类)
  • 2×2 和 2×3 宫格交替
  • 全部文字元素开启
  • 压缩到 20MB 以内

✅ 阶段1检查门禁(全部通过才进入阶段2)

  • 总集数已确认(6-12集)
  • 每集格数已确认(4-6格),总格数在30-60之间
  • 宫格布局已确认(2×2/2×3,无3×3)
  • 画风已确认(往事类默认写实水彩风)
  • 文字元素已确认(对白/心理活动/旁白/音效是否全开)
  • 发布大小限制已确认(如20MB)
  • 以上参数已向用户复述并获得确认

阶段2:剧本创作

输出物: 剧本.md,包含每集每格的:画面描述、对白、心理活动、旁白、音效。

2.1 拆分故事为集

通读全文,按叙事节奏拆成 6-12 集。每集聚焦一个核心场景或情绪转折。

拆分原则:

  • 时间/空间切换 → 新的一集
  • 情绪转折点 → 新的一集
  • 每集有独立小标题(2-6字)
  • 避免某集内容过多(超过6格就拆成两集)

2.2 每集拆分为画格

每集 4-6 格,按"起承转合"或时间顺序排列。

画格类型分配(每集建议):

  • 1格 远景/ establishing shot(交代场景)
  • 2-3格 中景(人物动作、互动)
  • 1-2格 近景/特写(表情、关键物品、情绪)

每格必须写清:

格X(镜头类型:远景/中景/近景/特写):
- 画面:(人物、动作、场景、镜头、光影。双人画面必须写明距离)
- 对白:(谁说的,内容)—— 可选
- 心理活动:(谁的内心独白)—— 可选
- 旁白:(叙述性文字)—— 可选
- 音效:(如"铃——""砰")—— 可选

镜头类型(强制标注,每格必须写明):

类型 用途 人物占比 文字建议
远景 / establishing 交代场景、时空 人物<30% 旁白为主
中景 人物动作、互动 人物30%-70% 对白+旁白
近景 表情、情绪 人物70%-90% 心理活动+对白
特写 关键物品、脸部细节 人物>90% 仅旁白栏,不放叠加气泡

2.3 文字量控制

  • 对白气泡:每格最多 15 字,超过就拆成两格或简化
  • 心理活动气泡:每格最多 20 字
  • 旁白框:每格最多 30 字,长旁白拆到相邻格
  • 每格文字元素总数:不超过 2 个(如对白+旁白可以,对白+心理活动+旁白就太挤)

2.4 人物距离判定规则(强制)

在设计每格画面时,必须根据原文判断人物之间的关系和距离,写入剧本的"画面"描述中。

判定流程:

  1. 读原文定关系:通读故事,明确每对人物的关系(恋人/夫妻/朋友/同事/亲人/陌生人)
  2. 按关系定距离:
    • 恋人/夫妻:可以靠近、牵手、拥抱、并肩走(距离<30cm)
    • 亲人(家人):可以靠近、并肩、有肢体接触(距离<50cm)
    • 朋友/同事:保持社交距离,隔桌对坐、一臂距离、并肩走但不触碰(距离≥50cm),禁止脸贴脸、额头相抵、牵手、拥抱等亲密动作
    • 陌生人:保持更远距离(距离≥1m)
  3. 按原文场景微调:如果原文明确描述了某个肢体动作(如"他拍了拍我的肩""我们拥抱了"),按原文执行;如果原文没有描述,按关系默认距离执行
  4. 写入剧本:每格的"画面"描述中必须包含距离说明,如"两人隔桌对坐""两人保持一臂距离""两人并肩走但无身体接触"

常见错误(必须避免):

  • 朋友关系画成脸贴脸、额头相抵 → 应改为隔桌/隔物对坐
  • 朋友关系画成牵手、拥抱 → 应改为无身体接触
  • 双人近景特写两人面部几乎重叠 → 应改为中景,保持距离
  • 用"面对面说话"默认画成亲密距离 → 必须加"隔桌""一臂距离"等限定词

✅ 阶段2检查门禁(全部通过才进入阶段3)

  • 剧本.md 已生成,集数与阶段1确认的一致
  • 每集格数符合4-6格,每集有独立小标题(2-6字)
  • 每格都标注了镜头类型(远景/中景/近景/特写)
  • 每格都有画面描述(人物、动作、场景、镜头)
  • 每格对白≤15字,心理活动≤20字,旁白≤30字
  • 每格文字元素≤2个(无对白+心理+旁白全堆的情况)
  • 每集画格类型分配合理(1远景+2-3中景+1-2近景)
  • 人物距离规则已写入每格画面描述(朋友关系明确"隔桌/一臂距离")
  • 特写镜头已标注"不放叠加气泡,改用旁白栏"
  • 无超过6格的集(超过则已拆分)
  • 剧本已通读,叙事节奏连贯,无遗漏关键情节

阶段3:角色资产设定(强制门禁)

目标: 为每个主要角色生成标准化的视觉资产,作为后续所有画格的角色一致性锚点。同时确立全本统一的画风。

输出物: characters/ 文件夹,每个主要角色一张「立绘+三视图」设定图;style_ref.jpg 风格参考图。

3.1 风格参考图生成(强制第一步)

在生成任何角色三视图之前,必须先生成一张纯场景的风格参考图(无人物),确认画风符合预期后,再用它作为风格参考生成所有角色三视图和画格。

为什么要做: 纯文字描述"写实水彩风"太笼统,不同模型理解差异大。先生成一张场景图确认画风,再用「参考图生图」以这张图为风格参考生成后续所有图,能确保全本画风高度统一。

风格参考图 prompt(固定模板,直接复制使用):

写实水彩插画风格,传统水彩手绘质感,可见水彩晕染和水痕纹理,
粗糙水彩纸底色,色彩柔和不饱和,暖色调怀旧氛围,
笔触自然随性,边缘柔和不锐利,光影柔和渐变过渡,
类似宫崎骏动画背景的水彩质感,类似新海诚动画背景美术风格,
成熟稳重的成人向插画,非儿童绘本,非卡通萌系。

夏末午后的老校园梧桐大道,阳光透过树叶在地面洒下斑驳光斑,
远处有红砖教学楼,空无一人,宁静怀旧的氛围。
暖金色光线,柔和侧光,远景构图。

不要卡通化,不要二次元动漫风格,不要3D渲染,不要油画厚涂,
不要赛璐璐平涂,不要照片级写实质感,不要Q版,不要大眼萌系,
不要塑料感,不要过度饱和的鲜艳色彩,不要锐利的数字绘画边缘,
不要人物,不要文字。

生成后必须目视确认:

  • 水彩晕染质感明显(可见水痕、纸纹)
  • 色彩柔和不饱和(暖色调,不鲜艳)
  • 边缘柔和(非锐利数字绘画)
  • 非卡通、非3D、非照片写实
  • 整体氛围符合"往事回忆"的怀旧感

确认通过后保存为 characters/style_ref.jpg,后续所有角色三视图和画格都用它作为风格参考。

如果风格不对: 调整 prompt 中的风格描述词(如增加"透明水彩""湿画法""干笔触感"等),重新生成,直到画风符合预期。不要在风格未确认时就批量生成角色三视图,否则会全部返工。

3.2 风格锚定描述块(每张图prompt必须包含)

以下描述块是固定的风格锚定,每张图(角色三视图、画格)的 prompt 开头必须完整包含,不得删减或改写:

【风格】写实水彩插画风格,传统水彩手绘质感,可见水彩晕染和水痕纹理,
粗糙水彩纸底色,色彩柔和不饱和,暖色调怀旧氛围,
笔触自然随性,边缘柔和不锐利,光影柔和渐变过渡,
成熟稳重的成人向插画,非儿童绘本,非卡通萌系。

以下负面约束是固定的,每张图 prompt 结尾必须完整包含:

【禁止】不要卡通化,不要二次元动漫风格,不要3D渲染,不要油画厚涂,
不要赛璐璐平涂,不要照片级写实质感,不要Q版,不要大眼萌系,
不要塑料感,不要过度饱和的鲜艳色彩,不要锐利的数字绘画边缘。

使用方式: 每张图的 prompt = 【风格锚定块】+ 【画面描述】+ 【角色描述】+ 【光影氛围】+ 【负面约束块】。风格锚定块和负面约束块固定不变,只改中间的画面/角色/光影描述。

3.3 角色资产清单

为每个出场超过3格的角色生成资产:

  • 主角:必须生成立绘+三视图
  • 重要配角:建议生成立绘+三视图
  • 路人/群演:不需要,用通用描述即可

3.4 三视图生成规范

用「参考图生图」能力生成,以 characters/style_ref.jpg 风格参考图为参考,单张正方形,边长取所在平台支持的最高值(如 1536×1536;部分平台可到 2048×2048),prompt 模板:

【风格】写实水彩插画风格,传统水彩手绘质感,可见水彩晕染和水痕纹理,
粗糙水彩纸底色,色彩柔和不饱和,暖色调怀旧氛围,
笔触自然随性,边缘柔和不锐利,光影柔和渐变过渡,
成熟稳重的成人向插画,非儿童绘本,非卡通萌系。

角色设定三视图,[角色标准化外貌描述]。
三视图:正面、侧面、背面。穿[标准服装]。
身高约[X]cm,体型[描述,自然不过度夸张]。
背景纯白色,角色全身站立,双手自然下垂。

【禁止】不要卡通化,不要二次元动漫风格,不要3D渲染,不要油画厚涂,
不要赛璐璐平涂,不要照片级写实质感,不要Q版,不要大眼萌系,
不要塑料感,不要过度饱和的鲜艳色彩,不要锐利的数字绘画边缘。

参考图: 必须传入 characters/style_ref.jpg 作为「参考图」,确保画风与风格参考图一致。

三视图必须包含:

  • 正面(确认脸型、五官、发型正面)
  • 侧面(确认鼻梁、嘴唇、发型侧面)
  • 背面(确认发型背面、服装背面)

多角色画风统一(强制): 所有角色三视图都必须用「参考图生图」以 characters/style_ref.jpg 风格参考图为参考生成。第一个角色的三视图生成后,后续角色的三视图可以同时传入 style_ref.jpg + 第一个角色三视图作为双重风格参考,确保所有角色画风、笔触、色彩完全统一。禁止任何角色单独用 文生图 生成(会导致画风漂移)。

3.5 多造型/多年龄版本

如果角色在故事中有明显造型变化(如学生→职场、夏装→冬装、年轻→中年),每个主要造型都要生成一套三视图。在文件名中标注版本,如 二叔_工装版.jpg、二叔_休闲版.jpg。

3.6 资产确认

生成后必须目视检查:

  • 三视图是否是同一个人物(脸型、发型一致)
  • 服装是否符合角色设定
  • 比例是否正常(无畸形)
  • 画风是否与目标画风一致

确认通过后,将资产图保存到 characters/ 目录,后续生图时作为参考。

✅ 阶段3检查门禁(全部通过才进入阶段4)

  • 风格参考图已生成并目视确认(水彩晕染明显、色彩柔和不饱和、非卡通/3D/照片写实,保存为 characters/style_ref.jpg)
  • 所有出场超过3格的角色都已生成三视图
  • 每张三视图包含正面、侧面、背面三个视角
  • 三视图是同一个人物(脸型、发型、五官一致)
  • 服装符合角色设定,无穿帮
  • 比例正常,无畸形(手、脚、身体比例)
  • 所有角色三视图都用 style_ref.jpg 作为风格参考生成(画风、笔触、色彩统一)
  • 无卡通化/萌系/Q版(往事类必须写实水彩风)
  • 多造型/多年龄版本已分别生成(如学生版+职场版)
  • 资产图已保存到 characters/ 目录,命名规范(角色名_三视图.jpg,无用prompt作文件名)
  • 已目视检查每张资产图,确认合格

阶段4:角色锚定

目标: 基于角色资产,为每个角色写一段标准化外貌描述,在所有生图 prompt 中复用。

4.1 角色设定表

女主(我):20多岁中国女性,黑色中长发到肩下,发尾微卷自然垂落,偏分刘海,
清秀眉眼,眼睛大小适中,鼻梁小巧挺直,嘴唇饱满自然,脸型鹅蛋脸,气质温和大方。
标准服装:浅米色休闲夹克+白色圆领卫衣+蓝色直筒牛仔裤+白色休闲运动鞋。
身高约165cm,体型匀称自然。

男主(二叔):20多岁北方男性,黑色短发清爽偏分,面容清俊,眉眼温和,
鼻梁挺直,嘴唇薄,气质沉静内敛。
标准服装:蓝色工装夹克+白色T恤+深色长裤+黑色皮鞋。
身高约180cm,体型偏瘦,肩膀略窄。

关键规则:

  • 每个角色的发型、发色、脸型、服装在 prompt 中必须完全一致
  • 描述必须与三视图资产对应,不要凭空添加资产中没有的特征
  • 年龄/造型变化时,明确标注版本,并使用对应版本的三视图作为参考

4.2 复用已有画面

如果项目中已有生成好的图片,可以直接复用为关键画格。复用的图片要检查角色是否与新设定一致,不一致的需要重生成。

✅ 阶段4检查门禁(全部通过才进入阶段5)

  • 每个主要角色都有标准化外貌描述(发型、发色、脸型、服装、身高、体型)
  • 描述与三视图资产完全对应(无凭空添加资产中没有的特征)
  • 角色描述中无"眼睛偏大"等萌系词汇(用"眼睛大小适中")
  • 多造型/多年龄版本已明确标注,并关联对应版本的三视图
  • 配角也有简短锚定描述
  • 复用的已有图片已检查角色一致性,不一致的已标记需重生成
  • 角色设定表已整理完毕,可直接复制到生图prompt中

阶段5:批量生图

工具: 文生图 用于无角色的场景/远景;参考图生图 用于含角色的画格,以角色三视图 + 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(画格)。

5.1 生图工具选择

画格类型 推荐工具 说明
含主要角色的中近景 参考图生图 传入 style_ref.jpg + 角色三视图作为参考图,确保画风与脸型/发型/服装一致
含主要角色的远景 文生图 远景角色细节不明显,文生图即可(仍带风格锚定块+负面约束)
纯场景/空镜 文生图 无角色,不需要参考
物品/特写 文生图 无角色

5.2 参考图生图 Prompt 模板

【风格】写实水彩插画风格,传统水彩手绘质感,可见水彩晕染和水痕纹理,
粗糙水彩纸底色,色彩柔和不饱和,暖色调怀旧氛围,
笔触自然随性,边缘柔和不锐利,光影柔和渐变过渡,
成熟稳重的成人向插画,非儿童绘本,非卡通萌系。

[镜头类型]。[场景描述]。[角色标准化外貌描述],[角色动作/表情]。
[光影/氛围/色调]。

【禁止】不要卡通化,不要二次元动漫风格,不要3D渲染,不要油画厚涂,
不要赛璐璐平涂,不要照片级写实质感,不要Q版,不要大眼萌系,
不要塑料感,不要过度饱和的鲜艳色彩,不要锐利的数字绘画边缘。

参考图(强制传入两张):

  1. characters/style_ref.jpg(风格参考图,确保画风统一)
  2. characters/角色_三视图.jpg(角色参考图,确保角色一致)

关键: 参考图+风格锚定描述块+角色描述,三重锚定,画风和角色一致性最好。

5.3 文生图 Prompt 模板(仅用于纯场景/远景/物品,无角色)

【风格】写实水彩插画风格,传统水彩手绘质感,可见水彩晕染和水痕纹理,
粗糙水彩纸底色,色彩柔和不饱和,暖色调怀旧氛围,
笔触自然随性,边缘柔和不锐利,光影柔和渐变过渡,
成熟稳重的成人向插画,非儿童绘本,非卡通萌系。

[镜头类型]。[场景描述]。[光影/氛围/色调]。

【禁止】不要卡通化,不要二次元动漫风格,不要3D渲染,不要油画厚涂,
不要赛璐璐平涂,不要照片级写实质感,不要Q版,不要大眼萌系,
不要塑料感,不要过度饱和的鲜艳色彩,不要锐利的数字绘画边缘,
不要人物,不要文字。

注意: 含角色的画格必须用「参考图生图」(5.2),禁止用文生图(会导致角色不一致、画风漂移)。

镜头类型词: 远景、中景、近景、特写 光影词: 夕阳金色光线、暖黄色台灯光、蓝紫色暮色、明亮阳光、柔和侧光

5.4 生图策略

  1. 最小验证(强制):批量生成前,先生成第1集的4格画格(含角色三视图参考),目视检查:画风是否符合预期、角色是否与三视图一致、画面是否符合剧本。确认无误后再批量生成剩余画格。避免一次性生成50格后发现画风不对全部返工。
  2. 按集分批:每批 4 张,优先生成同一集的画格(方便检查一致性)
  3. 先关键后补充:先生成每集的核心画格(特写、关键动作),再生成远景/过渡格
  4. 生成与下载分离:专心连续生成所有画格,不要每批穿插下载(容易超时拖慢节奏)。全部生成完后,用一个批量下载脚本一次性下载所有图片到 panels/ 目录,命名 e{集数}_p{格数}.jpg
  5. 图片格式(强制):源文件统一用 JPG 格式(quality=95),不要用 PNG。PNG 每张约 3MB,50格就是 150MB,严重浪费存储空间和下载时间。如果生图工具返回的是 PNG,下载后立即用 PIL 转为 JPG(quality=95)。
  6. 质量检查:全部下载后目视检查——角色是否与三视图一致、画面是否符合剧本、有无畸形/穿帮
  7. 不一致重生成:发现角色脸/发型漂移,用「参考图生图」以三视图为参考重生成该格

5.5 常见问题与处理

问题 处理方式
角色脸不一致 用 参考图生图 以角色三视图为参考重生成;prompt 中增加更详细的面部特征
画面有多余文字 AI 生图偶尔会产生乱码文字,重生成或裁剪掉
手部畸形 特写手部时重生成 1-2 次,或改用中景避开手部
特定人物不像 增加具体特征描述,用 参考图生图 以参考图生成,多生成几次选最像的
男女距离不当 prompt 中明确"保持普通朋友距离""隔桌对坐""一臂距离"等

5.6 文件命名规范

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.jpg
  • 风格参考图:characters/style_ref.jpg(固定名)
  • 角色三视图:{角色名}_三视图.jpg,如 女主_三视图.jpg、二叔_三视图.jpg
  • 多造型版本:{角色名}_{造型名}.jpg,如 二叔_工装版.jpg
  • 禁止用 prompt 作为文件名(如"写实水彩风格_角色设定三视图_....png"),太长且无意义

✅ 阶段5检查门禁(全部通过才进入阶段6)

  • 最小验证已完成:第1集4格已生成并目视确认(画风与style_ref.jpg一致、角色一致性、画面符合剧本)
  • 所有画格已全部生成(数量=剧本总格数),无遗漏
  • 含角色的画格都用了「参考图生图」,传入 style_ref.jpg + 角色三视图作为双重参考
  • 纯场景/远景/物品画格使用了 文生图(含风格锚定块+负面约束)
  • 每张图prompt都包含风格锚定块和负面约束块(无遗漏)
  • 所有图片为 JPG 格式(无 PNG 源文件,PNG 已转 JPG quality=95)
  • 所有图片已下载到 panels/ 目录,命名规范(e{集数}_p{格数}.jpg)
  • 角色三视图命名规范(角色名_三视图.jpg,无用prompt作文件名)
  • 逐张目视检查:画风与 style_ref.jpg 一致(水彩晕染、色彩柔和、边缘柔和)
  • 逐张目视检查:角色脸型/发型/服装与三视图一致
  • 逐张目视检查:画面内容符合剧本描述
  • 逐张目视检查:无手部畸形、无多余乱码文字、无穿帮
  • 逐张目视检查:人物距离符合关系设定(朋友关系无亲密动作)
  • 逐张目视检查:人物脸部在画面中心区域,四角留空给气泡
  • 无画风漂移(无卡通化、无3D渲染、无照片写实、无油画厚涂)
  • 角色不一致/画面不合格/画风漂移的画格已用「参考图生图」重生成
  • 重生成的画格已重新检查合格

阶段6:HTML 组装

输出物: 连环画.html,单文件,引用相对路径的图片。

6.1 文件结构

comic/
  连环画.html
  panels/       (新生成的画格)
  images/       (复用的图片)
  剧本.md       (剧本备份)

6.2 CSS 核心组件

完整模板见 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:四角
  • 禁止用居中位置(pos-tc/pos-bc)放气泡,因为居中最容易盖住脸
  • 气泡 max-width: 58%,避免占满画格

气泡尾巴方向:

  • 说话人在画面左侧 → 尾巴在左下角 (.pos-bl)
  • 说话人在画面右侧 → 尾巴在右下角 (.pos-br)
  • 说话人在画面上方 → 尾巴在左上角/右上角

心理活动气泡的小圆点尾巴指向角色的头部。

回忆/闪回处理:

  • .flashback 类加 filter: sepia(0.15) contrast(0.95),视觉上区分时空

手机端优化(强制):

  • 600px以下:气泡字号10px,旁白栏10.5px,气泡max-width 62%
  • 380px以下:气泡字号9px,进一步压缩padding
  • 旁白栏min-height确保不会因文字少而塌陷

6.2.1 HTML清理(强制)

生成HTML后,必须清理以下冗余内容:

  1. 冗余属性:删除 data-page-node-id、data-* 等非标准属性(其他模型/平台可能自动添加)
  2. 空元素:删除空的 .narration-bar(虽然CSS有:empty隐藏,但清理更干净)
  3. 注释清理:删除开发用注释,保留集数/格数标注注释
  4. 格式统一:缩进统一为2空格,标签闭合规范

清理命令参考:

import re
html = re.sub(r'\s+data-page-node-id="[^"]*"', '', html)
html = re.sub(r'\s+data-[a-z-]+="[^"]*"', '', html)

6.3 气泡尾巴方向

对白气泡的尾巴要指向说话人:

  • 说话人在画面左侧 → 尾巴在左下角 (.pos-bl)
  • 说话人在画面右侧 → 尾巴在右下角 (.pos-br)
  • 说话人在画面上方 → 尾巴在左上角/右上角

心理活动气泡的小圆点尾巴指向角色的头部。

6.4 文字可读性与防盖脸规则

旁白栏(不叠加):

  • 旁白放在图片下方独立的 .narration-bar,有自己的空间,绝不盖脸
  • 旁白栏背景用不透明米白色,确保文字清晰
  • 字号:桌面12px,手机10.5px,超小屏9.5px

叠加气泡(对白/心理活动):

  • 气泡背景用不透明/近不透明白色,确保文字在任何画面上都清晰
  • 字号:桌面12px,手机10px,超小屏9px
  • 气泡 max-width: 58%(桌面)/ 62%(手机),避免占满画格
  • 仅用四角位置(pos-tl/tr/bl/br),禁止居中——居中最容易盖脸
  • 气泡padding:桌面6px×10px,手机4px×7px,紧凑不臃肿

生图时的防盖脸配合:

  • 生图prompt中尽量让人物脸部在画面中心区域,四角留空给气泡
  • 特写镜头(脸部占比大)尽量不放叠加气泡,改用旁白栏

✅ 阶段6检查门禁(全部通过才进入阶段7)

  • 连环画.html 已生成,集数/格数与剧本一致
  • 画格结构正确:<div class="panel-cell"><div class="panel">图片+气泡</div><div class="narration-bar">旁白</div></div>
  • 旁白全部在 .narration-bar 中(图片下方),无叠加在图片上的旁白
  • 对白/心理活动气泡仅用四角位置(pos-tl/tr/bl/br),无居中位置
  • 气泡尾巴指向说话人(说话人在左→尾巴左下,在右→尾巴右下)
  • 所有图片引用路径正确(相对路径 panels/eXX_pXX.jpg),无断链
  • 宫格布局正确(2×2/2×3),无3×3
  • 全屏格(panel-full)正确跨列
  • 回忆场景已加 flashback 滤镜
  • 在浏览器中打开HTML,逐集检查:无图片缺失、无布局错乱、无文字溢出
  • 在手机尺寸(600px以下)下检查:气泡字号可读、旁白栏不塌陷、无盖脸
  • 无旧格式残留(无 .narration.top/.narration.bottom 叠加在图片上)
  • HTML已清理冗余属性(无 data-page-node-id、data-* 等非标准属性)
  • 心理活动气泡四角尾巴样式完整(pos-tl/tr/bl/br 都有 ::before/::after 尾巴)

阶段7:压缩发布

目标: 将总文件夹压缩到目标大小以内(通常 20MB)。

7.1 压缩脚本

完整脚本见 templates/compress.py。核心参数:

from PIL import Image
max_size = 1024      # 最长边最大像素
quality = 70          # JPEG 质量 (1-100)

效果参考: 54张原图(1536×2048,约61MB)→ 压缩后约 7.7MB

7.2 压缩流程

  1. 新建 comic_publish/ 文件夹
  2. 遍历原文件夹所有 .jpg/.png,缩放+降质量后保存为 .jpg 到新文件夹(保持目录结构)
  3. 复制 HTML 文件到新文件夹
  4. 清理未引用文件(强制):发布版中只保留 HTML 中实际引用的图片。characters/ 角色三视图与风格参考图通常不被 HTML 引用,不应复制到发布版(会增加文件大小)。检查 HTML 中所有 src="..." 引用,只保留这些文件。
  5. 检查总大小,如仍超限则降低 max_size(如 800)或 quality(如 60)
  6. 验证 HTML 中图片引用路径正确(发布版统一为 .jpg,如果源文件是 .png,HTML 中的引用也要改为 .jpg)

7.3 发布格式选择

平台要求 方案
接受文件夹/ZIP 直接用 comic_publish/ 文件夹
要求单文件 HTML 将图片转 base64 内嵌(文件会变大,需更激进压缩)
要求 PDF 用无头浏览器打印为 PDF(排版固定,但文件可能较大)

✅ 阶段7检查门禁(全部通过才进入阶段8/交付)

  • comic_publish/ 文件夹已生成,包含 HTML + panels/ + images/
  • 总文件夹大小在目标限制以内(通常≤20MB)
  • 压缩参数合理(max_size=1024, quality=70),画质可接受
  • 如仍超限,已降低 max_size(如800)或 quality(如60)后重新压缩
  • 发布版 HTML 中图片引用路径正确(相对路径)
  • 在浏览器中打开发布版 HTML,确认所有图片正常显示
  • 发布版与源版内容一致(无遗漏画格、无文字差异)
  • 文件命名规范,可直接交付用户
  • 已确认发布平台的具体要求(单文件/文件夹/PDF),格式匹配
  • 发布版只包含HTML引用的文件(无多余的 characters/ 文件夹,无未引用的图片)
  • 发布版图片统一为.jpg格式(HTML中引用路径与实际文件格式一致)

阶段8:迭代修改

常见修改类型与处理:

修改需求 处理方式
某格画面不满意 重新生成该格图片,替换文件,HTML 不用改
某句台词要改 直接编辑 HTML 中对应气泡的文字
某集太重复/太挤 减少画格数(如6格→4格),调整 grid 类,重新排列
气泡位置挡住脸 调整 .pos-xx 类,或微调 top/left 值
角色不像 增加特征描述重生成,或用 参考图生图 参考已有角色图

修改后必须:

  1. 同步更新 comic_publish/ 中的 HTML(如果改了 HTML)
  2. 重新压缩替换的图片(如果改了图片)
  3. 重新验证总大小

✅ 阶段8检查门禁(全部通过才交付)

  • 用户指出的问题已准确定位(哪一集、哪一格、什么问题)
  • 修改已执行到位(重生成图片/改文字/调布局/减格数)
  • 修改后的画格已目视检查,确认问题已解决
  • 如重生成了图片,角色与三视图一致,无新问题
  • 如改了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格的连环画项目(含角色资产)


五、关键经验与踩坑记录

  1. 不要用 AI 直接生成带文字的漫画——中文字会乱码。所有文字用 HTML/CSS 叠加,图片只负责画面。
  2. 角色一致性必须先做三视图资产——这是强制门禁。纯靠 prompt 文字描述会导致脸型、发型、体型在不同格子里漂移。先生成角色立绘+三视图,后续含角色的画格用「参考图生图」以三视图为参考生成。
  3. 多角色三视图必须画风统一——第一个角色用 文生图 生成后,后续角色必须用 参考图生图 以第一个角色的三视图为风格参考生成,否则各角色画风/笔触/色彩会漂移(一个写实一个卡通)。
  4. 往事/回忆录类用写实水彩风,不要卡通化——prompt 中必须写"写实水彩风格""不要卡通化""不要大眼萌系""不要Q版",角色描述中避免"眼睛偏大"等萌系词汇,用"眼睛大小适中"。
  5. 男女关系要在 prompt 中明确距离——如果只是朋友关系,必须写"隔桌对坐""一臂距离""没有身体接触",否则 AI 会默认画成亲密关系。
  6. 宫格不要超过 2×3——3列的格子在手机上太小,文字和细节都看不清。
  7. 每格文字不超过2个元素——对白+心理活动+旁白全堆在一格里会非常乱。
  8. 生成与下载分离——不要每批穿插下载(容易超时拖慢节奏),专心连续生成完所有画格后,用批量脚本一次性下载。
  9. 压缩用 1024px + quality 70——屏幕阅读完全够用,50格约 8MB,远低于 20MB 限制。
  10. 回忆场景加滤镜——用 sepia 滤镜视觉上区分过去和现在,读者一眼就能看出时空切换。
  11. 气泡尾巴指向说话人——这是漫画的基本语法,尾巴方向错了会很违和。
  12. 旁白绝不叠加在图片上——旁白放在图片下方独立的文字栏,彻底避免盖住人物脸部(尤其是手机端)。只有对白/心理活动气泡叠加,且必须放在四角,禁止居中。
  13. 生图时让脸在中心、四角留空——prompt中尽量让人物脸部在画面中心区域,四角留空给叠加气泡。脸部特写镜头尽量不放叠加气泡,改用旁白栏。
  14. 批量生图前先做最小验证——先生成第1集4格,确认画风、角色一致性、画面符合剧本后再批量生成剩余画格。避免一次性生成50格后发现画风不对全部返工。
  15. 源文件用JPG不用PNG——PNG每张约3MB,50格就是150MB,严重浪费存储空间和下载时间。生图返回PNG时下载后立即转JPG(quality=95)。
  16. 文件命名要规范——角色三视图命名为角色名_三视图.jpg,禁止用prompt作文件名(如"写实水彩风格_角色设定三视图_....png"),太长且无意义。
  17. HTML生成后清理冗余属性——删除data-page-node-id、data-*等非标准属性(其他模型/平台可能自动添加),保持HTML干净。
  18. 发布版只复制引用文件——characters/角色三视图与风格参考图通常不被HTML引用,不应复制到发布版(会增加文件大小)。只保留HTML中实际src="..."引用的图片。
  19. 心理活动气泡四角尾巴要完整——CSS中.thought的::before/::after尾巴必须覆盖pos-tl/tr/bl/br四个位置,否则上方气泡没有尾巴。
  20. 画风不能只靠"写实水彩风"五个字——不同模型对"写实水彩风"理解差异大,必须用三层锚定:①固定的风格锚定描述块(水彩晕染、纸纹、柔和色彩、边缘柔和等具体描述)②明确的负面约束(不要卡通/3D/油画/赛璐璐/照片写实)③先生成风格参考图,后续所有图以它为参考生成。
  21. 风格参考图必须先于角色三视图——先生成一张纯场景的风格参考图确认画风,再用它作为风格参考生成所有角色三视图和画格。不要在风格未确认时就批量生成,否则会全部返工。
  22. 含角色的画格必须用参考图生图,不能用文生图——文生图会导致角色不一致和画风漂移。含角色的画格必须传入 style_ref.jpg + 角色三视图作为双重参考。
  23. 每张图prompt必须包含风格锚定块+负面约束块——这两个块是固定的,不得删减或改写。只改中间的画面/角色/光影描述。