本地跑竖屏短剧,片子出来之后有个尴尬问题:怎么知道哪一镜不对?

肉眼一帧帧看,一集几十个镜头看不完,而且人眼对”人脸朝向反了”这类问题很不敏感——
你会觉得”有点怪”,但说不上哪怪。

所以我把审核也做成了脚本:让 OpenCV 先把可疑的地方圈出来,人只看被圈出来的那几处。

同一套流程里还踩到一个真实的坑:后期 x4 超分在 12.79G 显存上必爆,
一个终稿都出不了。两件事一起说。

一、先说那个坑:x4 超分必爆显存

现象

原来的后期脚本里,stage_b 用 RealESRGAN_x4plus 把 672×1216 的帧 x4 到 2688×4864,
再缩回 1080×1920。

听起来是”先放大再缩小,质量更好”。实际结果是:中间帧直接爆掉 12.79G 显存,
ComfyUI 执行 ImageUpscaleWithModel 时报错或服务崩掉,一个终稿都出不了。

修复

把 stage_b 里的 UpscaleModelLoader + ImageUpscaleWithModel 整个去掉,
只留一步 ImageScale(upscale_method="lanczos", width=1080, height=1920)。

结果是单镜后期从 700 秒 + 崩溃 → 80~100 秒稳定出片。

在 12.79G 的卡上不要对视频帧做 x4 超分,直缩即可。

这里有个通用教训:**”先放大再缩小”这种听起来很专业的做法,在显存受限时可能只是把成本乘了 16 倍**(4×4),
而质量收益远远补不回这个代价。

不过要说清:补帧(film_net)是真提质步骤,保留没问题。 该省的是超分,不是补帧。

二、并发坑:多编排器抢 GPU

另一个会让人抓狂的问题:多个 dual / post 任务同时提交,会互相 OOM 或互杀。

两条规矩:

  1. 单 GPU 上必须串行。
  2. 杀掉旧任务或重启后,ComfyUI 队列里可能残留孤儿作业。

第二条的处理方式有几个细节:

  • 用 POST /queue {"clear": true} 清空队列
  • /interrupt 在这个版本返回 404(不支持),别指望它
  • 必要时杀掉进程干净重启

三、客观审核:把”看着不对”变成判据

审核脚本(必须用带视觉库的那个 Python)用 OpenCV 的人脸/侧脸/眼睛级联,
把”朝向翻转、畸变、一致性、动态缺陷”变成可量化判据,输出带红框的抽帧联系表。

六类判据

1. 比例必须是 9:16

宽高比 W/H ≈ 0.5625,否则判畸变 FAIL。

2. 朝向翻转

比如某个角色这一镜是背面全程不得露脸,检出 ≥3 帧露脸就 FAIL。
手部特写这类容易误伤的,用降级开关降为 WARN。

3. 同一镜人脸 aHash 跳变

跳变 ≥14/64 判 WARN——说明这一镜里人脸换过了。

4. 复用六项通用判据

切镜、停滞、漂白、暗调、匀速、抖动。

这六项和具体题材无关,是通用视频质量问题,所以能直接复用。

误检必须过滤

这是踩出来的:

脸检测要用眼睛级联二次确认,否则手和剪影会被误判成脸。

某个手部特写的镜头尤其明显——画面里一只手的形状,级联检测器坚定地认为是张脸。

不做这层过滤,联系表上会红框满天飞,用户看两眼就不信这个报告了。

报告的可信度是从”误报少”来的,不是从”检出多”来的。

四、结论分三级,不是非黑即白

审查结果分 PASS / WARN / FAIL:

  • FAIL 才需要返工
  • WARN 通常可以接受——轻微哈希跳变、低运动、门口轻提亮,这类属于”能改就改,不改也能用”

这一级的存在很重要。如果只有对错两档,人会倾向于把所有 WARN 都当 FAIL 修,
最后陷在打磨细节里,主线推进不下去。

五、两份产物:机器报告 + 人眼签字

审核输出两样东西:

  1. audit_report.txt / audit_report.json——机器判据
  2. 带红框的抽帧联系表(contact sheet)——交给用户肉眼签字

第二样是刻意设计的。机器只负责把可疑处圈出来,最终判断权在人手里。
联系表把几十个镜头的关键帧摆在一张图上,红框标出可疑位置,
用户扫一眼就能签字或者指出”这三处确实不对”。

一个有用的用法:审核脚本同一个命令,不加后缀参数审首采,
加后缀参数审终稿——同一套判据跑两遍,对比首采和终稿的问题有没有变化。

六、本机的几条硬事实

  • ComfyUI 在 E:\kuake\comfui\...\ComfyUI,端口 8799
  • 启动不要加 --watchdog——长任务会被 watchdog 杀掉
  • **OpenCV / numpy / PIL 只在 D:\python3.11\python.exe**,受管的 3.13 里没有视觉库。
    审核脚本必须用 311 跑,用错解释器直接 ModuleNotFoundError
  • 显存红线 12.79G,H3 模型需要约 96% 显存
  • 安全分辨率:864x480 / 1152x640 / 1344x768;禁 1920x1088
  • 竖屏三档:首采 480×864 → 二采 672×1216 → 终稿 1080×1920

七、小结

这套东西真正解决的不是”提高画质”,是让返工有依据。

没有客观判据时,一集片子出来只能靠感觉说”这集好像不太行”,然后要么全重做、要么全放过。
有了判据之后,返工范围被缩小到”哪几镜的哪几类问题”,
而且机器报告的每条结论都能落到具体帧号上。

至于机器看不出来的那部分——表演、情绪、节奏——本来就该由人判断。
工具的作用是把人从可以量化的问题里解放出来,让人专注看真正需要人看的东西。

本地流水线的完整编排见那篇实战;
素材装配成片见创作体系。