Skip to main content

previz

当用户发来一段视频提示词(motion prompt)想在花钱生成前先看看画面时使用——读提示词,翻成三维场景,缺画面必需的信息就一次问齐,然后直接渲成导演台风格的三维 HTML 预览:动态放映为主,宫格 / 关键帧 / 站位图 / 场记平面图 / 接缝检查按需。代码画的,不调生成模型、不占额度;引擎随本目录走,不依赖任何工作流文件。

Jump to install

Source facts

Repository
feicaiclub/previz
Last source activity
September 7, 2026 at 15:33
Detected SKILL.md language
Chinese
Stars
3
Forks
1

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
13 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
previz
description
当用户发来一段视频提示词(motion prompt)想在花钱生成前先看看画面时使用——读提示词,翻成三维场景,缺画面必需的信息就一次问齐,然后直接渲成导演台风格的三维 HTML 预览:动态放映为主,宫格 / 关键帧 / 站位图 / 场记平面图 / 接缝检查按需。代码画的,不调生成模型、不占额度;引擎随本目录走,不依赖任何工作流文件。
[任务] 输入只有一样:一段视频提示词。它可以是带条头与围栏的工作流条,可以是「时间段 + 景别机位 + 主体动作 + 摄影机 + 声音 + 结束状态」的公式体,也可以是一段自由写的提示词。 把它翻成一份三维场景 JSON:谁在哪、朝向哪、什么姿态,屋里有什么,每一段是什么景别、机位在哪、怎么动、多长。缺了画面就不成立的信息先问,问完直接渲染,把 HTML 路径、引擎版本、假设清单与自检结果交回用户。 [第一性原则] 最终预览的质量是唯一目的:用户看这张草图是为了在花钱之前确认「我写的提示词,脑子里的画面和它是不是同一个」。任何让这次确认失真的事都不做。 1 · **只渲染提示词写死的东西**:站位、姿态、构图、走位、运镜、时长、台词时点。光线氛围、表演、材质质感一律不渲——白模给不出,给了会误导。 2 · **不是生成**:草图是代码画的示意图,不调任何生成模型,不占用户额度。 3 · **先推断,后提问,一次问齐**:提示词里有的直接用;能按常识推断且不改变画面判断的直接推断、把假设逐条列出来;只有缺了画面就不成立的才问——一问问齐、每问附默认值,用户回「按默认」就按默认渲。没有提问渠道时按默认渲,假设写在交付的最前面。判据在 references/prompt-to-scene.md [必需 · 可推断 · 缺就不填]。 4 · **不设门禁,自检只报不拦**:草图不阻塞任何事。越轴、接缝、数据健康三项照报,但这里没有镜头表可以回流——报出来是给用户看提示词里机位是否自相矛盾,改不改由用户定。 5 · **草图丑不等于提示词错,草图顺眼不等于成片稳。** 这句要原样告诉用户。 6 · **人一律是 figures,陈设按 kind 词表认,词表没有的用基元拼**,不把人写成陈设、不写 block 凑数——这是草图跨场、跨模型、跨机器同一水平的来源。 [依赖检测] - 引擎本体 `scripts/previz.py` 与 `scripts/three.min.js` 在本 skill 目录内。下文命令里的 `<skill>` 指本目录从项目根算起的路径,装在 Claude Code 里通常是 `.claude/skills/previz`,Codex 里是 `.agents/skills/previz`。先跑 `python3 <skill>/scripts/previz.py --version`,要打出「previz 3.x」。低于 3 或没有 --version 的是旧引擎,人会画成锥台加方块:**停**,让用户把最新的整个 skills/previz 目录整体替换过来,不手搓 HTML 替代。 - python3 可用;HTML 用任何现代浏览器打开,three.js 已内嵌、不需要联网。 - 产物落在当前项目根的 `.previz/`:`<id>.json` 与同名 `.html`。目录没有就建;它是派生物,不属于本 skill,随时可删可重生成。 [执行方式] 六步,判据全部在 references/prompt-to-scene.md,schema 在 references/scene-schema.md;两份都要先读完再动手。 1 · 认格式:工作流条(条头 + 围栏)/ 公式体([mm:ss-mm:ss] 分段)/ 自由文本。三种格式六类信息各从哪一段抽,见 [两种输入怎么认] 与 [六类信息从哪来]。 2 · 抽六类:画幅与时长;空间与陈设;人物(数量、代称、相对站位、姿态、朝向、视线);焦点物;分段→镜(每段的景别、机位方向、运镜、时长);台词与音效时点。 3 · 判缺失:按 [必需 · 可推断 · 缺就不填] 三档过一遍。必需项缺了就按 [提问模板] 一次问齐,最多五问、每问带默认值;用户答完或说按默认,再往下走。可推断项直接推断,写进 meta.note 的假设清单;缺就不填的项整项删掉,不猜。 4 · 翻 JSON:先定机位侧(默认机位一侧 = z 大的那一侧),再摆地标,再摆人,再逐段摆机位;景别→视场角与机位距离查 [景别怎么翻] 那张表;方位词怎么变坐标查 [方位词 → 坐标]。落盘 `.previz/<id>.json`,id 取条号,没有条号取提示词首句的短串。 5 · 渲染并读自检: python3 <skill>/scripts/previz.py .previz/<id>.json -m play 终端三段都要读:数据健康(有 [拦下] 就没渲,退出码 2,就地补数据重跑)、轴线、接缝。默认只出动态放映;用户点名再出 grid / keyframes / plan / stage / cut,同一份 JSON 不用改。 6 · 交付:HTML 路径;终端「引擎 3.x」那一行;假设清单逐条;三项自检各一行;一句边界——草图只验证构图、站位、姿态、走位、运镜、节奏时长、台词时点,光线、表演、质感它给不出;草图丑不等于提示词错,草图顺眼不等于成片稳。 用户改了提示词回来重渲:只改 JSON 里对应的字段,不重翻全篇;改动涉及站位或机位时三项自检重读一遍。 [结构化结果] 返回给用户或上游编排的固定几样:HTML 路径与引擎版本;镜数、总时长、画幅;问了什么与用户怎么答;推断了什么(假设清单);三项自检结论;数据取自提示词的哪几段。 [文件结构] previz/ # 本目录整体即 skill,拷到 .claude/skills/ 或 .agents/skills/ 下即用 ├── SKILL.md ├── scripts/ │ ├── previz.py # 渲染引擎本体 3.x(导演台三维白模),schema 与自检的唯一真相源;--version 核对 │ └── three.min.js # three.js r128,内嵌进 HTML,草图离线可开 ├── references/ │ ├── prompt-to-scene.md # 提示词 → 场景的判据卡:格式识别、六类信息来源、必需/可推断/不填、景别翻译、方位翻译、提问模板 │ └── scene-schema.md # 场景 JSON 的字段参考:坐标、陈设词表与基元、人偶姿态、摄影机三形态、六模式 ├── templates/ │ └── scene-template.json # 可直接填空的母版,留着占位符跑会被引擎拦下(退出码 2) └── examples/ ├── sample-prompt-pawnshop.md # 一条真实的工作流条提示词(输入样本) ├── sample-prompt-pawnshop.scene.json # 它翻出来的场景 JSON(输出样本,无需提问) ├── sample-prompt-formula.md # 一段公式体提示词(输入样本,故意缺画幅与站位,示范提问) ├── scene-pawnshop.json # 室内双人标杆,含环绕运镜 └── scene-courtyard.json # 外景单人标杆,含蹲姿、逐镜姿态覆盖、轴上镜 产物 `.previz/` 在使用它的项目根下,不在本目录里。
View on GitHub