--- name: story-to-scenes description: 长文本拆镜批量生图引擎。将故事、课程、连环画脚本智能拆分场景,批量生成风格统一、角色一致的配图。支持绘本插画和漫画两种创作模式。当用户提到「拆镜生图」「故事配图」「批量场景图」「连环画生成」「绘本生成」「知识漫画」「教育漫画」时使用此技能。 --- # Story To Scenes 长文本拆镜批量生图引擎,用于将故事、教学课程、连环画脚本等长文本智能拆分成场景,并批量生成风格统一、角色一致的配图。 支持两种创作模式: - **绘本/插画模式**:每个场景独立单图,适合绘本、故事配图、课程插图 - **漫画创作模式**:画风×色调×版面组合系统,适合知识漫画、教育漫画、连环画 ## 核心流程 ``` 输入长文本 → 角色提取 → 生成角色胚子图 → 确认锁定 ↓ 智能拆镜 → 场景清单 → 确认调整 ↓ 风格胚子图(第一张场景)→ 确认锁定 ↓ 场景胚子图(复用场景,可选)→ 确认锁定 ↓ 批量生成场景图(引用胚子)→ 输出图集 ``` ## 铁律 1. **单图原则**:每个场景/角色生成独立单图,禁止多格拼接、分镜框、边框组合 2. **先人后景**:必须先生成并锁定角色胚子,再进行场景生图 3. **确认才锁定**:角色胚子、风格胚子必须用户确认后才算锁定 4. **引用生成**:场景中出现已锁定角色时,必须引用其胚子图 5. **提示词记录**:每张图的完整提示词必须记录,方便复用和微调 6. **进度持久化**:生成过程实时保存进度,支持断点续传 ## 详细步骤 ### Step 1: 项目初始化 收集项目基本信息: ```yaml project_name: "" # 项目名称(必填) style_preset: "" # 预设风格或自定义描述 aspect_ratio: "3:4" # 尺寸:3:4 / 16:9 / 1:1 source_text: "" # 原文内容或文件路径 mode: "illustration" # 创作模式:illustration(绘本插画)/ comic(漫画) ``` 漫画模式额外参数(当 mode 为 comic 时): ```yaml art_style: "ligne-claire" # 画风:ligne-claire / manga / realistic / ink-brush / chalk tone: "neutral" # 色调:neutral / warm / dramatic / romantic / energetic / vintage / action layout: "standard" # 版面:standard / cinematic / dense / splash / mixed / webtoon ``` 创建项目目录: ``` assets/generated/{项目名}/ ├── characters/ # 角色胚子图 ├── locations/ # 场景胚子图 ├── scenes/ # 场景配图 ├── characters.md # 角色索引 ├── progress.json # 生成进度 └── gallery.md # 完整图集索引 ``` ### Step 2: 文本解析与角色提取 1. 自动识别文本类型:故事/课程/脚本/连环画 2. 按语义分割场景(非机械按段落切) 3. 提取所有人物/动物/生物,生成角色清单表 输出角色清单表格式: | 角色名 | 类型 | 外貌特征 | 性格标签 | 出场场景 | |--------|------|----------|----------|----------| | 示例 | 人物/动物 | 详细外貌描述 | 性格关键词 | 1,2,3 | **交互点**:展示清单,让用户补充/修正角色描述,确认后进入下一步。 ### Step 3: 生成角色胚子图 为每个角色生成标准立绘: - **构图要求**:正面或四分之三侧面,干净纯色背景 - **画面要求**:单图,突出角色本体特征,禁止多角度拼接 - **命名规范**:`{项目名}_char_{角色名}.png` - **存储位置**:`assets/generated/{项目名}/characters/` 生图提示词结构: ``` [风格关键词], single character portrait of [角色描述], [姿态], clean solid [背景色] background, full body shot, character design sheet style, --no multiple views, turnaround, collage, grid, panels, border ``` **交互点**:逐个展示角色胚子图,用户确认"OK"后锁定,不满意则重新生成。 将确认的角色信息写入 `characters.md`: ```markdown # 角色索引 ## {角色名} - **胚子图**:characters/{角色名}.png - **外貌描述**:{详细外貌} - **出场场景**:{场景序号列表} ``` ### Step 4: 智能拆镜 根据文本语义划分场景,生成场景清单表: | 序号 | 场景名称 | 画面描述 | 出场角色 | 镜头类型 | 情绪氛围 | |------|----------|----------|----------|----------|----------| | 01 | 场景名 | 具体画面内容 | 角色列表 | 远景/中景/特写 | 情绪关键词 | **镜头类型说明**: - **远景**:交代环境,角色较小 - **中景**:角色半身或全身,主体突出 - **特写**:面部表情或关键物品细节 **交互点**:展示拆镜表,让用户调整场景划分、镜头选择,确认后进入下一步。 ### Step 5: 生成风格胚子图 用第一个场景生成**风格定调图**: 1. 根据用户选择的风格预设(或自定义描述)构建提示词 2. 生成第一张场景图 3. 展示给用户确认 **交互点**: - 确认OK → 提取风格关键词,记录到 `progress.json`,全程复用 - 不满意 → 调整风格描述,重新生成 ### Step 6: 场景胚子图(可选) 识别文本中**反复出现的重要场景**,如: - 主角的家 - 重要地标建筑 - 反复出现的场所 为这些场景单独生成环境图: - **构图要求**:无人物,纯场景环境 - **存储位置**:`assets/generated/{项目名}/locations/` - **命名规范**:`{场景名}.png` **交互点**:展示场景胚子图,确认或跳过。 ### Step 7: 批量生成场景图 逐场景生成配图,提供两种角色一致性方案,根据场景复杂度选择。 #### 方案A:图生图串行替换(默认) 适用场景:角色外观需要高度还原、角色数量 ≤ 3 的场景。 ##### 单角色场景 直接基于该角色胚子图做图生图: ```bash python image_to_image.py "characters/角色A.png" "场景描述,保持角色形象..." -o "scenes/scene_xx.png" ``` ##### 多角色场景(串行替换规则) 当场景包含多个角色时,必须**串行轮流替换**,逐步锁定每个角色: ``` 步骤1:基于角色A胚子图 + 场景描述 → 生成 role1.png(角色A锁定,其他角色可能不一致) 步骤2:基于角色B胚子图 + role1.png → 生成 role2.png(角色A+B锁定) 步骤3:基于角色C胚子图 + role2.png → 生成 role3.png(角色A+B+C锁定) ...依此类推,直到所有角色都替换完成 最终输出:role{n}.png 作为该场景的最终图 ``` **执行示例**(3角色场景): ```bash # 第1轮:锁定孙悟空 python image_to_image.py "characters/孙悟空.png" "场景描述,孙悟空xxx,唐僧xxx,猪八戒xxx..." -o "scenes/scene_xx_role1.png" # 第2轮:基于role1锁定唐僧 python image_to_image.py "characters/唐僧.png" "保持场景和其他角色,替换唐僧形象与参考图一致" --ref "scenes/scene_xx_role1.png" -o "scenes/scene_xx_role2.png" # 第3轮:基于role2锁定猪八戒 python image_to_image.py "characters/猪八戒.png" "保持场景和其他角色,替换猪八戒形象与参考图一致" --ref "scenes/scene_xx_role2.png" -o "scenes/scene_xx_role3.png" # 最终重命名 mv "scenes/scene_xx_role3.png" "scenes/scene_xx_场景名.png" # 清理中间文件 rm "scenes/scene_xx_role1.png" "scenes/scene_xx_role2.png" ``` **角色替换顺序**:按重要性或画面占比从大到小排序 #### 方案B:角色参考表 + --ref 引用 适用场景:角色数量较多(≥ 3)、画风偏漫画/扁平、不需要照片级还原的项目。 核心思路:在提示词中嵌入角色外貌描述关键词,同时用 `--ref` 引用角色胚子图作为视觉锚点,一次性生成完整场景。 ```bash # 直接引用角色胚子图,一次性生成 python text_to_image.py "[风格关键词], [场景描述], [角色A外貌关键词] doing xxx, [角色B外貌关键词] doing xxx, [镜头构图], [情绪氛围]" \ --ref "characters/角色A.png" --ref "characters/角色B.png" \ -o "scenes/scene_xx_场景名.png" ``` **使用要点**: - 角色胚子图必须已锁定,作为 `--ref` 视觉参考 - 提示词中仍需包含角色外貌关键词(发型、服装、配色等),不能只靠 `--ref` - 一致性由"文字描述 + 视觉参考"双重约束保证 - 若角色还原度不够,回退到方案A串行替换 **两种方案对比**: | 维度 | 方案A:串行替换 | 方案B:参考表引用 | |------|----------------|------------------| | 一致性精度 | 高(逐角色锁定) | 中(依赖描述+参考) | | 生成速度 | 慢(N个角色需N轮) | 快(一次生成) | | 适合角色数 | 1-3个 | 不限 | | 适合画风 | 所有 | 漫画/扁平/插画 | | 适合模式 | 绘本插画 | 漫画创作 | #### 提示词规范 提示词结构: ``` [风格关键词], [场景描述], [角色A描述], [角色B描述], [镜头构图], [情绪氛围], --no multiple panels, comic layout, grid, collage, split frame, border, manga panels, text, caption, title, subtitle, watermark, signature, letters, words, writing ``` **铁律**: - 禁止输出任何文字、标题、水印、签名 - 排除词必须包含 `text, caption, title, subtitle, watermark, signature, letters, words, writing` **命名规范**:`scene_{序号}_{场景名}.png` **存储位置**:`assets/generated/{项目名}/scenes/` **进度追踪**: - 每生成一张,更新 `progress.json` - 失败自动重试(最多3次) ### Step 8: 输出整理 生成完成后,创建图集索引文档 `gallery.md`: ```markdown # {项目名} 场景图集 ## 项目信息 - **风格**:{风格描述} - **尺寸**:{尺寸} - **场景数**:{总数} - **生成日期**:{日期} ## 角色一览 | 角色 | 胚子图 | |------|--------| | {角色名} | ![[characters/{角色名}.png]] | ## 场景图集 ### Scene 01:{场景名} ![[scenes/scene_01_{场景名}.png]] > {场景描述}
提示词 {完整提示词}
``` ## 特殊操作命令 | 命令 | 说明 | |------|------| | `重新生成 {角色名}` | 重新生成指定角色胚子图 | | `重新生成 scene_{序号}` | 重新生成指定场景图 | | `从 scene_{序号} 继续` | 断点续传,从指定场景继续 | | `更换风格` | 重新选择风格,需重新生成风格胚子 | | `导出图集` | 生成最终索引文档 | ## 预设风格(绘本/插画模式) 可选择以下预设风格,或提供自定义风格描述: ### 日系治愈绘本 ``` soft watercolor illustration, warm pastel colors, gentle lighting, Studio Ghibli inspired, dreamy atmosphere, delicate linework ``` ### 国风水墨淡彩 ``` traditional Chinese ink wash painting, subtle watercolor tints, elegant brushwork, Song dynasty aesthetic, zen atmosphere ``` ### 欧美儿童插画 ``` vibrant children's book illustration, bold colors, expressive characters, playful style, Pixar-inspired, warm and inviting ``` ### 赛博朋克 ``` cyberpunk aesthetic, neon lights, dark atmosphere, high contrast, futuristic cityscape, Blade Runner inspired ``` ### 扁平矢量风 ``` flat vector illustration, clean geometric shapes, modern minimalist, limited color palette, graphic design style ``` ### 水彩手绘风 ``` traditional watercolor painting, visible brush strokes, organic textures, artistic imperfections, soft edges ``` --- ## 漫画创作模式 当 `mode: comic` 时激活此模式。通过**画风 × 色调 × 版面**三维组合,灵活定义漫画视觉风格。 ### 画风系统(Art Style) 5 种画风,决定线条和渲染方式: | 画风 | 代号 | 说明 | 提示词片段 | |------|------|------|-----------| | 欧漫清线 | `ligne-claire` | 均匀线条、平涂色块,欧洲漫画传统(丁丁历险记、Logicomix) | `ligne-claire style, uniform line weight, flat colors, European comic tradition` | | 日漫风格 | `manga` | 大眼睛、漫画夸张表情、速度线等日漫约定 | `manga style, large expressive eyes, dynamic poses, Japanese comic conventions` | | 写实数绘 | `realistic` | 数字绘画质感、写实比例、精细光影 | `realistic digital painting, detailed shading, cinematic lighting, sophisticated rendering` | | 国风水墨 | `ink-brush` | 中国毛笔笔触、水墨晕染效果 | `Chinese ink brush style, ink wash effects, traditional brushwork, xuan paper texture` | | 粉笔手绘 | `chalk` | 黑板粉笔美学、手绘质感、温暖感 | `chalkboard aesthetic, chalk drawing style, hand-drawn warmth, textured background` | ### 色调系统(Tone) 7 种色调,决定画面情绪氛围: | 色调 | 代号 | 说明 | 提示词片段 | |------|------|------|-----------| | 理性中立 | `neutral` | 均衡配色、理性教育感、不偏暖不偏冷 | `balanced neutral palette, clean educational tone, even lighting` | | 温暖怀旧 | `warm` | 暖色调为主、怀旧温馨、个人叙事感 | `warm golden tones, nostalgic atmosphere, soft amber lighting, comforting mood` | | 戏剧张力 | `dramatic` | 高对比度、强烈明暗、视觉冲击 | `high contrast, dramatic chiaroscuro, intense shadows, powerful visual impact` | | 浪漫唯美 | `romantic` | 柔和色调、装饰性元素、梦幻感 | `soft pastel tones, decorative flourishes, dreamy romantic atmosphere` | | 活力动感 | `energetic` | 明亮鲜艳、动态构图、充满活力 | `bright vivid colors, dynamic composition, energetic mood, high saturation` | | 复古年代 | `vintage` | 历史质感、做旧效果、年代真实感 | `vintage color grading, aged paper texture, period-authentic palette, sepia undertones` | | 战斗动作 | `action` | 速度线、冲击特效、战斗视觉 | `speed lines, impact effects, dynamic action poses, motion blur, combat intensity` | ### 版面系统(Layout) 6 种版面,决定分镜排布方式: | 版面 | 代号 | 每页格数 | 适用场景 | |------|------|----------|----------| | 标准叙事 | `standard` | 4-6 格 | 对话驱动、日常叙事、平稳推进 | | 电影宽幅 | `cinematic` | 2-4 格 | 戏剧性时刻、场景建立、氛围渲染 | | 密集信息 | `dense` | 6-9 格 | 技术讲解、时间线展示、知识密集段 | | 大跨页 | `splash` | 1-2 大格 | 关键时刻、重大揭示、高潮场景 | | 混合编排 | `mixed` | 3-7 不等 | 复杂叙事、情绪起伏、节奏变化 | | 条漫竖排 | `webtoon` | 3-5 竖格 | 教程讲解、移动端阅读、轻量叙事 | **版面选择建议**: - 知识讲解为主 → `dense` 或 `webtoon` - 故事叙事为主 → `standard` 或 `mixed` - 强调视觉冲击 → `cinematic` 或 `splash` ### 预设组合(Preset) 3 种常用组合,快速定调: | 预设名 | 画风 + 色调 | 特殊规则 | 适合题材 | |--------|------------|----------|----------| | `ohmsha` | 日漫 + 理性中立 | 用视觉隐喻替代"说教头";通过道具/机关揭示概念;禁止纯对话页 | 技术教程、编程入门、科普知识 | | `wuxia` | 国风水墨 + 战斗动作 | 气效果渲染(内力、剑气);战斗场景需动态构图;环境需要意境氛围 | 武侠故事、中国历史、玄幻题材 | | `shoujo` | 日漫 + 浪漫唯美 | 眼睛需精细刻画高光;背景加花瓣/光斑装饰元素;情感节拍需要特写 | 恋爱故事、青春校园、人物传记 | **使用方式**:在项目初始化时指定 `style_preset: "ohmsha"` 即自动应用对应的画风、色调和特殊规则。 ### 漫画模式下的风格胚子构建 当使用漫画模式时,Step 5 风格胚子图的提示词需组合三维参数: ``` [画风提示词片段], [色调提示词片段], [场景描述], [角色描述], [版面对应的构图指导], --no multiple panels, text, caption, watermark, signature, letters, words, writing ``` **示例**(ohmsha 预设 + standard 版面): ``` manga style, large expressive eyes, Japanese comic conventions, balanced neutral palette, clean educational tone, even lighting, a young programmer sitting at desk discovering a bug in code, surprised expression, computer screen glowing, medium shot, 4-6 panel narrative flow, --no text, caption, watermark, signature, letters, words, writing ``` --- ## 文件结构 生成项目的完整目录结构: ``` assets/generated/{项目名}/ ├── characters/ # 角色胚子图 │ ├── {角色A}.png │ └── {角色B}.png ├── locations/ # 场景胚子图(可选) │ └── {场景名}.png ├── scenes/ # 场景配图 │ ├── scene_01_{场景名}.png │ ├── scene_02_{场景名}.png │ └── ... ├── characters.md # 角色索引表 ├── progress.json # 生成进度 └── gallery.md # 完整图集索引 ``` ## 依赖技能 - `image-service`:实际生图执行 - `obsidian-markdown`:生成索引文档(可选) ## References - `references/prompt_templates.md`:提示词模板库 - `references/style_presets.md`:风格预设详情 ## Assets - `assets/templates/gallery_template.md`:图集索引模板 - `assets/templates/characters_template.md`:角色索引模板