- 新增 image_generation_upload_rules.md、post_upload_call_draft_rules.md 规则文件,scripts/ 脚本目录 - 工作流新增阶段 5.1 图片生成与上传、5.2 上传后调用稿分支,调整原有步骤编号 - 所有模板和规则强制要求:API 图片输入使用上传后的公网 URL / asset:// URI,禁止本地路径或占位符 - 官网 Prompt 模板强制要求使用 @官网上传名,绑定已上传资产 - 附件/API 资产清单新增状态追踪列(pending_generation / pending_upload / generated_uploaded_ready 等)和 uploaded_assets.json 回填规则 - api_payload_rules.md 新增"上传后二次生成硬约束",要求 JSONL 必须在图片上传完成后基于真实 URL 重新生成 - image_model_provider_rules.md 明确 nano-banana-2 为默认执行资源(非仅提示词名称),新增图片生成/上传执行标记 --- 核心变更概括:工作流从"只写提示词"升级为"提示词→真实出图→上传→获取公网 URL→回填→二次生成调用稿"的完整资产管线。
540 lines
33 KiB
Markdown
540 lines
33 KiB
Markdown
# 小说改编 Seedance AI 视频工作流
|
||
|
||
## 目标
|
||
|
||
把用户提供的小说文本,稳定拆解为可制作 AI 视频的一组文件:剧情分析、精彩连续分镜、人物与场景资产设计、nano-banana-2 图片资产提示词、Seedance 2.0 分镜视频提示词、转场衔接快照和质检表。
|
||
|
||
图片资产阶段必须真实执行:生成 nano-banana-2 图片、上传图片、把上传后的公网 URL 和即梦官网素材名回填到附件清单与接口请求体。不得只停留在提示词输出。
|
||
|
||
本工作流不追求逐字复述小说,而是优先抽取适合影视化的冲突、行动、反转和情绪临界点。输出要能服务后续批量制作,而不是只写一份好看的文案。
|
||
|
||
## 输入要求
|
||
|
||
把小说文本放入本项目的 `inputs/`,执行时必须由用户明确指定要处理的项目文件夹或单个文件。不要自动处理 `inputs/` 下所有项目。推荐同时提供:
|
||
|
||
- 小说正文:章节、片段或整段内容均可。
|
||
- 制作目标:短剧、电影感混剪、信息流爽剧、悬疑预告、角色高光等。
|
||
- 单集目标时长:默认 60-180 秒。
|
||
- 单段视频时长:默认按 Seedance 2.0 的 4-15 秒组织,常用 8 秒或 15 秒。
|
||
- 画幅:默认 `9:16`,如需横屏改为 `16:9`。
|
||
- 风格约束:现实主义、古风、赛博、年代剧、医疗剧等。
|
||
- 参考文件:旧分镜、角色图、场景图、Seedance 提示词参考等。
|
||
- 图片资产模型:同时输出 `MJ版` 和 `nano-banana-2版`,用户自行选择使用;如项目配置指定服务商,可优先显示对应版本。
|
||
|
||
## 产出文件
|
||
|
||
每次处理小说,都新建一个运行目录,目录名必须与输入项目名一致,不加日期前缀、不加英文别名:
|
||
|
||
- 如果用户指定 `inputs/测试/文案.txt`,输出目录必须是 `outputs/novel_video_runs/测试/`。
|
||
- 如果用户指定 `inputs/测试/`,输出目录必须是 `outputs/novel_video_runs/测试/`。
|
||
- 如果用户指定的是 `inputs/文案.txt` 这类直接位于 `inputs/` 下的单文件,则输出目录使用文件名 stem:`outputs/novel_video_runs/文案/`。
|
||
- 如果目标目录已存在,先检查是否为同一次输入的续跑结果;续跑时更新其中的 pending/in_progress 文件,不要另建 `日期_项目名` 目录。只有用户明确要求保留旧版本时,才可加 `_v2`、`_修订` 等后缀。
|
||
|
||
目录内必须先输出全局文件,再按集输出。不得只做第一集后停止,除非用户明确要求“只做第 N 集”。
|
||
|
||
推荐目录结构:
|
||
|
||
```text
|
||
outputs/novel_video_runs/输入项目名/
|
||
00_来源接收.md
|
||
01_全剧分析.md
|
||
02_分集切分决策.md
|
||
03_全剧设定总览.md
|
||
04_人物场景道具设计.md
|
||
05_图片资产提示词.md
|
||
06_即梦资产提示词.md
|
||
07_平台安全规则.md
|
||
08_附件清单.md
|
||
09_接口资产清单.md
|
||
image_generation_jobs.json
|
||
uploaded_assets.json
|
||
assets/generated/
|
||
10_前置验证.md
|
||
11_生成行为记录.md
|
||
12_系列维护.md
|
||
episodes/
|
||
EP01_中文集名/
|
||
01_本集分析.md
|
||
02_改编方案.md
|
||
03_分镜.md
|
||
04_资产引用.md
|
||
05_Seedance视频提示词.md
|
||
06_转场衔接快照.md
|
||
07_提示词安全审查.md
|
||
08_质检表.md
|
||
09_官网提示词.md
|
||
10_接口请求体.jsonl
|
||
EP02_中文集名/
|
||
...
|
||
99_全剧质检总结.md
|
||
```
|
||
|
||
分集目录命名规则:
|
||
|
||
- 固定格式:`EP两位数字_中文集名`,例如 `EP01_重生换命`、`EP02_风沙成刃`。
|
||
- 集名必须使用中文剧情名,不使用英文 slug、拼音或机器翻译。
|
||
- 集名来自切分决策中的中文标题,后续所有文件、JSONL 的 `episode` 字段必须保持一致。
|
||
|
||
全局文件说明:
|
||
|
||
1. `00_来源接收.md`
|
||
输入文件、编码、文本范围、制作目标、缺省假设。
|
||
|
||
2. `01_全剧分析.md`
|
||
全文剧情结构、人物关系、冲突链、情绪曲线、可影视化高光、删减建议。
|
||
|
||
3. `02_分集切分决策.md`
|
||
先由剧情节拍判断本次输入应该拆成几集/几段。不得按文件大小、章节数量或字数机械决定。
|
||
|
||
4. `03_全剧设定总览.md`
|
||
全剧统一叙事与视觉架构:核心约束、类型与平台策略、视觉母题生命周期、色调情绪弧线、声音弧线、视觉风格配方、系列情绪曲线、跨集钩子、视觉签名、观众心理策略和命名规则。
|
||
|
||
5. `04_人物场景道具设计.md`
|
||
本次输入的统一人物、场景、道具资产设计。所有角色外貌、阶段服装、固定识别点、角色三轴演化、习惯动作、表情基色、场景空间结构、光线基准、声学空间、场景情感残留和道具状态机都在这里一次性定义,后续分集只引用,不重复定义。
|
||
|
||
6. `05_图片资产提示词.md`
|
||
本次输入的统一图片资产提示词,同时包含 MJ 版和 nano-banana-2 版。人物、场景、道具设定板都集中写在这里,不按集拆散。人物和场景必须额外输出“可直接复制出图”的参考图提示词组。
|
||
|
||
7. `06_即梦资产提示词.md`
|
||
本次输入的统一即梦安全版资产提示词。分集视频提示词可引用这里的资产,不在每集重新生成角色或场景资产提示词。人物和场景必须额外输出即梦安全版参考图提示词组。
|
||
|
||
8. `07_平台安全规则.md`
|
||
MJ、nano-banana-2、即梦、Seedance 的提示词风险规则和本项目改写词表。
|
||
|
||
9. `08_附件清单.md`
|
||
全剧资产附件清单,明确每个 `@角色/@场景/@道具` 对应哪个图片文件或 URL。
|
||
|
||
10. `09_接口资产清单.md`
|
||
API 资产清单,明确每个内部引用对应的官网上传名、公网 URL、火山 `asset://` URI。
|
||
|
||
图片生成并上传后,必须把上传 URL 写入 `公网URL`,把即梦官网素材名写入 `官网上传名`,状态更新为 `generated_uploaded_ready` 或明确失败状态。
|
||
|
||
11. `10_前置验证.md`
|
||
前置验证记录:挑战场景测试、对比测试、失败模式指纹和进入逐集执行的出口标准。
|
||
|
||
12. `11_生成行为记录.md`
|
||
Seedance 实际行为记录:生成偏差、修复策略、平台表现和本项目专有黑盒经验。
|
||
|
||
13. `12_系列维护.md`
|
||
系列维护记录:参考图退化检测、Prompt 防漂移检测、成片率追踪和全局预防规则升级。
|
||
|
||
每集文件说明:
|
||
|
||
- `01_本集分析.md`:本集剧情分析、核心冲突、入集/出集钩子。
|
||
- `02_改编方案.md`:本集片段规划、取舍、节奏。
|
||
- `03_分镜.md`:本集连续分镜。
|
||
- `04_资产引用.md`:本集引用的全局人物、场景、道具,以及本集阶段状态。不得在这里重新设计人物外貌和场景资产。
|
||
- `05_Seedance视频提示词.md`:本集 Seedance 视频提示词。
|
||
- `06_转场衔接快照.md`:本集片段内衔接和集与集衔接。
|
||
- `07_提示词安全审查.md`:本集视频提示词和本集特殊风险的安全检测结果与改写记录;全局资产风险引用 `07_平台安全规则.md`。
|
||
- `08_质检表.md`:本集质检。
|
||
- `09_官网提示词.md`:官网 `@已上传图片/素材` 版本视频提示词。
|
||
- `10_接口请求体.jsonl`:API 批量调用请求体草案,每行一个视频任务。
|
||
|
||
最终文件说明:
|
||
|
||
- `99_全剧质检总结.md`:全剧集覆盖检查、集间衔接、剩余风险。
|
||
|
||
## 执行流程
|
||
|
||
### 0. 模板与流程分离
|
||
|
||
- `templates/` 只放输出文件骨架,不承载长篇执行流程、推理说明或平台教学。
|
||
- 模板文件名可以保持英文,方便内部维护;实际生成到 `outputs/` 的交付文件必须使用本流程定义的中文文件名。
|
||
- 执行流程写在 `01_WORKFLOW.md`。
|
||
- 平台写法规则写在 `references/`。
|
||
- 提示词硬约束、分级评分、类型预设、镜头链路预设和即梦安全写法统一写在 `references/prompt_constraint_system.md`。写分镜和视频 Prompt 时必须引用该文件,不得只按模板填空。
|
||
- 系列结构、人物三轴演化、场景情感残留、道具状态机、光线空间、声音设计和特殊场景技法统一写在 `references/series_design_rules.md`。写全局 Bible、人物场景设计、分镜和视频 Prompt 时必须引用该文件。
|
||
- 图片生成、上传和即梦附件回填统一按 `references/image_generation_upload_rules.md` 执行。该步骤是资产链路的一部分,不是可选备注。
|
||
- Seedance 的实际 `Prompt` 代码块只写视频生成指令,不混入分析、QC、衔接表、素材清单或安全审查。
|
||
- 衔接写入 `06_转场衔接快照.md`,官网上传映射写入 `09_官网提示词.md`,API 写入 `10_接口请求体.jsonl`。
|
||
|
||
### 1. 文本清洗与剧情切块
|
||
|
||
- 只读取用户指定的项目目录或文件,不自动扫描并执行 `inputs/` 下所有项目。
|
||
- 如果用户指定的目录下有 `source/`,按文件名自然排序读取 `source/` 里的正文。
|
||
- 如果用户指定的是单个文件,则只处理该文件。
|
||
- 如果用户没有指定目录,且存在多个候选项目,先询问用户。
|
||
|
||
- 按自然剧情切块,不机械按字数切。
|
||
- 标记主要事件、冲突升级、人物目标、阻碍、反转、钩子。
|
||
- 对长篇输入先做章节级摘要,再做镜头级挑选。
|
||
- 对短篇输入可直接进入场景拆解。
|
||
|
||
### 1.5 集数/片段切分决策
|
||
|
||
先输出切分判断,再写分镜。切分依据只能是剧情结构和制作目标,不是文件体量。
|
||
|
||
判断维度:
|
||
|
||
- 主线事件数量:每集优先承载 1 个核心冲突和 1 个结尾钩子。
|
||
- 情绪弧线完整度:一集要有“进入处境 → 冲突升级 → 选择/反击 → 钩子”。
|
||
- 时间跨度:跨越多年、地点大转移或权力关系变化时,优先拆集。
|
||
- 高光密度:多个 S 级高光不能被压缩到同一个 15 秒片段里。
|
||
- Seedance 生成限制:单个视频片段仍保持 4-15 秒,但一集可包含多个 Seedance 片段。
|
||
|
||
切分输出必须包含:
|
||
|
||
- 推荐拆分方案。
|
||
- 备选方案:更短版、更完整版。
|
||
- 为什么不采用按字数/章节/文件大小切分。
|
||
- 当前将执行哪一版。
|
||
- 每一集的执行状态:`pending / in_progress / completed`。
|
||
|
||
### 1.6 全集批处理执行规则
|
||
|
||
默认执行推荐方案中的全部集数。不要只输出第一集。执行顺序:
|
||
|
||
1. 先根据输入路径创建与输入项目名一致的输出目录。
|
||
2. 先创建全局文件,尤其是 `03_全剧设定总览.md`、`04_人物场景道具设计.md`、`05_图片资产提示词.md`、`06_即梦资产提示词.md`。系列视觉架构、人物、场景、道具、资产提示词必须在全局层一次性完成。
|
||
3. 从 `05_图片资产提示词.md` 的 nano-banana-2 版筛选后续视频必需参考图,生成 `image_generation_jobs.json`。
|
||
4. 调用 `scripts/generate_upload_assets.mjs` 或等价实现执行 nano-banana-2 出图、保存本地图片、上传图片,生成 `uploaded_assets.json`。
|
||
5. 将上传后的公网 URL、官网上传名和参考职责回填 `08_附件清单.md` 与 `09_接口资产清单.md`。如果上传响应未能自动解析 URL,必须标注 `generated_uploaded_url_unparsed` 并保留原始响应,不能把本地路径当成 API URL。
|
||
6. 上传回填完成后,必须由 AI 再执行一次“即梦/Seedance 调用稿二次生成”:重新读取 `09_接口资产清单.md`,再生成或覆盖每集 `09_官网提示词.md` 与 `10_接口请求体.jsonl`。这一步必须发生在图片上传之后,不能在只有内部 `@角色/@场景` 时提前生成最终 JSONL。
|
||
7. 再为每一集创建独立目录,目录名必须是 `EP两位数字_中文集名`。
|
||
8. 对每一集执行:分析 → 改编方案 → 分镜 → 全局资产引用清单 → Seedance 提示词 → 转场快照 → 平台安全检测 → 质检 → 上传后二次生成官网/API 版本。
|
||
9. 分集不得重复输出人物设定板、场景设定板、MJ/nano-banana-2 图片资产提示词、即梦资产提示词。分集只能引用全局资产,并说明本集使用的是哪个阶段状态。
|
||
10. 分集 `09_官网提示词.md` 必须使用上传后的即梦官网素材名;分集 `10_接口请求体.jsonl` 必须使用上传后的公网 URL 或后续转换得到的 `asset://` URI。
|
||
11. 每完成一集,更新全局 `02_分集切分决策.md` 中该集状态。
|
||
12. 如果用户计划实际生成视频,先完成 `10_前置验证.md` 的最小可行验证;如果本轮只交付提示词,可先写“待实测”并保留验证位。
|
||
13. 全部集完成后,输出 `99_全剧质检总结.md`。
|
||
|
||
如果文本过长导致一次输出不完,也要保留状态文件,下一轮从第一个 `pending` 或 `in_progress` 集继续,不得重新开始。
|
||
|
||
### 1.7 前置视觉架构与验证
|
||
|
||
借鉴 v9 的前置阶段,当前工作流在逐集执行前必须完成以下设计:
|
||
|
||
1. 全文通读:识别类型标签、核心情绪、关键转折、视觉锚点、母题候选、场景和道具。
|
||
2. 色调情绪弧线:把剧情情绪翻译成色温、饱和度、光质和明暗分布的变化路径。
|
||
3. 系列情绪曲线:为每集标注情绪强度 `1-10`,建立本剧 `锚点3 / 锚点7 / 锚点10`,规划峰谷和情绪类型轮换。
|
||
4. 角色视觉演化:为主要角色建立体态轴、视线轴、手部习惯三轴状态卡,标注阶段转换触发事件、退化和速差。
|
||
5. 场景空间建档:为高频场景建立空间锚点、光线基准、材质、声学空间、情感残留和可用构图。
|
||
6. 风格配方与视觉签名:选择主风格配方,确定全剧稳定复现的视觉签名。
|
||
7. 平台策略:确定抖音基准、快手变体、小程序变体、App 变体或通用版,写明首 0.5 秒和视觉安全区策略。
|
||
|
||
前置验证用于实测,不强制在纯文本交付时完成视频生成,但必须预留记录:
|
||
|
||
- 最复杂光线场景。
|
||
- 3 人同框或群戏假象场景。
|
||
- 情绪最高点场景。
|
||
- 快速动作或身体接触场景。
|
||
- 类型融合场景。
|
||
- 推门/穿场声学切换场景。
|
||
- 多镜头序列极限场景。
|
||
- 空镜或沉默场景。
|
||
|
||
每次实测只改变一个变量,优先对比光线粒度、发声描述位置、运动速度措辞、镜头数、道具锚点位置。结果写入 `10_前置验证.md` 和 `11_生成行为记录.md`。
|
||
|
||
### 2. 影视化改编判断
|
||
|
||
优先选择这些内容入镜:
|
||
|
||
- 人物做出选择的瞬间。
|
||
- 权力关系发生变化的瞬间。
|
||
- 隐瞒、揭露、误会、背叛、反击、救援、失败。
|
||
- 有明确动作和空间关系的冲突。
|
||
- 能用表情、手部动作、道具、光线表达的内心变化。
|
||
|
||
降低或改写这些内容:
|
||
|
||
- 纯解释性心理活动。
|
||
- 长段世界观说明。
|
||
- 重复争吵但信息不递进的对白。
|
||
- 没有视觉动作支撑的“爽点总结”。
|
||
|
||
### 3. 分镜设计
|
||
|
||
每个片段先定义:
|
||
|
||
- 约束裁定:类型、平台、画幅、生成模式、裁定依据、自评目标。
|
||
- 片段目标:这 4-15 秒让观众看懂什么。
|
||
- 情绪位移:从什么状态变到什么状态。
|
||
- 视觉锚点:人物、道具、门、灯、血迹、手机、文件等。
|
||
- 首帧和尾帧:用于上下段连贯。
|
||
|
||
每个镜头写清:
|
||
|
||
- 时长、景别、机位、运动、主体动作、表情变化、环境动作、转场。
|
||
- 对白/VO/OS 必须嵌入对应镜头,避免声音和画面错位。
|
||
- 同一片段内不要让镜头全是正反打。每段至少有一个动作镜头或道具镜头。
|
||
- 每个镜头写完后执行空间与连续性硬检:摄影机位置、可见范围、物理可达、与上一镜连续、景别链路。检查结果写入片段注释。
|
||
- 每个片段按 `references/prompt_constraint_system.md` 的五维评分表打分;低于类型最低分必须返修后再输出 Seedance Prompt。
|
||
|
||
### 3.1 类型与镜头预设
|
||
|
||
识别本集主导类型后,自动套用类型预设:
|
||
|
||
- 复仇/虐渣:硬光、冷色、锐利阴影、压迫开场、反制或打脸画面。
|
||
- 甜宠/恋爱:柔光、暖色、双人关系镜头、未完成触碰或视线停顿。
|
||
- 悬疑/惊悚:低照度、局部线索、延迟揭示、每段最多一个新信息。
|
||
- 虐恋/情感撕裂:双光源对抗、停顿、吞话、手部泄露。
|
||
- 逆袭/爽剧:从压制到反击的角度和光线变化,成果展示。
|
||
|
||
类型融合时,在片段头部标注主导类型,光线以主导类型为基底,次要类型只作为局部对位。
|
||
|
||
### 4. 人物与场景资产设计
|
||
|
||
人物、场景和道具资产只能在全局层设计,写入 `04_人物场景道具设计.md`。不得按集重复分析同一个角色或同一个场景,因为这会导致后续图片和视频生成时一致性漂移。
|
||
|
||
每个重要角色输出:
|
||
|
||
- 角色定位、年龄段、体态、脸型、发型、服装、固定标记。
|
||
- 角色三轴演化:体态轴、视线轴、手部习惯;每次阶段转换必须绑定剧情触发事件,允许退化并记录退化残留。
|
||
- 习惯动作、表情基色、情绪临界点。
|
||
- 三视图需求:正面、侧面、背面,全身或半身。
|
||
- 表情表需求:中性、压抑、愤怒、震惊、冷笑、崩溃等。
|
||
- 视频一致性用法:给每个角色固定一个 `@角色名` 引用。
|
||
- 阶段状态:如果角色跨越服装/身份变化,在同一角色条目下写阶段状态,例如“伯府期 / 北疆期 / 回京期”,不要拆成多个彼此无关的新角色。
|
||
|
||
每个重要场景输出:
|
||
|
||
- 空间结构、核心道具、材质、光线、色温、声学空间。
|
||
- 空间锚点、可用构图、场景情感残留、残留衰减规则。
|
||
- 可复用的 Seedance 场景提示词。
|
||
- 首次出现时生成场景参考图,后续用 `@场景名` 复用。
|
||
|
||
每个关键道具输出:
|
||
|
||
- 初始状态、状态变化节点、持有人变化、位置锚点、情绪重量。
|
||
- 道具出现、消失或状态改变的承接规则。
|
||
|
||
分集只允许输出 `04_资产引用.md`,列明本集引用哪些全局资产和阶段状态。例如:
|
||
|
||
```text
|
||
@姜尚离:北疆期,粗布短打、竹簪、肤色晒深。
|
||
@洛华山寨:使用全局场景设定。
|
||
@水缸与沟渠:使用全局道具设定。
|
||
```
|
||
|
||
### 5. 图片资产提示词
|
||
|
||
图片资产提示词集中输出到全局 `05_图片资产提示词.md`,同时包含 `MJ版` 和 `nano-banana-2版`。先生成“高密度资产设定板母版”,再分别适配两个服务商:
|
||
|
||
- 人物:高密度中文角色设定板,包含基础档案、核心外貌、固定识别点、6种表情、半身、全身、三视图、服装配件拆解。
|
||
- 人物参考图出图提示词:每个主要人物必须在设定板之外输出 5 条可直接复制出图的提示词:`主设定板`、`标准中景参考图`、`面部特写参考图`、`侧光参考图`、`极端情绪参考图`。这些是用于后续 Seedance/即梦引用的单状态参考图,不是表情拼贴。提示词必须继承 `04_人物场景道具设计.md` 的外貌、固定标记、备用中景识别点、阶段服装、三轴身体状态和表情基色。
|
||
- 场景:多视角场景设定板,包含主视角、反向视角、俯视平面图、局部特写。
|
||
- 场景参考图出图提示词:每个主要场景必须在设定板之外输出 5 条可直接复制出图的提示词:`空间多视图设定板`、`主视角宽幅参考图`、`反向视角参考图`、`俯视布局参考图`、`局部锚点参考图`。提示词必须继承 `04_人物场景道具设计.md` 的空间结构、空间锚点、光线四维、材质、声学空间和情感残留。
|
||
- 道具:多角度拆解图,包含正面、侧面、背面/底部、手持比例、使用状态、材质局部。
|
||
- 图片资产提示词必须吸收 `04_人物场景道具设计.md` 中的三轴身体状态、空间锚点、情感残留和道具状态机,不生成与全局设计矛盾的漂亮但不可连续使用的图。
|
||
- 人物参考图必须保持同一脸型、发型基准、固定识别点、服装阶段和体态轴,不得因为表情或光线变化而换脸、换年龄、换服装。
|
||
- 场景参考图必须保持同一空间拓扑、入口出口、固定道具位置和光线方向,不得为了氛围改变空间结构。
|
||
- MJ版:适合美术概念探索和强风格视觉;如果不擅长中文标签,可减少标签或改用英文参数,但正文仍以中文交付。
|
||
- nano-banana-2版:适合中文标签、多视角设定板、多图组合和一致性编辑。
|
||
- 如果项目 `config.md` 指定只输出某个服务商,可按配置精简;否则两版都输出。
|
||
- 不得在每集目录里重复生成图片资产提示词。分集视频提示词只引用全局图片资产的内部引用和官网上传名。
|
||
|
||
### 5.1 图片生成与上传
|
||
|
||
完成 `05_图片资产提示词.md` 后,必须生成并执行 `image_generation_jobs.json`:
|
||
|
||
- 图片生成模型默认使用 nano-banana-2。
|
||
- 每个主要角色至少生成 1 张可用于视频引用的标准中景图;关键角色建议补充面部特写和侧光参考图。
|
||
- 每个主要场景至少生成 1 张主视角宽幅参考图;复杂空间建议补充反向视角和局部锚点参考图。
|
||
- 每个关键道具至少生成 1 张多角度拆解或手持比例参考图。
|
||
- 图片生成后必须调用上传接口,把 base64 图片、文件名、contentType 和 metadata 提交到上传服务。
|
||
- 上传后的 URL 是即梦/Seedance 后续引用的唯一可用图片地址;本地路径只用于审计和返修,不能写入 API `image_url.url`。
|
||
- 上传结果必须写入 `uploaded_assets.json`,再回填 `08_附件清单.md` 和 `09_接口资产清单.md`。
|
||
- 如果只完成提示词、未完成出图或上传,必须在最终交付中明确标注 `pending_generation` 或 `pending_upload`,不得标成可调用。
|
||
|
||
执行命令必须写入本次运行记录,执行到相关步骤可直接运行:
|
||
|
||
```bash
|
||
node workflows/novel_to_seedance/scripts/generate_upload_assets.mjs \
|
||
--jobs outputs/novel_video_runs/{输入项目名}/image_generation_jobs.json \
|
||
--out-dir outputs/novel_video_runs/{输入项目名}/assets/generated \
|
||
--manifest outputs/novel_video_runs/{输入项目名}/uploaded_assets.json
|
||
```
|
||
|
||
运行前检查:
|
||
|
||
- `GEMINI_API_KEY` 或 `GOOGLE_API_KEY` 已配置。
|
||
- `image_generation_jobs.json` 是合法 JSON 数组。
|
||
- 每条任务都有 `internalRef`、`type`、`fileName`、`jimengUploadName`、`referenceDuty` 和 `prompt`。
|
||
- 如需覆盖默认模型,设置 `NANO_BANANA_MODEL`。
|
||
- 如需覆盖默认上传接口,设置 `IMAGE_UPLOAD_URL`。
|
||
|
||
运行后检查:
|
||
|
||
- `assets/generated/` 中存在实际图片文件。
|
||
- `uploaded_assets.json` 中每条资产都有 `publicUrl`,或状态明确为 `uploaded_url_unparsed` 并保留 `uploadRawResponse`。
|
||
- `08_附件清单.md`、`09_接口资产清单.md`、分集 `09_官网提示词.md`、分集 `10_接口请求体.jsonl` 已使用上传后的公网 URL 或即梦官网素材名。
|
||
|
||
### 5.2 上传后调用稿分支
|
||
|
||
图片上传和 `09_接口资产清单.md` 回填完成后,进入“上传后调用稿分支”。
|
||
|
||
- 分支目标:由 AI 基于 `09_接口资产清单.md` 重新生成分集 `09_官网提示词.md` 与 `10_接口请求体.jsonl`。
|
||
- 输入来源:全局 `09_接口资产清单.md`、分集 `04_资产引用.md`、分集 `05_Seedance视频提示词.md`。
|
||
- 细则位置:上传和回填按 `references/image_generation_upload_rules.md`;上传后调用稿分支按 `references/post_upload_call_draft_rules.md`;API JSONL 多模态结构按 `references/api_payload_rules.md`。
|
||
- 出口标准:最终 JSONL 不能只写内部 `@角色/@场景`,必须按规则包含真实图片 URL 或明确缺失警告。
|
||
|
||
### 6. 即梦资产提示词
|
||
|
||
即梦资产提示词集中输出到全局 `06_即梦资产提示词.md`。即梦中文理解强,但内容审核通常对血腥、色情、暴力、自残、违法、敏感政治、真实人物权益和未成年人风险更敏感。本工作流必须单独输出一版更温和的中文提示词:
|
||
|
||
- 用“暗害、晕倒、危险药瓶、冲突、押解、跌倒、火线、浓烟”等替代强刺激词。
|
||
- 不写裸露、性暗示、青楼、助兴药、凶杀、血腥细节。
|
||
- 不要求生成真实公众人物、真实机构标识、可读官方文书。
|
||
- 古言暴力只保留动作结果和戏剧张力,避免伤口、血液、尸体细节。
|
||
- 即梦官网使用时,`@角色名` 只是内部资产名,不能代替上传附件。全局即梦资产提示词必须输出“官网附件清单”,用“参考图1/图2”引用已上传图片。
|
||
- 即梦人物资产必须输出安全版参考图提示词组:主设定板、标准中景、面部特写、侧光、极端情绪。每条都必须可直接复制到即梦图片生成框。
|
||
- 即梦场景资产必须输出安全版参考图提示词组:空间多视图设定板、主视角宽幅、反向视角、俯视布局、局部锚点。每条都必须可直接复制到即梦图片生成框。
|
||
- 分集不再输出 `06_即梦资产提示词.md`,只在 `09_官网提示词.md` 中列出本集需要上传哪些全局资产。
|
||
- 每条即梦提示词先标注风险等级 `OK / LOW / MEDIUM / HIGH / BLOCKED`。`MEDIUM` 以上必须按 `references/prompt_constraint_system.md` 的即梦改写表输出安全版,不输出原始高风险表达。
|
||
|
||
### 7. Seedance 2.0 视频提示词
|
||
|
||
每段提示词结构固定为:
|
||
|
||
```text
|
||
@角色 / @场景 / @道具引用
|
||
生成模式和参考职责
|
||
时长、画幅、风格、景别
|
||
首帧状态
|
||
镜头运动和主体动作
|
||
时间节拍
|
||
对白/口型/表情和微动作
|
||
声音/VO/环境音
|
||
环境变化和光线
|
||
一致性约束
|
||
尾帧状态
|
||
负面约束
|
||
```
|
||
|
||
每段视频提示词必须继承片段分镜中的约束裁定、自评结果和空间检查结论。正式 Prompt 代码块内不写评分过程,但必须反映评分后的修改结果:光线四项完整、主体动作靠前、道具锚点提前、对白与口型绑定、首尾帧明确、负面约束短而关键。
|
||
|
||
如果使用 Seedance 的声音/对白生成功能,对白、VO、环境音和必要音乐提示必须写进 Seedance Prompt 代码块,并与时间节拍、口型、语速、停顿、表情和听者反应绑定。每句对白尽量 4-12 个汉字,超过 18 个汉字优先拆句或拆段。正式图生视频或多模态参考必须写清“参考图/视频/音频分别负责什么,不参考什么”。
|
||
|
||
如果一段剧情超过 15 秒,要拆为多个片段;如果单个镜头少于 3-4 秒且信息量不足,可以与前后镜头融合为一个片段内的多镜头序列。
|
||
|
||
### 7.1 附件映射
|
||
|
||
每条视频提示词必须同时提供两版引用:
|
||
|
||
- 官网手动版:列出需要上传的附件。如果官网支持 `@` 已上传图片/素材,提示词中直接写 `@官网上传名`。
|
||
- API 版:列出 `内部引用 = 公网URL/asset URI`,在请求 `content` 中传图片,并在文本里说明“参考图1/图2/图3”或按平台支持的标签引用。
|
||
|
||
不要把工作流内部的 `@姜尚离` 当成平台可识别附件;必须映射到官网上传名、URL 或 `asset://` URI。详见 `references/attachment_reference_rules.md` 和 `references/api_payload_rules.md`。
|
||
|
||
### 7.2 API 请求体输出
|
||
|
||
如果用户选择 API 体系,每集必须输出 `10_接口请求体.jsonl`,每行一个片段任务。请求体至少包含:
|
||
|
||
- `episode`
|
||
- `shot_id`
|
||
- `model`
|
||
- `content`
|
||
- `parameters.duration`
|
||
- `parameters.resolution`
|
||
- `parameters.aspect_ratio`
|
||
- `callback_url` 占位
|
||
|
||
火山方舟视频生成 API 是异步任务,后续需要用任务 ID 查询结果。
|
||
|
||
### 7.5 去 AI 感表演处理
|
||
|
||
每段视频提示词在最终输出前,要按 `references/performance_naturalism_rules.md` 做一次表演自然化改写。
|
||
|
||
改写原则:
|
||
|
||
- 少写“愤怒、震惊、冷笑、崩溃”等抽象情绪,改写为停顿、视线、呼吸、手部细节。
|
||
- 每个角色都要有当前任务,不要只站着表达情绪。
|
||
- 每段最多一个明显镜头运动,避免全段推拉摇移。
|
||
- 允许动作有半秒迟疑、未完成感和前景遮挡。
|
||
- 每段追加自然表演约束:自然克制的真实演员表演,动作不要夸张,不要舞台化,不要网红短剧式瞪眼和冷笑。
|
||
- 负面约束追加:不要夸张表情,不要瞪眼,不要邪魅冷笑,不要机械微笑,不要僵硬站姿,不要所有人同时转头。
|
||
|
||
### 7.6 声音、节奏与观众心理
|
||
|
||
每段视频提示词必须把声音前置为生成条件,而不是后期备注:
|
||
|
||
- 对白/VO/OS 按标准标签写入 Prompt,并与时间节拍、口型、停顿和听者反应绑定。
|
||
- 环境音至少包含背景层和中景层,高光片段增加前景层。
|
||
- 声学空间写明混响时间、空间材质和声源距离。
|
||
- 情绪临界点优先设计主观音效,必须有具体触发原因。
|
||
- 连续低频环境音超过 8 秒时,用前景音重置注意力。
|
||
|
||
每段分镜必须做观众心理检查:
|
||
|
||
- 0-3 秒:观众是否知道谁在发生什么。
|
||
- 3-7 秒:是否出现第一个类型爽点或信息钩子。
|
||
- 7-12 秒:是否有升级、反转或更深一层信息。
|
||
- 12-15 秒:是否以钩子、情绪定格、反向蓄力或循环闭合结束。
|
||
- 连续 2.5 秒无对白、无新信息、无明显表情变化时,必须补信息钩子、悬念钩子或视觉钩子。
|
||
|
||
### 8. 平台安全检测与自动改写
|
||
|
||
每个 MJ、nano-banana-2、即梦、Seedance 提示词在输出前必须做安全检测。全局资产风险写入 `07_平台安全规则.md`,每集视频提示词风险写入该集 `07_提示词安全审查.md`。目标是降低违规概率,不承诺 100% 通过平台审核。
|
||
|
||
检测流程:
|
||
|
||
1. 标记风险词和风险场景。
|
||
2. 判断风险等级:`OK / LOW / MEDIUM / HIGH / BLOCKED`。
|
||
3. 对 `MEDIUM` 以上提示词先自动改写,再输出最终版。
|
||
4. 对 `HIGH` 或 `BLOCKED` 内容,删除不可生成细节,只保留安全替代表达。
|
||
5. MJ、nano-banana-2、即梦、Seedance 分别给出平台化改写,因为三者审核偏好不同。
|
||
|
||
高风险类别:
|
||
|
||
- 成人/性暗示:通房、青楼、助兴药、衣衫不整、挑逗、裸露。
|
||
- 未成年人风险:未成年角色与性、暴力、剥削语境同现。
|
||
- 血腥和惊悚:毒杀、尸体、伤口、鲜血、残忍、凶杀细节。
|
||
- 暴力和危险行为:自残、酷刑、具体伤害方法、危险器械教程。
|
||
- 违法犯罪:投毒细节、制毒、规避执法、诈骗。
|
||
- 政治和公共安全:真实政治人物、现实国家政权煽动、谣言。
|
||
- 仇恨/歧视/侮辱:针对群体的贬损。
|
||
- 真实人物和权益:真实名人肖像、商标、可读官方文书、隐私信息。
|
||
|
||
安全改写原则:
|
||
|
||
- “毒杀”改为“暗害”“衣料上的危险药痕”“突然倒下”。
|
||
- “助兴药/青楼”改为“来路不明的危险药瓶”“不合规药物”。
|
||
- “踹到墙上”改为“猛地逼退到墙边”或“肩背撞到墙面,无血腥细节”。
|
||
- “尸体/血”改为“倒地不起”“画面避开伤害细节”。
|
||
- “未成年少女”改为“年轻成年女性”或不写具体年龄。
|
||
- “圣旨文字”不生成可读文字,只写“明黄卷轴/官方文书感”。
|
||
|
||
### 9. 转场连续性
|
||
|
||
每个片段必须输出:
|
||
|
||
- 入场承接:上一段尾帧中哪些人物/道具/动作延续。
|
||
- 出场快照:尾帧画面、人物位置、表情、手势、道具状态、光线。
|
||
- 下一段提示:下一段首帧如何接住这个状态。
|
||
|
||
### 10. 质检
|
||
|
||
最终逐项检查:
|
||
|
||
- 片段时长是否 4-15 秒。
|
||
- 每段是否有明确情绪位移。
|
||
- 角色名、服装、伤痕、道具是否一致。
|
||
- `@角色`、`@场景`、`@道具` 是否完整。
|
||
- 上下段尾帧/首帧是否能接上。
|
||
- 是否避免无意义慢镜头、空泛形容词和不可拍的心理描写。
|
||
- 是否符合平台和工具的安全边界。
|
||
|
||
### 11. 生成反馈、维护与防漂移
|
||
|
||
如果用户把生成结果或返修意见反馈回来,按以下闭环处理:
|
||
|
||
1. 先判断问题类型:光线漂移、运动倍速、人物站位漂移、面部崩坏、口型异步、道具瞬移、自动字幕/配乐、场景元素丢失、AI 味。
|
||
2. 只改一个变量:参考图、动作、镜头、光线、声音或约束,不一次性重写整条 Prompt。
|
||
3. 修复结果写入 `11_生成行为记录.md`,记录原 Prompt 触发词、修复词、偏差类型和修复策略。
|
||
4. 同一偏差类型累计 3 次,升级为全局预防规则,写入 `12_系列维护.md`。
|
||
|
||
长篇或多集项目每 10 集做一次成片率追踪,每 20 集做一次系列维护:
|
||
|
||
- 色调是否仍在情绪弧线上。
|
||
- 角色三轴演化是否按剧情事件推进,有无必要退化或跳跃。
|
||
- 场景情感残留是否被继承或衰减。
|
||
- 视觉签名是否变淡。
|
||
- 参考图是否退化:面部漂移、固定标记模糊、微表情响应衰减、光线适应性下降。
|
||
- Prompt 是否漂移:句式疲劳、情绪词汇消耗、技法偏好固化、光线描述模板化。
|
||
- 成片率是否下降,最高频失败模式是否需要全局预防升级。
|
||
|
||
|
||
|
||
|