项目 01 · 2026 · 个人开发

CreativeOps从小说到成片的自动化产线

上传一本小说,自动完成章节识别、总剧本、角色三视图、逐镜分镜与成图,直到合成整部成片。使用n8n搭建8条工作流,串联飞书多维表格、ComfyUI与FFmpeg,一键跑通全流程,断点续跑、真实数据闭环。

项目类型
n8n 自动化产线
范围
静态漫 / 动态漫 / 成片
规模
长篇小说全流程自动化
我的工作
架构设计 · 全部节点与提示词
CreativeOps 静态链主工作流:36 个节点的全书预处理链
1_静态链 · 全书预处理主工作流(36 节点)真实运行画面
00 / 产线总览

自动化产线总览

小说从表单进入,经 Agent 理解与拆解、飞书结构化落表、模型批量出图,最后由 FFmpeg 合成成片。每一层都以飞书多维表格为 checkpoint,重跑幂等、失败可续。

ORCHESTRATIONn8n · 8 条工作流

表单触发、逐章循环、断点续跑;单镜失败标记跳过,重跑只补缺失单元。

AGENTSAI Agent

章节理解、剧本创作、视觉提示词、人物定稿与质量校验分工协作。

DATA飞书多维表格

章节 / 分句 / 人物 / 场景 / 剧本 / 分镜六表即生产数据,也是断点坐标。

RENDERComfyUI + 剪映自动化

图像批量生成后,解析 JSON 自动生成剪映工程,按镜头顺序拼接、生成字幕与配音。

02 / 链路治理

链路问题与设计方案

稳定性与异常处理

剧本 JSON 逐项校验;非法行降级丢弃,错误原因回注 LLM 重试。逐镜子执行 + save-none,中间数据销毁,分镜表保留断点。直读 execution_data 排障,导入前预检全部 Code 节点。

长文与数据完整性

按完整散文句分句,以 unit_id 回填;引用无效时用场景名兜底,缺失段落显式记录。台词预估朗读时长并设镜长约束,超长对白跨序列分段且校验全量播完。

一致性与连贯性

台词和角色由系统按关键帧确定性注入,清除旁白混入对白。尾帧描述传入下一序列,附件重排、重编号保证画面接力;SSE 流式解析支撑长推理稳定返回。

基础设施与迁移

修正批处理回环接线,空分支自然跳过。固化 n8n 启动规程,处理二进制、白名单和 Task Runner 问题。跨 Base 下载、规范命名、重传附件,首帧图与角色三视图迁移零失败。

03 / 工作流全景

工作流全景

从表单到成片的各阶段工作流截图。其中 6_分镜 为早期方案,已被 7_分镜出图 的逐镜直出取代并停用,此处一并保留存档。点击任意一张查看完整画布。

03A / 成片自动化

从图文素材到剪映成片。

Coze 拼接图文素材 JSON,ComfyUI 生成画面;自研剪映自动化工具解析 JSON 后生成可直接打开的剪映工程,按镜头顺序拼接,并按人物自动生成字幕与配音,成片环节提效 95%。

01 / 编排素材 JSON

统一镜头、字幕与音频时间线

Coze 将图文素材拆进统一 JSON:镜头顺序、图片与音频引用、字幕时间线和人物信息都以同一结构交给下游。

02 / 生成镜头画面

提示词编码、采样、解码与放大

ComfyUI 依据镜头描述,完成正负提示词编码、两段采样、VAE 解码和放大,生成可按序调用的镜头画面。

03 / 生成剪映工程

读取 JSON,构建多轨时间线

自研工具读取 JSON,处理日志依次显示主音频、背景音轨、字幕和图片时间线的构建过程,输出可直接打开、可继续编辑的剪映工程。

04 / 自动拼接成片

按镜头铺排,按人物匹配字幕与配音

生成后的工程已把画面、字幕轨和成片轨按镜头顺序铺开;不同人物自动匹配字幕与配音,成片环节提效 95%。

工作流工具栈

04 / 数据底座

飞书多维表格即生产数据。

每个阶段的生产数据都落在同一本 Base 的六张业务表里:既是下游节点的输入,也是断点续跑的坐标。以下为《风铃中的刀声》真实生产数据样例。

01 / 提示词约束撰写

经过测试打磨的提示词。

产线里每个 Agent 的提示词都经过逐条测试与打磨:先声明输入清单,再写编号化的设计规则,最后约定只输出一个 JSON 对象,由程序按 ID 校验与回填。以下为两条实际在用的提示词全文。

Role:角色形象设计师 · 全书视觉资产契约(点击展开全文)
# Role:角色形象设计师

输入是人物目录(含每人的一句话身份和原文证据句)与全局画面风格。为**每一个**角色产出固定视觉形象,全书所有分镜共用,不可漂移。

## 输入

- `characters`:character_id、canonical_name、one_line_identity、evidence(≤3 句含此人称呼的原文句)。
- `style_prompt`:全局画面风格。

## 设计规则

1. `fixed_appearance` 一段完整描述,依次包含:性别与年龄段、发色发型、瞳色、体型身量、服装基调(颜色+材质+款式)、一个**核心标识元素**。能从 evidence 里找到的外貌线索必须采用;原文没有的部位给出合理默认,风格与全局一致。
2. 核心标识元素 = 一眼认出此人的具象物件或特征(如"左眉骨旧疤""霜银长发""赤纹护腕"),在 fixed_appearance 中具体写出,并单独提炼为 `core_visual_token`(一个短语)。
3. **全书不变**:发色、瞳色、核心标识元素永不改变。服装基调保持稳定,除非身份变化需要(此时仍保留核心标识元素)。
4. **角色间差异**:任何两个角色的发色组合、核心标识元素不得相同;主要角色之间发型轮廓与色彩主调必须可区分。
5. 龙套角色从简:性别年龄段+一两个固定特征+职业着装,不强求标识元素(core_visual_token 可为空字符串)。
6. 不写剧情、不写性格、不写与画面无关的内容;描述里不使用括号备注。

## 输出

只输出一个 JSON 对象,覆盖输入目录的**每一个**角色,不增不减,无 Markdown、无解释:

{
  "characters": [
    { "character_id": "C01", "canonical_name": "莫青峰", "fixed_appearance": "青年男性,黑发高束……", "core_visual_token": "左眉骨旧疤" }
  ]
}
Role:静态漫分镜师 · 场次拆镜契约(点击展开全文)
# Role:静态漫分镜师

把当前场次拆成 1-4 个连续镜头(shot)。输入的 `characters` 已带每人固定外观,`scene` 已带场景视觉描述,你只负责镜头语言。

## 输入

- `script_scene`:一个场次(action / dialogues / narration / quote / character_ids)。
- `characters`:本场次人物,含 character_id、canonical_name、fixed_appearance。
- `scene`:scene_id、scene_name、visual_prompt。
- `context`:上一场次与下一场次各一句话,用于衔接。
- `style_prompt`:全局风格(你不用写进 composition,程序会合成)。

## 拆镜规则

1. 场次里有对白:每个镜头承载 1-2 句对白,说话者必须在画面中;关键台词给特写或中特写。
2. 无对白的动作场次:按动作节拍拆 1-2 镜。
3. 纯环境交代(`narration` 且无人):给一个空镜。
4. 本场次某角色**首次**出场:先给一个全身或大半身展示镜。
5. 镜头顺序必须能连读成戏,与 context 衔接(上场结尾的人物位置在本场延续)。

## 镜头字段

- `shot_kind`:人物镜 / 空镜 / 群像。
- `composition`:30-60 字。格式"景别:画面内容"。景别用特写/中特写/中景/全景/远景。画面内容必须具体可视:人物动作、站位、视线、关键物件、环境要素。**禁止**抽象情绪词(写"攥紧的拳"不写"愤怒")。
- `character_ids`:本镜中出现的人物(空镜为空数组),只能用输入目录里的 ID。
- `dialogue_text`:本镜要呈现的台词原文(可合并 1-2 句),无台词为空字符串。

## 输出

只输出一个 JSON 对象,无 Markdown、无解释:

{
  "shots": [
    { "shot_kind": "人物镜", "composition": "中特写:莫青峰攥紧军报指节发白,目光钉在火漆封印上,篝火在他侧脸跳动。", "character_ids": ["C01"], "dialogue_text": "这军报是假的。" }
  ]
}

数据按粒度单向递进组织(章 → 分句单元 → 人物/场景 → 场次 → 逐镜 → 成图),每层只引用上一层的稳定 ID;派生 JSON 带证据或编号,可以回溯到原文具体一句。

① 原文整章章节表.原文
完整保留不拆散
② 分句单元unit_id
FLLDDS-SRC-2-16
③ 人物·场景普查names / identity
+ evidence 证据句
④ 逐章剧本场次 / action
/ dialogues
⑤ 逐镜分镜景别 · 运镜 · 台词JSON
character_id+unit_id
⑥ 成图附件状态=已出图
附件挂行即断点

证据链防幻觉

人物普查的 identity 必须附 ≤3 句原文 evidence;台词不抄写——模型只引用分句编号 unit_id,程序按编号把原文回填进分镜表。模型可以做理解,但不允许改写一个字。

核心标识防漂移

人物表以 fixed_appearance(全书不变的固定外观)+ core_visual_token(如"左腕朱红绳结")锁定视觉形象,再与全局风格提示词合成每镜的视觉提示词——跨镜不串脸。

台词与情绪分离

分镜表的台词 JSON 是 {character_id, unit_id, text, emotion} 四元组:text 按 unit_id 回填保证原文一致,emotion("冷漠关切""温和询问")单独存列,供运镜与配音参考。

附件即断点

三视图、逐镜成图直接挂载在对应行的附件列,状态字段(已完成 / 已出图)就是断点坐标。任何一镜失败标记后重跑,只补缺失单元,其余幂等跳过。

05 / 角色资产

角色三视图资产库。

Agent 从小说文本提炼视觉关键词,ComfyUI 生成三视图;命名规范 C{编号}_{姓名}_三视图,供后续逐镜生图做角色一致性参考。以下为主要角色,点击查看原图。

06 / 逐镜成图

生产出来的分镜图。

逐镜直出的水墨分镜。画面描述由分镜 Agent 生成、全局风格提示词合成;此处摘选不同章节与景别的 9 张,点击查看原图。

07 / 输出

成片样例。

全自动成图后,自研剪映自动化工具解析 JSON 生成工程,按镜头顺序铺排素材,并按人物生成字幕与配音,成片环节提效 95%。

运行方式:提交表单后后台自动完成整书合成;单镜失败自动跳过并标记,重跑只补缺失镜头。

漫剧成片样例