最近一直在做多人、单场景连续剧情,最折磨我的问题不是人物崩脸,也不是动作做不出来,而是——
同一个场景,只要镜头一换,空间关系就可能被模型重新洗牌。
上一镜人物明明坐在桌子斜对面,下一镜为了方便某个人转身,两个人直接被挪到了同一侧;人物面前明明是天沟,切个侧面镜头,天沟就跑到人物背后;更常见的是主体位置大致没错,但门窗、道路、桌椅和背景结构悄悄换边。
我以前的处理方式就是不断补充:
“左边有什么,右边有什么。”
“某人在画面左侧,某人在画面右侧。”
后来发现,这种写法并不能真正解决问题。
因为模型的问题不一定是“不认识左右”,而是它不会自动把我们说的几套方位换算成同一个三维空间。
“画面右边”不等于“人物右边”
一段视频里至少同时存在四套坐标:
* 世界坐标:东南西北、门窗、道路、山壁等固定结构在哪里;
* 人物坐标:人物的前后左右、面对什么、背对什么;
* 摄影机坐标:摄影机位于哪里,镜头朝什么方向拍;
* 画幅坐标:最终画面里的左、右、上、下和纵深。
这四套坐标不是一回事。
比如:
* 人物面前是北方;
* 天沟位于人物正前方;
* 摄影机站在人物与天沟之间,朝南拍人物;
* 那么天沟其实在摄影机背后,正常情况下根本不可能进入画面。
但如果提示词只写“画面右侧露出开阔空间和天沟”,模型就会直接把天沟塞进画面右边。它甚至不能算没听话,因为是我们自己把“开放背景”“画幅右侧”和“天沟所在方向”错误地绑定到了一起。
所以我现在不会直接从剧情跳到画面提示词,而是先做一次“方位编译”。
我的方位编译流程
每个新切片都重新建立一套,不使用一条万能模板硬套所有场景。
第一步:锁世界坐标
先不管画面怎么拍,只确定这个世界本身:
* 窗户在哪一面墙;
* 门、通道、吧台和桌椅怎么连接;
* 人物分别坐在哪里;
* 哪些物体只有一个,不能在另一侧复制;
* 哪些区域可以走,哪些区域被墙体、桌子或高差阻断。
世界坐标是母轴。摄影机怎么换,都不能反过来修改它。
第二步:锁人物坐标
再把人物和世界绑定:
* 人物面向哪个世界方向;
* 左手侧、右手侧分别对应什么;
* 正在看谁;
* 身体朝向、头部朝向和视线是否一致;
* 哪只手拿着什么;
* 转头是否真的意味着转身。
尤其要注意:
眼神变化、转头和切镜,都不等于人物换了位置。
模型很容易为了完成“转身看向某人”这个动作,直接重排座位,让动作变得更方便。所以必须明确:动作要在既有空间里完成,不能通过改造空间来完成。
第三步:锁摄影机坐标
接着确定:
* 摄影机位于人物哪一侧;
* 摄影机朝哪个世界方向拍;
* 是否处于人物与目标之间;
* 这个位置现实中能不能放下一台摄影机;
* 镜头改变后,摄影机是否越轴;
* 哪些结构在摄影机前面,哪些在背后。
摄影机背后的东西,再重要也不能为了“展示世界观”强行进入画面。
第四步:计算画幅投影
最后才讨论:
* 谁出现在画面左侧;
* 谁出现在画面右侧;
* 哪些东西属于前景、中景和后景;
* 新机位能看见环境的哪一面;
* 哪些东西会被人物、桌面或墙体挡住。
也就是说,画幅左右应该是前三层计算出来的结果,而不是反过来拿画幅左右重建世界。
每个重要元素都要经过一次“视锥检查”
以前我会写很多背景要求,却没有先判断它到底能不能被这个镜头拍到。
现在我会单独检查:
* 这个物体是否位于摄影机前方;
* 是否进入当前焦段的视野;
* 是否被墙、桌子或人物遮挡;
* 是否只应该通过声音、光线或环境反应间接存在;
* 如果不可见,是否需要明确写成“绝对不入画”。
一个景物即使是整个场景最重要的地标,只要不在摄影机视锥里,就不能出现。
这一点对参考图尤其重要。参考图里最显眼的东西,往往也是模型最想复制的东西。你不把它的可见性写清楚,它就会自动找一块最大的空白区域塞进去。
参考图不能什么都管
我以前也很依赖多宫格分镜图,因为它可以直接规定动作、站位和镜头。
但问题是,模型经常连分镜图里的背景、透视和错误结构也一起照抄。结果动作确实更准了,空间反而死掉了,甚至整段视频只剩一个固定镜头。
所以现在我会明确拆分参考素材的职责:
* 前序视频:负责已经成立的空间、人物状态、环境状态和时间连续性;
* 角色卡:只负责人物脸部、发型、体态和外形身份;
* 场景图:只负责场景类型、材质、结构规律和光场;
* 多宫格分镜图:主要负责动作阶段、主体关系、机位、角度和焦段;
* 文字提示词:负责坐标转换、因果关系、动作顺序和禁止越权项。
尤其是多宫格分镜图,我现在更倾向于让它只回答:
“人物在做什么,以及摄影机从哪里看。”
至于新机位下背景具体能看到什么,还是让模型在同一世界拓扑里重新推演,而不是机械复制分镜图。
不完整场景,反而可以让模型自己推演
还有一个比较反直觉的结论:
当角色刚进入新场景,而前序视频只拍到了场景的一部分时,我不再试图提前把整个场景全部画死。
因为人工通过几张图硬拼出来的完整场景,未必真的符合前序视频的透视、比例和空间连接。参考图越多,彼此竞争的概率反而越高。
现在我的做法是:
1. 先锁定前序视频已经拍到的区域;
2. 明确场景类型、功能和现实原型;
3. 明确角色接下来必须经过的路径和主要动作;
4. 未出现的通道、座位、墙面和功能区,允许模型自行推演;
5. 但推演必须建立在已经锁定的信息上。
比如只拍到咖啡厅的靠窗区域,我可以让模型推演通往吧台的内部通道,但已经出现过的窗墙、桌子、角色位置和光线方向不能被改掉。
这种方式实际比我先画一张“完整咖啡厅设计图”再强迫模型对齐,成功率更高。
“锁定”不是所有东西永远静止
这里还有一个很容易误解的地方。
我说锁定空间,并不是要求椅子、书包、门窗和人物永远保持原样。
真正的锁定是:
已经成立的信息,只能在明确动作和现实因果的推动下发生变化。
比如:
* 椅子被人物拉开,后面再拍回来,它就应该还处于拉开后的状态;
* 书包被人拿到窗边,下一镜不能重新出现在椅背上;
* 人物走出画面后,仍然在镜外正常移动,不能因为暂时没拍到就被冻结或瞬移;
* 摄影机切换,只改变观看方式,不能自动清空世界状态。
所以我现在使用的核心规则是:
推演出来并被正式采用的空间信息,此后必须按照现实世界中物理规律与生理规律共同形成的因果关系继续发展。
它可以变化,但变化必须有原因、有过程、有结果。
模型生成出来的东西,也不能立刻算“世界设定”
这一点是我后来补上的。
以前我会说:“模型第二秒推演出的新环境,后面自动锁定。”
但这个说法不够严谨。因为模型也可能在第二秒就推演错了。
现在的规则应该是:
只有通过以下检查,并且最终被正式采用进成片的信息,才有资格升级为锁定信息:
* 世界坐标是否成立;
* 摄影机视锥是否允许它出现;
* 人物和物体有没有违反现实因果;
* 和前序素材能否连续;
* 是否属于同一个场景,而不是模型临时重建的新空间。
模型生成但违反拓扑的东西,只是错误,不能因为它已经出现过一次,就让后面继续继承。
最后总结一下
我现在处理场景方位错乱,不再单纯靠堆“左、右、前、后”,而是把它当成一个空间编译问题:
世界坐标 → 人物坐标 → 摄影机坐标 → 画幅投影 → 视锥可见性。
然后再加上:
* 参考图职责隔离;
* 前序视频优先;
* 新场景碎片受约束推演;
* 镜外世界持续运行;
* 状态变化遵守现实因果;
* 错误结果不得继承;
* 只有正式采用的信息才能升级为锁定状态。
这套方法也不能保证模型百分之百不出错,但至少出了问题以后,可以判断到底是:
* 参考权重错了;
* 空间拓扑错了;
* 还是透视重建错了。
不再是什么问题都归结为一句“模型方位感太差”。
说到底,AI视频的空间连续性不是把每一帧都规定死,而是先建立一个不会因为切镜就被重启的世界。