VideoExpress 脚本编写
制作一份生产就绪的 提示包:一份动态文档,将完整作品(歌曲、旁白、故事)映射到一系列片段,每个片段包含起始图像计划和可直接粘贴的 VE 多镜头提示。然后支持生成:诊断报告失败,全局修复,扫描所有受影响片段。
驱动本技能几乎所有内容的两点事实:
- 模型渲染名词,而非意图。 每个名词、数量、明喻和残留标记都是可能出现在屏幕上的候选。
- 每次生成只知道它被赋予了气什么。 链式片段只看到一个静止图像(前一片段的最后一帧)加上提示。它没有前一片段运动的记忆、对任何画框外内容的记忆、或之前提示的记忆。任何在开始帧中不可见或提示中未描述的内容都会被创造出来。
下一步阅读目录
只读当前步骤需要的内容。references/ 中的一切均为自包含。
| 当您… | 阅读内容 |
|---|---|
| 开始一个新项目,或用户有一个概念或脚本 | references/project-intake.md —— 问题系统、可行性检查、开发测试、简要和核心圣经确认 |
| 编写或修改角色、服装或地点块;起始图像;一致性角色引用;非人类角色 | references/bible.md |
| 选择风格,或在创意模式或自定义风格中编写任何提示 | references/styles/README.md(共享配方和索引),然后是你需要的那个样式表 |
| 编写任何视频提示 | references/multishot-template.md —— 标签结构、空白模板和示例 |
| 计划片段网格、链式连接、摄像机移动或任何 [ACTION] 片段 | references/camera-and-motion.md |
| 编写 [LIGHT AND IMAGE] 或 [PRODUCTION SOUND],任何含对白的片段,或第一人视角 / HUD 镜头 | references/light-sound-dialogue.md |
| 编写或调试任何提示;用户报告失败 | references/prompt-rules.md —— 引擎如何读取提示,以及失败 → 原因 → 规则表 |
| 被要求用浏览器代理驱动 app.videoexpress.ai | references/browser-workflow.md —— 先阅读,逐步执行 |
对于项目中间的一个单独提示请求,通常的集合是 multishot-template.md + prompt-rules.md + 片段所涉及的 bible.md、camera-and-motion.md、light-sound-dialogue.md 和样式表。对于报告失败,从 prompt-rules.md 中的表格开始。
工作流程
- 接收 —— 运行
references/project-intake.md(如果这是对话中该技能的首次使用,则在以下新内容问题之后):起点(概念或脚本)、带建议的决策清单、可行性检查、任何开发测试、对简要和核心圣经的确认。 - 概念 —— 场景、母题、角色、世界,以及与源结构映射的视觉弧线(如下)。
- 圣经 —— 锁定的角色块、服装块和地点块,一次性编写并逐字粘贴到所有地方(
bible.md)。 - 时间安排 —— 一个以工具片段长度为单位的片段网格,关键落点已由用户对照真实音频验证(
camera-and-motion.md)。 - 提示包 —— 每个片段的起始图像提示和多镜头视频提示(
multishot-template.md加上相关参考)。 - 生成支持 —— 按机制诊断报告失败,全局修复,扫描所有受影响片段(
prompt-rules.md)。
当脚本确认后,在同一回复中开始生产:如果助手操作 VE,询问是否现在在浏览器中打开 VideoExpress 标签页,并给出第一个可直接粘贴的提示及其设置,无论由谁操作(references/project-intake.md,开始生产)。
包是一个动态文档。随着用户生成片段,预计会有多轮修订。
对话中首次使用:新内容
当该技能在对话中首次使用时,无论用户的第一条消息是什么(新项目、单个提示、关于技能的问题、报告的问题),在这些之前先询问以下内容,作为是/否问题,一次一个,并在平台没有问题控件时带编号选项:
每个版本一次,如果内存允许。 首先检查您可以读取的任何持久内存(助手的保存记忆、项目记忆文件)中是否有记录表明该版本的“新内容”问题已显示。如果有,跳过这两个问题。如果没有,询问它们;然后,如果内存开启,保存一行记录“VideoExpress Scripting [版本]:新内容已显示。” 并告诉用户一次:“我会记住您已经看过这个,所以我不会再为这个版本询问。” 没有内存或未找到记录时,按如下方式询问:再次询问是安全的备选方案。
- “VideoExpress Scripting 已更新到版本 [版本]。您想要快速了解新内容吗?” 从本文件的
metadata.version中获取版本,不带任何-dev后缀。如果回答是,读取references/changelog.md并显示其当前发布说明(文件的开头行说明哪些部分)作为项目符号列表:每个版本一个简短标题,最新版本在前,然后每个 Headline 和 New 项目一个短项目符号(一个版本的 Fixed 项目可以共享一个项目符号)。切勿将说明折叠成句子或括号内。 - 对于这些当前发布说明中每个带有问题的 Headline 项目,除非其“跳过如果”条件成立:询问其问题。如果回答是,给出安装链接并说明它打开安装步骤:对于 VideoExpress Prompt,https://github.com/ratava/videoexpress-scripting-skill/wiki/Install-VideoExpress-Prompt(页面有针对每个平台的部分,包括 ChatGPT 和 Grok)。
然后回答用户的第一条消息,或开始新项目的接收。如果技能在没有自身消息(只有名称或斜杠命令)的情况下启动,将其视为新项目:直接进入“您想如何开始?”卡片(references/project-intake.md,步骤 1),作为问题卡片(平台没有问题控件时带编号选项),而不是散文菜单。当第一条消息已经说明了想要的内容(一个想法、一个脚本、一个提示、一个失败镜头)时,直接行动,无需询问用户想要什么。每个对话只询问一次“新内容”问题,之后不再重复。
以项目命名对话。 一旦新项目有了工作标题(来自用户的想法或简要),如果您有重命名工具(Grok 可以重命名其聊天;ChatGPT 不能),将对话重命名为“[标题] · VideoExpress”。否则保持名称不变。
概念设计
- 设计 2–4 个重复母题 来承载视频(强调色、手势、光效、重复道具)。母题提供了 AI 生成本身无法提供的连续性。
- 将源结构映射到 场景表:场景 → 时间范围 → 片段 → 服装 → 地点 → 母题状态。跨场景提升母题。
- 关键时刻需要视觉事件。 大落点或关键台词获得揭示或动作爆发,铺垫时保持静止以便落点落地,场景变化落在章节边界上。
- 给每个场景一个逻辑开场。 在主行动之前,建立角色到达、注意到某事或做出反应。
- 偏好能够可靠生成的内容:稳定的摄像机移动、光照变化、飘浮的氛围、一个清晰的主体。背景中的奇观,前景中的表演。
- 对白通过两种方式对口型同步(多镜头提示中的引用行,或 Lipsync HD 对话框;参见
light-sound-dialogue.md)。在没有对白的镜头中,保持嘴巴闭合或不在视野内,以免创造出对话,并且如果下一个片段有对白,切勿在口中含物或手中拿食物结束片段。 - 背景兴趣(车辆、人群、城市生活)需明确命名并保持距离,以免跨越主体。
适用于每个提示的规则
这些是被遗忘时最易造成损坏的规则。参考资料中包含了详细信息和其余规则。
- 当遵循提示包时,每个提示以方括号中的片段引用开始, 完全按照包中声明的针对该图像或片段的方式:视频提示的
[Clip 12],起始图像的[Image 12A],测试变体的[Clip 12 TEST 1]。它出现在任何样式锚点或 [REFERENCE USE] 之前,以便每个库图块和镜头都能与包匹配。详情见multishot-template.md。 - 圣经块逐字粘贴。 转述就是漂移。当起始图像完美呈现外观时,视频提示重用该图像提示的精确措辞,而不是圣经的旧措辞。
- 匹配帧,而非计划。 在编写之前查看链式连接开始帧或已接受的起始图像:精确描述道具、框架和障碍物的几何形状,如同帧中显示的那样。
- 引号表示对话。 在 [ACTION] 中引用每个台词一次,并且仅引用一次,且不要引用其他内容。每个片段最多两名说话者。
- 到处都是肯定,除了 [NEGATIVES]。 VE 将其他所有部分理解为要包含的内容,即使前面有“no”、“not”或“never”,因此说明应该存在什么以及什么保持静止,并将所有排除项放在 [NEGATIVES] 中,每个都写成“No”(“No music, no hum”)。用主体的运动引导每个段。
- 摄像机:除非要求否则锁定,每个移动在每个片段中命名相同,每个移动都有目的地,从未返回已经离开框架的空间。 永远不要编写相对于另一个片段的移动。
- 细节仅在 VE 上次绘制的大小上保持。 推近镜头会放大脸部或道具,或者道具离开框架然后返回,这会迫使 VE 根据文本重新绘制。从一个最接近构图开始帧的起始图像开始每个片段;更近的镜头是一个新片段。
- 链式连接:标记细节风险,不要规定。 链式连接的片段在拍摄的最后一帧打开,细节仅在 VE 上次绘制的大小上保持。当计划的链式连接存在细节漂移风险时(比最后一帧更近的构图、拉远并返回、在最后一帧中较小但细节丰富的面部或道具),在每个项目或包部分(比如一集)在该部分的全局规则中说明一次,并提供选项:保持构图匹配、重新生成父项、或从新的起始图像开始。如何链式连接由用户选择。
- 没有计数事件;不承诺文字。 将屏幕、标志和其他携带文本的物体描述为抽象形状和光。
- 效果增加光线,绝不替代它。 保持主光源在主体上;在最终段中重申亮度;永远不要从变暗的帧开始链式连接。
- 每个段一个 [PRODUCTION SOUND] 块,带有段的时间标签; 在最后一个段之后的单个块仅绑定到该段,并将其余部分留给 VE,通常是音乐。瞬态声音与动作绑定;永远不要要求静音(它会渲染为隆隆声和噼啪声);使片段长度适合动作和对白;以该段中听到的内容关闭每个块。
- 风格化外观需要在视频提示的最开头放置样式锚点(紧接在片段引用之后、[REFERENCE USE] 之前)以及每个 [LIGHT AND IMAGE] 中,加上反写实否定。
- 保持“自动增强我的视频提示”关闭。 它会重写为简短散文并丢弃圣经、时间标签和片段引用。提示框大约容纳 6,000 个字符;首先修剪重复的样式文本和否定项。
- 制作没有角色的起始图像时(空环境、第一人视角、插入镜头),关闭“一致性角色”。 它只影响“创建图像”;“创建视频”忽略它。
提示包文档
- 概述:场景表(场景、片段、时间范围、服装、VE 长度);提示格式说明;每个片段需要提供的参考;粘贴规则(只有代码块内的文本被粘贴;标题携带元数据)。
- 全局规则:上述规则以及来自参考资料中适用于本项目规则。
- 圣经:角色核心块、服装块、地点块、样式行。
- 每个场景:起始图像(每个都有声明的引用如 Image 12A,以及以
[Image 12A]开头且自包含的提示),然后每个片段——标题行(片段引用如 Clip 12 · 时间范围 · VE 长度 · FRESH from image X 或 CHAIN from clip N · 角色标签)以及完整的多镜头提示,以[Clip 12]开头,放在代码块中。 - 编辑、时间安排和质量控制:过渡、每拍摄质量检查清单(在
prompt-rules.md中)、未解决问题。
对于替代方案,添加新标签或部分而不是覆盖工作片段,并包括任何必须更改以便正确交接的相邻片段。一旦生成开始,保持片段和图像引用稳定,因为它们是识别拍摄的依据;如果片段被裁剪,保留间隙并注明。替代方案获得自己的引用(Clip 12B),绝不重复使用。
生产期间的工作风格
- 用户一次报告一个失败,通常带帧。诊断 机制(
prompt-rules.md中的表格),全局修复,并扫描所有尚未生成且存在相同风险的片段。 - 阅读用户发送的帧:注意实际渲染了什么,并编写下一个提示以匹配现有内容。
- 当用户直接编辑包时,在编写之前重新阅读,并且除非明确说明,否则切勿覆盖他们的更改。
- 当用户陈述偏好(“保留它”、“我更喜欢这个外观”)时,将其视为新规则并应用到处,包括重写圣经块以匹配帧。
- 保护回报镜头:在每一个早期提示中保护它们的先决条件。
- 当用户要求在运行前查看提示时,显示完整的可粘贴提示, 然后要求运行它。不要先运行。
- 隔离顽固失败。 当问题经过两轮提示后仍然存在,停止改写。保持基础提示固定,并为每个变体运行一次拍摄,每次更改一个变量,每个变体使用唯一引用(
[Clip 12 TEST 1]、[Clip 12 TEST 2]),加上一个之前干净提示的控制拍摄。记录哪些变量重要。 - 知道何时停止。 如果序列已经与概念严重偏离,说出来并提供重新开始该序列。