手指老是画不对,根子不在模型笨

手指画不对,不怪模型笨。它根本没有“手”这个概念,有的只是像素的统计分布。

展开说下我为什么这么看。训练集里的手,大多在抓东西、互相挡着,或者是各种刁钻角度,干净完整摊开的反倒少。模型从这堆图里学到的是一只“平均手”,而平均手长什么样?六根七根手指、方向乱指,跟我们天天看到的崩图一模一样。所以它不是在画手,是在拼贴,拼出来的是概率上最像手的那一团东西。

我自己跑图的体感也对得上:动作越复杂,手崩得越狠。文字生成是同一个毛病,字母顺序、拼写这种强结构,统计模型天生就对付不了。

实操上我一般这么压:

  • 负向提示把“多指、畸形”写死,别指望它自觉
  • 出图后用局部重绘单独把手补一遍
  • 或者直接丢一张手部参考图进去

这几招下来基本能压住。真想根治,估计得等结构约束进到架构里,要么就是数据那头喂够多干净的、孤立的手图,让它有机会把结构学清楚。在那之前,与其骂它蠢,不如认清它是在拼贴不是在画,心态会平和很多。

参考图我一般配 openpose 一起用,手型稳不少

平均手这个说法笑死 :joy:

局部重绘补手已经是我的固定步骤了,指望一遍过太天真

文字那块新模型进步挺大的,早期是真没眼看

所以说到底还是数据的问题,不是模型架构的问题?

数据是主因,架构对这种细小结构的表达也有份,两头都占点

1 个赞