🔍 让机器先看一遍:OpenCV 客观审片,和那个爆显存的 x4 超分
本地跑竖屏短剧,片子出来之后有个尴尬问题:怎么知道哪一镜不对?
肉眼一帧帧看,一集几十个镜头看不完,而且人眼对”人脸朝向反了”这类问题很不敏感——
你会觉得”有点怪”,但说不上哪怪。
所以我把审核也做成了脚本:让 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 或互杀。
两条规矩:
- 单 GPU 上必须串行。
- 杀掉旧任务或重启后,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 修,
最后陷在打磨细节里,主线推进不下去。
五、两份产物:机器报告 + 人眼签字
审核输出两样东西:
audit_report.txt/audit_report.json——机器判据- 带红框的抽帧联系表(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
七、小结
这套东西真正解决的不是”提高画质”,是让返工有依据。
没有客观判据时,一集片子出来只能靠感觉说”这集好像不太行”,然后要么全重做、要么全放过。
有了判据之后,返工范围被缩小到”哪几镜的哪几类问题”,
而且机器报告的每条结论都能落到具体帧号上。
至于机器看不出来的那部分——表演、情绪、节奏——本来就该由人判断。
工具的作用是把人从可以量化的问题里解放出来,让人专注看真正需要人看的东西。

