通用视频制作流水线(video-production-studio)
把任何"要一个视频"的请求,变成一条有边界的流水线:剧本 → 资产 → 分镜 → 提示词 → 确认 → 生产 → 交付。
文件是唯一创作真相;视频提示词统一输出 MiniMax H3 原生格式(融合 h3-prompt-writing 规范),
可直接粘贴进 H3 工作流/RH 通道执行。
本技能由 zenstory-ai/drama-skills(10 个短剧技能)蒸馏优化而来:去掉漫剧专属词汇、python3 校验器与外部云端 adapter,泛化为全类型短片制作,并把"生产"接到 Harness 本地工具链。
何时用 / 何时不用
- 用:用户给了点子/小说/文案/剧本/图片参考,要"做成视频、写分镜、写 H3 提示词、生成并合成成片"; 形态不限:短剧、漫剧、单条叙事短片、广告、科普、MV、产品演示、品牌开场。
- 不用:已有更专门的 skill 覆盖的形态优先走专门 skill——口播/讲解(
h3-video-producer)、 3D 动画短片(3d-animation-short-generator)、品牌广告(brand-promo-video-generator)、 极简产品广告(minimalist-product-ad-generator)、MV 字幕(music-video-subtitle-generator)。 本技能是这些形态的兜底通用流水线,也可作为它们的上游(先出剧本/分镜/H3 提示词再交给专门 skill 生产)。
项目形态
- 系列剧(多集):完整五文档,
剧集/EP001/、剧集/EP002/…,跨集复用资产与角色外观。 - 单条短片:按需只维护需要的文档(通常"剧本 + 分镜 + 视频提示词"即可,或一步到位直接出 H3 提示词)。
五文档原则:按需创建,不预建空文件;一次请求只创建它需要的文档,批次自动续跑, 不在每批后停下等"继续"。
流水线总览
输入(点子 / 小说 / 文案 / 剧本 / 图片参考)
│
├─ 可选:长材料分析 / 分集规划(仅大部头或系列时)
▼
① 剧本.md(单集 / 单条)
▼
② 视觉设定.md(人物/地点/道具:身份 vs 变体)
├───────────────┐
▼ ▼
③ 图片提示词.md ④ 分镜.md(SHOT-* + 冻结关键帧)
▼
⑤ 视频提示词.md(MOTION-* → H3 原生提示词)
└───────────────┬───────────────┘
▼
⑥ 生产闸门:预览 → 明确确认 → 调用本地通道 → 落盘 剧集/<EP>/制作成果/
▼
⑦ 审查(按需)→ 合成 / 交付
阶段速查表
| 用户要什么 | 做 | 产出 |
|---|---|---|
| 开发点子 / 多集规划 / 改编小说 | 定位简报 + 分集地图 | 项目开发/creative-brief.md、episode-map.jsonl |
| 写 / 改剧本 | 剧本写作 | 剧集/<EP>/剧本.md |
| 拆人物/场景/道具 | 资产拆解 | 剧集/<EP>/视觉设定.md |
| 写参考图 / 风格帧提示词 | 图片提示词 | 剧集/<EP>/图片提示词.md |
| 分镜 / 冻结关键帧 | 分镜 | 剧集/<EP>/分镜.md |
| 视频 / 配乐提示词 | H3 原生提示词 | 剧集/<EP>/视频提示词.md |
| 实际生成图片/视频 | 预览 → 确认 → 生产 | 剧集/<EP>/制作成果/ |
| 审稿 / 校验 | 审查 | 审查/<EP>-审查.md |
现成剧本可直接拆资产;已有视觉事实可直接写图片提示词或分镜;已有分镜可直接写视频提示词。 不要为补齐名义流水线伪造上游。长材料分析与分集地图是可选工作区,不参与单集布局判定。
全局铁律
- 文件是唯一创作真相:五份 Markdown 即创作事实;不建并行的 JSON/JSONL 生命周期、索引、指纹、QA 表。
- 生产永远
预览 → 明确确认 → 执行:任何内容/参考/参数/输出变化立即失效旧确认;失败重试必须重新确认。 - 视频提示词输出统一为 H3 原生格式:字段名、顺序、标签与
h3-prompt-writing规范完全一致。 - 一致性:角色外观一旦锁定全剧不漂移;资产全剧复用不重复生成;改图基于原图(image2image)不文生图重建。
- 语言:创作者可读说明跟随用户语言;H3 提示词正文用英文写(对白/歌词/画面可见文字保留原语言)。
- 停靠点只有三处:用户点名范围完成;缺失事实形成真实创作分叉;即将调用外部生产。其余批次自动继续。
- 外部生产永远发生在用户看到精确预览之后;"继续""都做完""预算没问题"都不算本次生产确认。
① 剧本(剧本.md)
- 一级标题
# EP001 集名;场景## EP001-SC001 内 · 地点 · 时间/天气。 - 对白
角色(可选表演提示):台词;生产标签[VO]、[OS]、[SFX]、[画面文字]、[连续性]、[转场]。 - 每场必须改变信息、权力、关系、情绪、物理状态或风险;无变化的场删掉或合并。
- 对白在争取、回避、试探、逼迫或重新定义关系;用可见可听可触的行为表现状态,不用解释替代行动。
- 交稿前经济性检查:是否堆了重复验证、解释、同向后果;没有新作用的内容删掉。
- 用户原文优先;"去 AI 味"是定点修订,不抹平作者个性。
② 资产(视觉设定.md)
先区分四类,再决定复用/新建/变体:
身份:换一个就不再是同一个人/地/物(新建或复用);
变体:身份不变但服装/伤势/时段/天气/开合/持有状态改变;
镜头瞬态:姿势、视线、左右手、站位、机位——归分镜拥有;
故事语义:知识、目标、关系、情绪——归写作拥有,只引用可见后果。
每项先写"什么不变使它仍是同一资产",再写本集变化;识别锚点必须可见、可生成、可比较, 不用空泛质量词替代事实。
多集状态写清生效与持续范围;声音参考(音色/语速/授权)单独记录。
③ 图片提示词(图片提示词.md)
- 每项
## IMG-...标题,可复制正文放### 可复制提示词引用块。IMG-*是稳定 ID,不声明图片已生成。 - 配方:主体与身份锚点 → 当前变体 → 构图/视角 → 光色/材质 → 背景边界 → 禁止项。
- 保留稳定识别锚点,变体只改允许变化的部分;可见文字/logo/水印明确允许或禁止。
- 正文可直接复制,不含占位符、流程说明、文件路径或 QA 结论。
- 生成走 Z-Image(
comfyui_generate):竖屏默认 720×1280、steps 8、cfg 1、shift 3、lora 0.95、同参数同种子可复现。
④ 分镜(分镜.md)
- 每镜
## SHOT-...,同镜下### 冻结关键帧提示词写起始帧正文(只投影镜头起点, 删除终点才出现的文字/动作/姿态/道具状态)。 - 每镜写清:唯一职责、来源场景、时长、景别/机位、起点、终点、声音和视觉依据。
- 锁定人物朝向、位置、视线、持物、出入口、屏幕方向。
- 切镜必须带来信息/权力/情绪/空间/节奏变化;同义重复镜头删掉;同一动作不跨镜重复发生; 终点应能成为下一镜可信起点。
- 参考图是独立轴:创作者已提供的真实图片用
REF-...槽位,写显式顺序、项目相对路径、中文名、 「控制」与「不得控制」范围;没有就写「输入参考图:无」。 - 竖屏短剧可加一条可选约束:关键信息(脸/手/文字)避开画面底部约 1/5 播放界面叠加区, 避免被平台按钮遮挡。
⑤ 视频提示词(视频提示词.md)—— H3 融合(核心交付)
每镜 ## MOTION-...,引用对应 SHOT-...;可复制正文 = 整段 H3 原生提示词,可直接粘贴到
H3 工作流提示词输入(ComfyUI MiniMax 提示词增强 节点 / RH run_i2v_workflow.py --prompt / 本地 H3)。
模式选择(按参考情况)
| 参考情况 | H3 模式 | 正文结构 |
|---|---|---|
| 无参考图 | T2VA | 三核心字段(无首行指令) |
| 单张首帧/关键帧(作字面第一帧) | I2VA | 首帧指令行 + 三核心字段 |
| 首尾两帧 | FL2VA | 对齐指令行 + 三核心字段 |
| 仅末帧 | L2VA | 对齐指令行 + 三核心字段 |
| 多参考(角色+场景+动作)、跨集锁身份、系列剧主力 | Ref2VA | 六段式(见下) |
三核心字段(T2VA/I2VA/FL2VA/L2VA):
(I2VA/FL2VA/L2VA 先写对应的对齐指令行,后接空行)
integrated_multimodal_description: [Shot 1] ...(沿时间轴:风格/初始构图/主体外观位置/场景道具/动作反应/镜头变化/说话者/对白/同期声)
overall_soundscape: ...(环境音/物理动作声/非语言人声,1-4 句)
non_diegetic_music: ...(观众才听得见的 BGM:配器/速度/节奏/动态,1-3 句)
Ref2VA 六段式(顺序不可变,标签全片一致):
subject_definitions: <Subject 1> is ... / <Picture 1> is ...(定义每个被引用内容与标签)
summary: [reference generation] ...(任务类型前缀 + 目标视频与引用关系一句话)
retention_analysis: <Subject 1> (appears in [Shot 1], [Shot 3]): fully_preserved - ...(逐标签)
detailed_description: 风格开场句 → [Shot 1] ... → [Shot N] At MM:SS.mmm, the camera cuts to ...(350-500 词)
overall_soundscape: ...
non_diegetic_music: ...
内容纪律(写进 H3 描述,来自 motion craft)
- 每镜一条主线:静态锚点 → 起点 → 触发 → 主体动作 → 次级反应 → 运镜 → 声音 → 可验证终点。
- 首镜必须声明运动起点:RH I2V 铁律——
第0帧起画面即处于运动中,禁止静态开场; 开头动词用进行时动作,不要写"站立/看向镜头/平静"。 - 运镜写自然英文:类型+幅度+速度(
The camera pushes in with small amplitude at slow speed toward ...)。 - 说话者用稳定 ID
(S1)/(S2);对白/歌词写<d>[语言] 原文</d>逐字保留;画外音用says in an off-screen voiceover并注明while his lips remain completely closed。 - 画面可见文字(招牌/字幕/霓虹)用英文双引号保留原文。
- 后续镜头
[Shot N] At MM:SS.mmm, the camera cuts to ...;切镜必须带来新信息。 - 一镜只写一个主要变化;不跨下一镜;不要求互斥动作;不让人物/道具瞬移变形; 声音只写该镜需要的对白/环境/转场职责。
- 标签一致性:
<Subject N>/<Picture N>全片一致,对应图片提示词与分镜里的资产条目。
时间线配乐 / 主题曲(用户明确要求时)
在视频提示词文档增加独立章节:使用区间、剧情功能、进入/退出、动态曲线、禁用项。 歌词只能来自用户提供或明确接受的文本;纯配乐不携带歌词。供应商不能精确承诺时长时, 生成源音轨后由剪辑按文档混音意图完成落点、循环、淡入淡出与对白 ducking(ffmpeg)。
静态漫剧 / 关键帧切换形态
只需要"关键帧切换 + 配音"时可以跳过逐镜运动提示词,分镜关键帧与图片提示词直接进入生产预览。
Look Development(可选分支,不是门槛)
需要比较视觉方向、统一画风时才做:用 Z-Image 出 2-4 张风格代表帧(同一主体不同画风/调色), 用户选定后把方向写进视觉设定与图片提示词;不需要时直接按现有视觉事实写提示词。
⑥ 生产(唯一固定门禁)
四步闸门(顺序不可合并)
- 从当前
图片提示词.md/视频提示词.md的对应条目建立有边界 job:一种 modality、 明确数量、完整提示词、参考文件、参数、输出路径与通道。 - 展示完整预览(数量、正文、source 条目、参考图绑定、参数、输出、通道);此时不调用任何供应商。
- 等用户在看到这份预览之后明确确认。
- 执行;内容/参考/参数/输出任一变化,旧确认立即失效;失败重试也需要新的明确确认。
job 模板(在对话/临时文件里维护,不落创作文档)
{
"job_id": "EP001-vid-003",
"modality": "video",
"source": "剧集/EP001/视频提示词.md",
"source_entry": "MOTION-EP001-003",
"prompt": "<该条目的 H3 可复制正文>",
"reference_bindings": [
{"slot": "REF-001", "path": "剧集/EP001/制作成果/IMG-EP001-001.png",
"name": "江晨角色板", "may_control": ["身份", "造型"], "must_not_control": ["构图", "动作", "背景"]}
],
"parameters": {"mode": "Ref2VA", "duration": 8, "aspect": "16:9"},
"channel": "rh-ref2va",
"outputs": ["剧集/EP001/制作成果/vid-003.mp4"],
"overwrite": false
}
source/source_entry 锁定来源条目;reference_bindings 逐张写路径、中文名与
「控制/不得控制」边界(这是生产端实际读取哪些文件字节、各自影响什么的权威);
overwrite 必须显式 true 才允许覆盖已有结果。
通道映射(Harness 本地工具链)
| 内容 | 通道 | 调用方式 | 关键约束 |
|---|---|---|---|
| 图片(角色板/场景板/道具板/风格帧) | 本地 ComfyUI Z-Image | comfyui_generate 工具 |
720×1280 竖屏默认;steps≤10(8);cfg 1;shift 3;lora 0.95;同种子可复现 |
| 图生视频 16:9(参考图锁身份,不作字面首帧) | RunningHub H3 Ref2VA | python run_i2v_workflow.py --workflow-id 2085980820623413250 --image <图> --resize-max 1280 --prompt <H3正文> --duration N(Local_LLM/RH_Workflow_Api/) |
参考图只缩放到最长边 1280px,绝不裁剪 |
| 图生视频 9:16 竖屏 | RunningHub H3 I2V | python run_i2v_workflow.py --image <图> --resize-max 1280 --prompt <H3正文> --duration N(workflow 2085953821150367746) |
首帧图=字面第一帧;提示词首句声明 0 帧即运动 |
| 文生视频(无参考、10s 竖屏) | 豆包 Seedance 2.0 | doubao-creator 技能:node <skill>/scripts/doubao-genvideo-text.js "<需求>" |
不传真人脸参考图;人物形象用"看图反推→文字锚定"破局 |
| 口播/讲解(三模式) | 本地 ComfyUI H3 分段 | h3-video-producer 技能(segment-generate.mjs + compose-final.mjs) |
机器铁律:ComfyUI 生成期间不跑 Ollama 视觉分析 |
| 成片质检 | Ollama 视觉 | analyze_image 工具 |
仅在 ComfyUI 队列完全空闲时执行,分析后卸载视觉模型 |
| 合成/字幕/BGM/转场 | ffmpeg | pwsh + ffmpeg | 硬切为主;字幕 ASS;BGM 低音量说话时避让;结尾淡出 |
生产硬规则
- 参考图只缩放不裁剪(RH);豆包不传真实人脸参考(先反推文字描述再文生视频)。
- 供应商凭据不进项目文件;只在运行环境/脚本配置里读取。
- 一个 job 不混合 modality;大批量拆成创作者能看清数量与成本边界的小 job。
- 成功回报实际输出路径与运行状态,不把"通道返回成功"写成质量结论。
- 失败三路走:技术失败(超时/限流)有上限重试;被拒的是哪一项输入就先改哪一项再投; 重复内容缺陷回到对应 prompt owner。
⑦ 审查(按需,用户点名才做)
- 范围:
story_script/assets_continuity/image_prompts/storyboard_keyframes/video_prompts/production_outputs/full_episode/delivery_privacy。 - 每个 finding 写清:位置(文件/ID/行号)、必要证据、观众或制作影响、必须达到的修订结果、owner、严重程度。
- 结论:
APPROVE/APPROVE_WITH_NOTES/REVISE/PROVISIONAL。 - 跨文档综合顺序:剧本事实 → 视觉设定 → 镜头职责与边界 → 冻结关键帧 → 视频运动 → 下一状态。
- 只定位问题与修订要求,不在同一轮替 owner 改来源;审查文件只保留最小证据,不复制私有输入。
本地通道前置检查(生产前确认)
- ComfyUI 在
http://127.0.0.1:8188运行且 Z-Image/H3 工作流可用; - RH 脚本目录
E:\Harness Workspace\Local_LLM\RH_Workflow_Api\存在,API Key 已配置(先--check); - 豆包通道需夸克调试模式 + doubao.com 登录态;
- 机器约束:ComfyUI 生成期间绝不调用 Ollama 视觉分析;分析后立即卸载视觉模型(keep_alive=0)。
按需知识(只读需要的一份,不遍历)
- 阶段边界、规则分级、所有权:
references/stage-contract.md - 五文档格式规范与条目 ID 规律:
references/creator-documents.md - 故事引擎/剧本/对白手艺:
references/craft-script.md - 资产拆解与图片提示词配方:
references/craft-assets-prompts.md - 分镜/关键帧/视频提示词与 H3 写法:
references/craft-storyboard-motion.md - 本地通道详细参数与踩坑:
references/harness-channels.md - 审查 rubric:
references/review-rubric.md
复杂 Ref2VA 写正文前,直接读 h3-prompt-writing 技能的 references/ref-en.txt 保证字段与标签精确;
基础模式读 references/base-en.txt。融合写法示例(五文档条目 → H3 正文的对照):
examples/h3-fusion-example.md。