18 张废图教会我的事:模型选型失败,别怪提示词

从视频生成掉头到逐帧出图的两次技术路线调整,以及一个关于「概念簇缺失」的判断方法。

一天之内,我把一条技术路线推翻了两次。复盘下来,最值钱的不是最终选了什么,而是判断「此路不通」的依据是什么

第一次掉头:追真实感 vs 追风格化

起点是用视频生成模型跑一段运动镜头。跑完 8 分 50 秒,出片,结论两个字:简陋。

模糊反馈不能直接吞。我抽了帧自己看,才拆出三层原因:

  1. 底模不对口 —— 用的是人像微调模型,训练集里几乎没有体育场景。让人像摄影师去拍体育画报,这是能力圈问题,不是参数问题。
  2. 分辨率太低 —— 512×512 是能跑的最低档,脸、手指、球这类高频细节在这个尺寸下物理上不可能清晰。
  3. 帧率偏低 —— 8fps 看快动作必然跳帧。

1 和 2 是主要矛盾,3 是锦上添花。

但真正的转机是需求本身变了:目标其实是游戏怪物的动作素材,不是写实视频。

这一变,短板大半自动消失:

维度写实视频游戏素材
分辨率要求1080p 起步才叫能看sprite 128~512px 就够
解剖学约束极严,关节崩一点就出戏外星生物,没人知道它该长啥样
帧数24fps 才流畅6-12 帧一个循环是常态

同样的硬件,换个赛道就从”勉强及格”变成”绰绰有余”。

第二次掉头:视频模型不是万能锤

拿到风格参照图后(韩系 2.5D 手游,45° 斜俯视,3D 烘焙成 2D),我把视频路线彻底否了。三个理由:

  1. 视频输出的是有背景的连续画面,游戏引擎要的是透明底序列帧。每帧手动抠图,质量不可控。
  2. 视频模型的帧间一致性不够 —— 而游戏素材的核心诉求恰恰是「三套动作必须是同一只怪物」。
  3. 角色在成品画面里只占 80-128px,512 的分辨率大部分浪费在背景上

正确解法变成:逐帧图像生成 + 姿态控制(ControlNet)+ 自动去背景。一致性靠一张定妆图锚定,姿态靠骨骼图约束,输出直接就是透明 PNG。

真正的教训:18 张全废,问题不在 prompt

换了个通用风格化底模,一口气出了 18 张定妆图。结果是三项核心特征零命中 —— 要的”骨甲结构""结晶义肢""非人形轮廓”,一个都没出来。

这时候有个岔路口,很多人(包括我的第一反应)会走错:

错误反应:prompt 权重不对?加括号?换负向词?再跑 20 张试试。

我没这么干。因为 18 张 × 0 命中,不是概率问题,是分布问题

正确归因:这个底模的训练集里根本没有这个概念簇

判断依据很简单:如果只是提示词表达不精准,那 18 次采样里至少该有 2-3 张部分沾边。全军覆没意味着模型的潜空间里压根没有对应区域,你调多少次 prompt 都是在一片没有这个东西的地方翻找。

这条判据可以推广:

  • 命中率 30%-70% → 提示词问题,值得调
  • 命中率 5%-20% → 边缘概念,加 LoRA 或参考图能救
  • 命中率 0%(样本 ≥ 15)→ 概念缺失,换模型或换约束方式,别调 prompt

区分这三档,能省掉大量无效试错。

三条出路

概念缺失确认之后,可选项只剩:

  • A. 结构约束:用 ControlNet 传入剪影/线稿,先把形态锁死,让模型只负责上色和质感 —— 绕开”它想不出这个形状”的问题。
  • B. 换专精模型:找训练集里有对应概念簇的模型。
  • C. 两者并行

没有哪个天然更优,取决于你有没有现成的形态参考。有 → A 最快;没有 → B 是必经之路。

小结

三句话:

  1. 模糊的负面反馈要自己去验证,拆到根因层再动手 —— “简陋”至少有三种,对应三种完全不同的修法。
  2. 需求变了,最优路线也要跟着变,别抱着沉没成本走。
  3. 零命中不是提示词问题,是能力圈问题。 分清楚这两者,是省时间最狠的一刀。

——马启航Marvis