brand-promo
做产品/品牌宣传片。当用户要把产品文案、卖点或品牌介绍做成一条短宣传视频,或提到「宣传片 / 产品视频 / 品牌短片 / promo / 广告片」时用我。
治 AI 视频多镜头「同角色换脸 / 同道具换形 / 同场景换景」三大顽疾的方法论——五维一致性检查、参考图锚定、场内状态表、段间承接。Nomi 拆镜头与跨镜生成时参考:把每个跨镜元素落成画布 anchor 节点(角色/场景/道具/风格),镜头用 anchorIds 引用、系统连参考边,段间用首尾帧承接。
$ npx -y skills add aqm857886159/nomi --skill director-consistency --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/director-consistencyContext preview
The summary Claude sees to decide when to auto-load this skill.
治 AI 视频多镜头「同角色换脸 / 同道具换形 / 同场景换景」三大顽疾的方法论——五维一致性检查、参考图锚定、场内状态表、段间承接。Nomi 拆镜头与跨镜生成时参考:把每个跨镜元素落成画布 anchor 节点(角色/场景/道具/风格),镜头用 anchorIds 引用、系统连参考边,段间用首尾帧承接。
name: director-consistency
description: 治 AI 视频多镜头「同角色换脸 / 同道具换形 / 同场景换景」三大顽疾的方法论——五维一致性检查、参考图锚定、场内状态表、段间承接。Nomi 拆镜头与跨镜生成时参考:把每个跨镜元素落成画布 anchor 节点(角色/场景/道具/风格),镜头用 anchorIds 引用、系统连参考边,段间用首尾帧承接。
metadata:
nomi:
selectable-in-workbench: true
library:
kind: skill
title:
zh-CN: 跨镜一致性
en: Shot consistency
summary:
zh-CN: 治 AI 视频多镜头「同角色换脸 / 同道具换形 / 同场景换景」三大顽疾的方法论——五维一致性检查、参考图锚定、场内状态表、段间承接。Nomi 拆镜头与跨镜生成时参考:把每个跨镜元素落成画布 anchor 节点(角色/场景/道具/风格),镜头用
anchorIds 引用、系统连参考边,段间用首尾帧承接。
en: Preserve character, prop and location identity across shots.
appliesTo:
- text
group:
zh-CN: 导演
en: Directing
slots: []
source:
url: https://github.com/aqm857886159/Nomi/blob/7a072f12d4e35d1bf341403d942e5c0c702e6c7b/skills/director-consistency/SKILL.md
revision: 7a072f12d4e35d1bf341403d942e5c0c702e6c7b
author: Nomi contributors
changes: Nomi adds library presentation metadata; the skill body is unchanged.
evidence:
- https://github.com/aqm857886159/Nomi/blob/7a072f12d4e35d1bf341403d942e5c0c702e6c7b/skills/director-consistency/SKILL.md
preview:
path: assets/cover.png
type: image
provenance: illustration
version: 1.0.0
tools: []
required-providers: []
license: AGPL-3.0-onlyAI 视频生成的头号敌人不是「画面不好看」,而是**同一个人看起来不像同一个人**。多镜头、多段的片子若不解决一致性,观众看两三镜就出戏。本文不发明技术,而是把业界已验证的一致性手段整理成拆镜头与生成时的强制动作。
**在 Nomi 里落地的方式**:凡是「跨镜头要保持一致」的东西,都建成画布上的 **anchor 节点**(`kind`:`character` 角色 / `scene` 场景 / `prop` 道具 / `style` 风格)。视觉锚(`carrier: visual`)会先生成一张参考图锁住长相;文本锚(`carrier: text`)把特征词拼进每个引用它的镜头。镜头用 `anchorIds` 引用哪些锚,系统据此给视觉锚**连参考边**、把文本锚描述拼进 prompt。所以下文凡说「@引用某素材」,在 Nomi 里就是**在该镜的 `anchorIds` 里点名那个 anchor**,不是把提示词复制到外部工具。
---
每个镜头产出前,逐维度自检——哪一维会漂移,就为它建/引用对应的锚:
| 维度 | 盯什么 | 失控表现 | 在 Nomi 的锚定手段 | |------|--------|----------|--------------------| | **角色** | 脸、身材、发型、肤色、瞳色 | 换脸、身高忽高忽低 | `character` 视觉锚(参考图含面部特写 + 三视图)+ 镜头 `anchorIds` 引用 | | **服化** | 服装版型、配色、质地、饰品、武器 | 同场戏换衣、纽扣数变化 | 视觉锚定妆图锁版型 + 文本锚补服装色卡/关键细节词 | | **道具** | 关键道具的造型、材质、铭文 | 道具外形每镜不同、设备换型 | `prop` 视觉锚(多角度 + 材质特写 + 比例参照)+ `anchorIds` 引用 | | **场景** | 空间布局、光源位置、装饰细节 | 同一房间家具搬家、窗户消失 | `scene` 视觉锚(空场景全景 + 光位)+ 镜头复述主光方向 | | **时序** | 同场戏内动作连续性、伤痕、服装残损 | 上一镜干净下一镜染血(或反之) | 场内状态表(见 §三),锚管不了「同一场内的状态推进」 |
前四维靠**锚**(跨镜「这一个特定实例」保持不变),第五维靠**状态表**(同场景内状态只增不倒退)——两套机制互补,别混用。
---
一致性靠三层由强到弱的绑定,越靠上越硬:
主要角色、关键道具、固定场景都建成**视觉锚**,让系统先生成一张参考图作为「唯一真相」。参考图质量直接决定后面所有镜头的下限,所以定妆/定景描述要中性、干净:
> **一元素一锚,不要合成**:人物、场景、道具各自独立建锚、各自独立参考图,**绝不把人物和场景塞进同一张参考图**——合成会同时拉低场景和人物的 identity 精度。这正是 Nomi「每个跨镜元素一个 anchor 节点」的设计初衷:系统会把多张参考图分别喂给生成,不需要、也不要你手动拼成一张。
镜头**只引用锚,不在 prompt 里重描锚的静态外貌**。外貌交给参考图/文本锚,镜头 prompt 只写这一镜独有的运镜与动作:
**硬规则**:出现在某镜里的每个角色 / 所在场景 / 用到的道具 / 整片风格,都要列进这一镜的 `anchorIds`;只出现一次的一次性元素(群演、路过的物件)**不建锚**,直接写进那一镜 prompt。
段与段之间(一场戏拆成多个连续镜头,或一整段接下一段)的视觉连续性,靠**首尾帧承接**:上一镜的尾帧状态(角色位置/朝向/姿态/环境/光位)明确传给下一镜的起点。Nomi 里对应「用上一镜产物做下一镜的首帧(`first_frame`)」或在下一镜 prompt 里显式承接尾帧状态。承接分三级:
| 级别 | 何时用 | 怎么接 | |------|--------|--------| | **L1 强锚定**(同场景跨镜) | 尾帧和下一镜起点必须严格一致 | 下一镜用上一镜尾帧做首帧,或 prompt 明确承接「角色位置/朝向/姿态/环境」 | | **L2 软锚定**(换场景但情绪连续) | 位置不必对齐,但色调/光位/角色朝向要匹配 | 下一镜 prompt 保持「同色调 + 同主光方向 + 朝向匹配」 | | **L3 硬切**(叙事跳转/时间跳跃/蒙太奇) | 视觉不需连续 | 下一镜独立起帧,连续性交后期剪辑 |
判断口诀:**同一场戏内的相邻镜头默认 L1**(拆条只为绕过单条时长上限,画面本应无缝);**换地点但情绪不断用 L2**;**闪回/跳时间/蒙太奇用 L3**。
---
同一场戏内的连续性问题(染血、服装残损、伤痕、手持道具的有无)靠**状态表**管理——它管的是「同一场景里随剧情推进的状态变化」,是锚管不到的那一维。编写多镜头场戏前,先列一张表把每镜的关键状态钉死:
## 指挥舱对峙 · 状态表 | 镜号 | 角色A 状态 | 角色B 状态 | 关键道具 | |------|--------------------|------------------|-------------| | 镜12 | 制服整洁 | 站立,面无表情 | 控制台完好 | | 镜13 | 制服整洁 | 身体微倾,瞳孔收缩| 控制台完好 | | 镜14 | 右颊划伤 | 后退一步 | 控制台裂纹 | | 镜15 | 右颊划伤 + 衣领扯开 | 倒地 | 控制台裂纹 |
**硬规则(状态只进不退)**:一旦某镜出现血 / 伤 / 衣破 / 湿身,**后续所有同场镜头的 prompt 必须继承该状态**,直到场景结束或剧本明确有清洗/换装动作。倒回「干净」= 穿帮。
---
一段接下一段(尤其角色/道具/场景跨段复用)时,过一遍承接:
1. **末状态对齐**:下一段首镜的角色状态(伤痕/服装/情绪残留)要接上一段末镜的状态,除非剧情明确跳了时间。 2. **道具延续**:跨段出现的同一道具(飞船、关键物件)**复用同一个 anchor**,不要为它重新建锚、重新生成参考图。 3. **场景复用**:跨段复用的场景**沿用原来那个 `scene` 锚**,不重新生成参考图——重生成 = 家具搬家。 4. **重大外观变化才拆锚**:只有「少年↔成年 / 伤前↔伤后 / 彻底换装」这种**认不出是同一个**的变化,才把同一角色拆成两个锚并在 `description` 写清差异;普通情绪/小动作变化不拆锚。
---
这些是 AI 生成的系统性弱点,属**硬约束**——重掷骰子基本无用,必须靠「换画面结构」绕过,别指望多抽几次能好:
| 陷阱 | 典型表现 | 规避 | |------|---------|------| | **群演脸** | 同一群演相邻镜头脸变了 | 群演/一次性配角不建锚,用去个性化描述(戴头盔/背影/远景),避免特写 | | **手部** | AI 普遍画不好手,多指/缺指 | 握物/操作镜头避免手部特写;非给不可时用参考图明确指法 | | **文字/铭文** | 招牌字、飞船编号、徽章文字反复变且乱码 | prompt **不写要渲染的文字**;用图形符号代替字母,片名/字幕一律后期叠 | | **比例漂移** | 同一物体(飞船/建筑)尺寸在不同镜头不一致 | 与参照物同框(人、标准箱体),禁止纯空镜比例;关键道具用比例参照建锚 | | **光位变异** | 同场戏光源方向乱跳 | 场景锚参考图标注光位,**每一镜 prompt 复述主光方向** | | **口型对白** | 正脸对白口型对不上 | 侧脸 / 画外音 / 不露正脸,配音交后期 |
---
拆完镜头、或复核一份分镜方案时,逐条打勾:
任一未满足就回去改——一致性是拆镜头阶段一次性想清楚的事,等生成出来才发现漂移,返工成本高得多。
Open-source AI video workbench. Bring any model or your local ComfyUI, and let Claude Code / Codex / Cursor direct it over MCP — storyboard, references, generation, editable first cut on a real timeline. Local-first: projects, prompts, and keys stay on your machine. No account, no telemetry.
Repo: aqm857886159/nomi
做产品/品牌宣传片。当用户要把产品文案、卖点或品牌介绍做成一条短宣传视频,或提到「宣传片 / 产品视频 / 品牌短片 / promo / 广告片」时用我。
Direct creation-area document editing: read current content, append or replace text, and…