Prelulu · 2026-11-11 · 实验报告(不是视觉验收)
头部转动对比 v2:PSD2Live(线上)vs 我们自己的 binder(第一版、第二版)
Head turning — production PSD2Live vs our own head binder v1 and v2 (draft PR #181, head dc4b588, not merged, not deployed)
结论
- 按这些指标,v2 在大多数角色上至少和 PSD2Live 一样好。80 个能拿到的角色全部测了,v2 自带门禁 80 个全部通过。折叠三角形:v2 在 80 个上都是 0,PSD2Live 有 35 个大于 0(最多 0.12 %)。拉伸 p99:v2 在 60 个上更低(中位 1.34 对 1.45,最差 1.44 对 1.72)。耳坠:6 个有耳饰的角色上,v2 的耳坠离自己的耳朵不到 2 px,PSD2Live 约 28 px。后发视差打平(41 个更好、37 个更差,中位 0.51 对 0.52 W),但 PSD2Live 的最差值是 0.92 W,v2 是 0.53 W。
- 它不是 PSD2Live 的复制品。与线上的 RMS 差中位 7.7 px(10 % 分位 6.7,90 % 分位 9.3;80 个里有 67 个不超过 9 px)。差异最大的是后发(中位 11 px),这是设计上的选择:v2 让头顶的后发跟着刘海一起转,PSD2Live 把它留在头后面。脸本身只差 3.2 px(中位)。
- v2 系统性地比 PSD2Live 动得多一点:满偏航时鼻子多走 11 %(0.36 对 0.33 W),满抬头时鼻子多抬 24 %(0.13 对 0.10 W),脸多抬 23 %。80 个角色上方向一致,是常数的偏差,不是个别角色的问题。另外有 20 个角色的拉伸 p99 比 PSD2Live 高,最多高 0.17。
- 差得最多的三个角色:两个大头 Q 版(Q 版 SD 15.1 px、立体玩具化 14.4 px,主要是后发 20–22 px),和一个粗线美式卡通(18.1 px)。粗线卡通上是 PSD2Live 出了问题:它把鼻子推了 0.75 W、脸抬了 0.38 W,眼镜和脸分开;v2 在这个角色上和其他角色一样正常。两个大头角色两边看起来都没有坏,差别在后发的轮廓。截图见下面的“差得最多的三个角色”。
- 五个报告角色的画面:第一版在对角上的破面(脸颊截断、发际线露肤色、头发和头顶分开、Momo 的丸子头和耳朵错位)在 v2 里都没有出现,满轴和日常两档都看过。PSD2Live 自己的两个毛病 v2 也没有:Momo 抬头时嘴唇被拉开,HP mara_bob-2 抬头时眼周出现补丁(v2 只剩很淡的一点)。v2 不如 PSD2Live 的地方:37 左转时 PSD2Live 会把侧面的编发露出来,v2 不会;HP mara_bob-2 右下角时 v2 左侧的后发外轮廓鼓出来一些。这是我的读图,不是视觉验收,好不好看由你判断。
- 状态:PR #181 仍是草稿,没有合并、没有部署。这一页的数字和截图都在本机算和渲染。
全部角色(80 个可比,80 个跑了门禁)
公开画廊现在只列出 24 个角色(之前是 73 个)。之前列出的 73 个角色记录仍然可以通过公开记录路由取到,加上新列出的 7 个,一共 80 个,全部下载并按 manifest 的 SHA-256 校验,烘焙需要的文件都齐全。比较对象是每个包里线上烘焙好的转头数据(deform.turns,即线上 PSD2Live 形变场经烘焙压缩后的结果,播放器实际播放的就是它)。包里已经不再提供原始的 head-field.json,所以没有直接用它;在本机还留有原始形变场的 8 个角色上,按转头数据测的 RMS 和按原始形变场测的只差 0.1–0.25 px(例如 Hiyori 7.68 对 7.49,Momo 9.87 对 9.72)。
| 中位数 | PSD2Live(线上) | 第二版 v2 | 说明 |
|---|---|---|---|
| 与 PSD2Live 的 RMS 差(全部头部图层) | — | 7.7 px | 0 = 与线上完全一致 |
| 其中:后发 / 前发 / 脸 / 眼 / 嘴 / 鼻 | — | 11.0 / 7.9 / 3.2 / 4.3 / 3.7 / 3.0 px | 后发差异最大,是设计上的选择 |
| 鼻子位移 满偏航(脸半宽 W) | 0.33 | 0.36 | v2 / PSD2Live 中位比 1.11 |
| 鼻子上移 满抬头(W) | 0.10 | 0.13 | 中位比 1.25 |
| 脸位移 满偏航 / 满抬头(中位比 v2 / PSD2Live) | 1 | 1.04 / 1.23 | |
| 折叠三角形 | 0.000 % | 0.000 % | v2 更好 35、更差 0、持平 45 |
| 拉伸 p99 | 1.45 | 1.34 | v2 更好 60、更差 20、持平 0 |
| 拉伸 最大 | 2.06 | 1.85 | v2 更好 61、更差 19、持平 0 |
| 后发对脸的最大视差(W) | 0.52 | 0.51 | v2 更好 41、更差 37、持平 2 |
| 耳坠离开自己耳朵的最大距离(6 个有耳饰的角色) | 28.1 px | 0.8 px | v2 更好 6、更差 0、持平 0 |
W = 脸半宽。RMS 差:每个头部图层的有色点在全部 44 个非静止关键姿态上,v2 与线上的位移差的均方根,按 768 px 画布换算。折叠、拉伸、视差、耳坠都按播放器实际画出来的(烘焙后的转头数据)在同一组网格上测,两边同一套代码。
v2 门禁拒绝的角色
- 无
没能测量的角色
- 无
与 PSD2Live 差得最多的 10 个
| 角色 | v2 门禁 | RMS 差 px | 后发 | 脸 | 鼻子 满偏航 W PSD2Live → v2 | 鼻子 满抬头 W | 折叠 | 拉伸 p99 | 后发视差 W | 耳坠离耳 px |
|---|---|---|---|---|---|---|---|---|---|---|
| 粗线美式卡通/几何平涂 | 通过 | 18.1 | 13.2 | 21.8 | 0.74 → 0.37 | 0.69 → 0.12 | 0.043 % → 0.000 % | 1.38 → 1.37 | 0.92 → 0.52 | – → – |
| Q 版 SD/超大头与超大眼 | 通过 | 15.1 | 21.8 | 6.3 | 0.33 → 0.35 | 0.10 → 0.14 | 0.116 % → 0.000 % | 1.45 → 1.44 | 0.53 → 0.51 | – → – |
| 立体玩具化成人吉祥物/大头短身 | 通过 | 14.3 | 20.0 | 6.1 | 0.33 → 0.35 | 0.10 → 0.14 | 0.062 % → 0.000 % | 1.27 → 1.44 | 0.50 → 0.50 | – → – |
| Joye | 通过 | 10.3 | 15.1 | 3.9 | 0.33 → 0.35 | 0.11 → 0.13 | 0.015 % → 0.000 % | 1.36 → 1.35 | 0.48 → 0.51 | – → – |
| 扁平矢量极简/无线条纯色 | 通过 | 9.9 | 12.5 | 3.6 | 0.33 → 0.35 | 0.10 → 0.14 | 0.003 % → 0.000 % | 1.40 → 1.38 | 0.55 → 0.52 | – → – |
| Momo | 通过 | 9.9 | 13.3 | 3.3 | 0.33 → 0.36 | 0.10 → 0.13 | 0.002 % → 0.000 % | 1.52 → 1.37 | 0.54 → 0.51 | 28.0 → 0.9 |
| 真实照片/中年戴眼镜 | 通过 | 9.5 | 10.4 | 4.1 | 0.33 → 0.36 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.72 → 1.34 | 0.54 → 0.51 | – → – |
| aoi | 通过 | 9.3 | 12.5 | 3.7 | 0.33 → 0.33 | 0.11 → 0.13 | 0.005 % → 0.000 % | 1.24 → 1.37 | 0.56 → 0.51 | – → – |
| mai | 通过 | 9.3 | 11.6 | 4.0 | 0.33 → 0.33 | 0.11 → 0.13 | 0.005 % → 0.000 % | 1.32 → 1.33 | 0.55 → 0.51 | – → – |
| 复古少女漫/星光大眼 | 通过 | 9.2 | 10.4 | 3.8 | 0.33 → 0.33 | 0.10 → 0.13 | 0.007 % → 0.000 % | 1.39 → 1.30 | 0.57 → 0.51 | – → – |
展开全部 80 个角色(按 RMS 差从小到大)
| 角色 | v2 门禁 | RMS 差 px | 后发 | 脸 | 鼻子 满偏航 W PSD2Live → v2 | 鼻子 满抬头 W | 折叠 | 拉伸 p99 | 后发视差 W | 耳坠离耳 px |
|---|---|---|---|---|---|---|---|---|---|---|
| 真实照片/室内暖光 | 通过 | 5.3 | – | 3.4 | 0.34 → 0.37 | 0.11 → 0.12 | 0.000 % → 0.000 % | 1.23 → 1.36 | 0.00 → 0.00 | – → – |
| 低饱和古风半写实/长发软边 | 通过 | 6.2 | 7.1 | 2.6 | 0.33 → 0.37 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.41 → 1.26 | 0.57 → 0.52 | – → – |
| 90 年代赛璐璐动画/硬阴影单色块 | 通过 | 6.3 | 9.3 | 3.1 | 0.34 → 0.38 | 0.11 → 0.13 | 0.000 % → 0.000 % | 1.16 → 1.29 | 0.49 → 0.52 | – → – |
| 3D 乙女游戏精修/银发长外套男主 | 通过 | 6.4 | 8.9 | 2.6 | 0.32 → 0.37 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.39 → 1.32 | 0.53 → 0.52 | – → – |
| 氷室朔K3 | 通过 | 6.6 | 11.0 | 2.7 | 0.33 → 0.36 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.47 → 1.35 | 0.49 → 0.50 | – → – |
| 韩漫 webtoon/柔光渐变 | 通过 | 6.7 | 7.8 | 2.8 | 0.33 → 0.35 | 0.10 → 0.12 | 0.000 % → 0.000 % | 1.24 → 1.31 | 0.52 → 0.51 | – → – |
| BN Dex | 通过 | 6.7 | 10.8 | 3.1 | 0.33 → 0.36 | 0.10 → 0.12 | 0.000 % → 0.000 % | 1.48 → 1.34 | 0.46 → 0.50 | 28.1 → 0.5 |
| ANIMA ezra_b-1 | 通过 | 6.7 | 11.1 | 2.8 | 0.33 → 0.36 | 0.10 → 0.12 | 0.000 % → 0.000 % | 1.49 → 1.33 | 0.45 → 0.50 | – → – |
| BN guchengze_clean-2 | 通过 | 6.9 | 10.8 | 3.4 | 0.33 → 0.37 | 0.10 → 0.12 | 0.000 % → 0.000 % | 1.55 → 1.30 | 0.46 → 0.50 | – → – |
| 氷室蓮J3 | 通过 | 6.9 | 11.2 | 3.0 | 0.33 → 0.37 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.32 → 1.42 | 0.48 → 0.50 | – → – |
| 透明水彩/低对比纸白 | 通过 | 6.9 | 9.2 | 3.0 | 0.33 → 0.37 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.48 → 1.33 | 0.54 → 0.52 | 29.9 → 1.1 |
| BN shenyan_terrace_merged-1 | 通过 | 6.9 | 12.0 | 2.9 | 0.33 → 0.37 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.51 → 1.31 | 0.47 → 0.51 | – → – |
| BN Grant | 通过 | 6.9 | 12.2 | 3.0 | 0.33 → 0.37 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.52 → 1.31 | 0.47 → 0.50 | – → – |
| BN shenyan_terrace-1 | 通过 | 7.0 | 13.3 | 2.9 | 0.32 → 0.36 | 0.10 → 0.12 | 0.000 % → 0.000 % | 1.54 → 1.33 | 0.47 → 0.50 | – → – |
| 氷室蓮J2 | 通过 | 7.0 | 11.8 | 3.0 | 0.32 → 0.36 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.50 → 1.38 | 0.47 → 0.50 | – → – |
| 3D 乙女游戏精修/长棕发科幻战衣女主 | 通过 | 7.1 | 7.6 | 2.8 | 0.32 → 0.36 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.39 → 1.25 | 0.56 → 0.50 | – → – |
| Yuki | 通过 | 7.1 | 10.3 | 3.4 | 0.33 → 0.34 | 0.10 → 0.13 | 0.002 % → 0.000 % | 1.35 → 1.36 | 0.53 → 0.50 | – → – |
| PS dante-2 | 通过 | 7.2 | 13.6 | 3.0 | 0.33 → 0.37 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.52 → 1.30 | 0.45 → 0.50 | – → – |
| 氷室蓮D | 通过 | 7.2 | 11.5 | 2.8 | 0.33 → 0.36 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.46 → 1.36 | 0.47 → 0.50 | – → – |
| 氷室朔K4 | 通过 | 7.3 | 11.9 | 3.0 | 0.32 → 0.36 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.52 → 1.35 | 0.48 → 0.50 | – → – |
| 乙女游戏精修立绘/高光眼 | 通过 | 7.3 | 9.2 | 3.0 | 0.33 → 0.36 | 0.10 → 0.13 | 0.009 % → 0.000 % | 1.36 → 1.33 | 0.54 → 0.51 | 24.3 → 0.5 |
| ANIMA ezra_a-2 | 通过 | 7.3 | 11.9 | 3.0 | 0.32 → 0.36 | 0.10 → 0.12 | 0.000 % → 0.000 % | 1.54 → 1.35 | 0.46 → 0.50 | – → – |
| HP mara_bob-2 | 通过 | 7.3 | 10.0 | 3.1 | 0.32 → 0.37 | 0.10 → 0.13 | 0.001 % → 0.000 % | 1.53 → 1.32 | 0.55 → 0.51 | – → – |
| BN Julian | 通过 | 7.3 | 11.2 | 3.2 | 0.33 → 0.35 | 0.10 → 0.12 | 0.013 % → 0.000 % | 1.49 → 1.32 | 0.45 → 0.49 | – → – |
| 真实照片/自拍侧转约 15° | 通过 | 7.4 | 12.3 | 3.3 | 0.33 → 0.36 | 0.10 → 0.12 | 0.000 % → 0.000 % | 1.56 → 1.32 | 0.45 → 0.49 | – → – |
| 氷室朔B | 通过 | 7.4 | 10.8 | 3.0 | 0.33 → 0.35 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.51 → 1.35 | 0.52 → 0.51 | – → – |
| BN linwanwan_nonecklace-1 | 通过 | 7.4 | 8.7 | 3.1 | 0.32 → 0.36 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.34 → 1.25 | 0.55 → 0.52 | – → – |
| 铅笔素描淡彩/排线留白 | 通过 | 7.5 | 10.5 | 3.3 | 0.32 → 0.36 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.64 → 1.31 | 0.53 → 0.51 | – → – |
| BN Evelyn | 通过 | 7.5 | 10.8 | 3.1 | 0.33 → 0.36 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.50 → 1.31 | 0.51 → 0.52 | 29.9 → 0.7 |
| 氷室蓮K4 | 通过 | 7.5 | 12.8 | 3.0 | 0.33 → 0.37 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.51 → 1.34 | 0.47 → 0.50 | – → – |
| PS luca-2 | 通过 | 7.7 | 10.8 | 3.0 | 0.33 → 0.37 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.50 → 1.39 | 0.53 → 0.52 | – → – |
| Yvonne · 流程对比 | 通过 | 7.7 | 8.1 | 2.6 | 0.33 → 0.34 | 0.10 → 0.14 | 0.001 % → 0.000 % | 1.15 → 1.24 | 0.55 → 0.49 | – → – |
| BN guchengze_lips-1 | 通过 | 7.7 | 12.1 | 3.3 | 0.33 → 0.37 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.67 → 1.33 | 0.46 → 0.50 | – → – |
| Hiyori · 流程对比 | 通过 | 7.7 | 9.1 | 3.4 | 0.33 → 0.34 | 0.10 → 0.14 | 0.010 % → 0.000 % | 1.26 → 1.34 | 0.55 → 0.51 | – → – |
| HP mara_asian_bun-2 | 通过 | 7.7 | 10.3 | 3.2 | 0.33 → 0.37 | 0.10 → 0.13 | 0.001 % → 0.000 % | 1.55 → 1.41 | 0.50 → 0.51 | – → – |
| 粉彩超细线/低对比柔和晕染 | 通过 | 7.7 | 8.9 | 3.4 | 0.33 → 0.35 | 0.10 → 0.13 | 0.007 % → 0.000 % | 1.21 → 1.35 | 0.54 → 0.51 | – → – |
| HP mara_bun-2 | 通过 | 7.7 | 11.6 | 3.3 | 0.33 → 0.37 | 0.10 → 0.13 | 0.002 % → 0.000 % | 1.57 → 1.34 | 0.52 → 0.51 | – → – |
| 真实照片/手机日光 | 通过 | 7.7 | 9.3 | 3.4 | 0.33 → 0.36 | 0.10 → 0.13 | 0.002 % → 0.000 % | 1.55 → 1.32 | 0.57 → 0.52 | – → – |
| Haru · 流程对比 | 通过 | 7.7 | 10.0 | 3.0 | 0.33 → 0.35 | 0.10 → 0.14 | 0.006 % → 0.000 % | 1.21 → 1.39 | 0.46 → 0.51 | – → – |
| BN Walter | 通过 | 7.7 | 10.9 | 3.1 | 0.33 → 0.37 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.39 → 1.36 | 0.47 → 0.51 | – → – |
| PS dante-3 | 通过 | 7.8 | 13.2 | 3.0 | 0.33 → 0.35 | 0.10 → 0.12 | 0.000 % → 0.000 % | 1.50 → 1.33 | 0.47 → 0.49 | – → – |
| PS luca-3 | 通过 | 7.8 | 12.4 | 2.8 | 0.33 → 0.37 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.49 → 1.35 | 0.51 → 0.52 | – → – |
| 氷室蓮K3 | 通过 | 7.8 | 14.3 | 3.1 | 0.33 → 0.36 | 0.10 → 0.13 | 0.001 % → 0.000 % | 1.47 → 1.33 | 0.48 → 0.50 | – → – |
| 新朋友 | 通过 | 7.8 | 8.7 | 3.0 | 0.33 → 0.33 | 0.11 → 0.13 | 0.000 % → 0.000 % | 1.23 → 1.28 | 0.57 → 0.51 | 22.6 → 1.8 |
| 朝霧 朔 · 流程对比 | 通过 | 7.9 | 11.8 | 3.3 | 0.33 → 0.36 | 0.10 → 0.13 | 0.062 % → 0.000 % | 1.38 → 1.35 | 0.48 → 0.51 | – → – |
| BN linwanwan_fix-2 | 通过 | 7.9 | 9.4 | 3.3 | 0.32 → 0.35 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.34 → 1.27 | 0.54 → 0.51 | – → – |
| BN linwanwan_rose-1 | 通过 | 7.9 | 9.5 | 3.3 | 0.33 → 0.36 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.37 → 1.28 | 0.55 → 0.52 | – → – |
| BN linwanwan_nonecklace-2 | 通过 | 7.9 | 9.5 | 3.3 | 0.33 → 0.36 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.35 → 1.27 | 0.55 → 0.52 | – → – |
| BN guchengze_clean-1 | 通过 | 7.9 | 11.3 | 3.3 | 0.33 → 0.35 | 0.10 → 0.12 | 0.000 % → 0.000 % | 1.72 → 1.33 | 0.46 → 0.50 | – → – |
| 氷室蓮 | 通过 | 8.0 | 11.0 | 2.8 | 0.33 → 0.37 | 0.10 → 0.13 | 0.005 % → 0.000 % | 1.45 → 1.36 | 0.49 → 0.52 | – → – |
| HP mara_asian_bun-3 | 通过 | 8.0 | 11.1 | 3.3 | 0.33 → 0.37 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.51 → 1.43 | 0.50 → 0.52 | – → – |
| BN Sienna | 通过 | 8.1 | 9.7 | 3.4 | 0.33 → 0.35 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.31 → 1.34 | 0.55 → 0.52 | – → – |
| BN linwanwan_nonecklace_merged-1 | 通过 | 8.2 | 9.8 | 3.4 | 0.33 → 0.36 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.39 → 1.27 | 0.55 → 0.51 | – → – |
| 阿凛 | 通过 | 8.3 | 11.1 | 3.1 | 0.33 → 0.35 | 0.10 → 0.13 | 0.006 % → 0.000 % | 1.29 → 1.35 | 0.52 → 0.51 | – → – |
| 氷室蓮C | 通过 | 8.3 | 11.3 | 3.1 | 0.32 → 0.36 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.47 → 1.36 | 0.49 → 0.51 | – → – |
| BN chenkuaiji_wire-2 | 通过 | 8.3 | 10.7 | 3.2 | 0.33 → 0.36 | 0.10 → 0.13 | 0.003 % → 0.000 % | 1.45 → 1.35 | 0.47 → 0.50 | – → – |
| BN guchengze-2 | 通过 | 8.3 | 9.7 | 3.2 | 0.34 → 0.38 | 0.11 → 0.13 | 0.001 % → 0.000 % | 1.55 → 1.29 | 0.52 → 0.53 | – → – |
| 光泽游戏式半写实/连续体积与立领 | 通过 | 8.4 | 10.6 | 2.9 | 0.33 → 0.37 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.49 → 1.32 | 0.53 → 0.52 | – → – |
| 3D 乙女游戏精修/红发耳饰高领外套男主 | 通过 | 8.4 | 11.0 | 3.0 | 0.32 → 0.39 | 0.10 → 0.13 | 0.002 % → 0.000 % | 1.50 → 1.38 | 0.55 → 0.53 | – → – |
| 氷室蓮B | 通过 | 8.4 | 13.1 | 3.2 | 0.33 → 0.37 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.54 → 1.36 | 0.50 → 0.50 | – → – |
| 氷室朔 | 通过 | 8.4 | 11.3 | 3.1 | 0.32 → 0.36 | 0.10 → 0.13 | 0.002 % → 0.000 % | 1.32 → 1.35 | 0.52 → 0.51 | – → – |
| 小夏 | 通过 | 8.5 | 11.7 | 3.2 | 0.33 → 0.34 | 0.10 → 0.13 | 0.001 % → 0.000 % | 1.31 → 1.32 | 0.54 → 0.51 | – → – |
| 氷室蓮A | 通过 | 8.5 | 12.0 | 3.3 | 0.33 → 0.36 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.51 → 1.33 | 0.49 → 0.52 | – → – |
| 3D 乙女游戏精修/黑发眼镜衬衫领带男主 | 通过 | 8.5 | 10.9 | 2.8 | 0.33 → 0.37 | 0.11 → 0.13 | 0.000 % → 0.000 % | 1.45 → 1.36 | 0.51 → 0.53 | – → – |
| 37 · 流程对比 | 通过 | 8.5 | 9.2 | 3.6 | 0.33 → 0.33 | 0.10 → 0.13 | 0.001 % → 0.000 % | 1.34 → 1.34 | 0.55 → 0.50 | – → – |
| 纯黑白漫画/眼镜与排线 | 通过 | 8.7 | 11.7 | 3.0 | 0.33 → 0.36 | 0.10 → 0.13 | 0.001 % → 0.000 % | 1.37 → 1.37 | 0.51 → 0.50 | – → – |
| 兽耳二次元/狼耳与毛边 | 通过 | 8.8 | 9.5 | 3.3 | 0.33 → 0.34 | 0.10 → 0.13 | 0.001 % → 0.000 % | 1.26 → 1.34 | 0.55 → 0.50 | – → – |
| 测试角色 | 通过 | 9.0 | 12.9 | 3.6 | 0.33 → 0.34 | 0.10 → 0.13 | 0.012 % → 0.000 % | 1.35 → 1.33 | 0.53 → 0.50 | – → – |
| 暖色清线二次元/明确明暗块 | 通过 | 9.1 | 11.5 | 3.5 | 0.33 → 0.35 | 0.10 → 0.13 | 0.012 % → 0.000 % | 1.33 → 1.36 | 0.55 → 0.51 | – → – |
| chaoya li | 通过 | 9.1 | 14.7 | 3.6 | 0.33 → 0.36 | 0.10 → 0.13 | 0.001 % → 0.000 % | 1.66 → 1.35 | 0.48 → 0.50 | – → – |
| 复古少女漫/星光大眼 | 通过 | 9.2 | 10.4 | 3.8 | 0.33 → 0.33 | 0.10 → 0.13 | 0.007 % → 0.000 % | 1.39 → 1.30 | 0.57 → 0.51 | – → – |
| mai | 通过 | 9.3 | 11.6 | 4.0 | 0.33 → 0.33 | 0.11 → 0.13 | 0.005 % → 0.000 % | 1.32 → 1.33 | 0.55 → 0.51 | – → – |
| aoi | 通过 | 9.3 | 12.5 | 3.7 | 0.33 → 0.33 | 0.11 → 0.13 | 0.005 % → 0.000 % | 1.24 → 1.37 | 0.56 → 0.51 | – → – |
| 真实照片/中年戴眼镜 | 通过 | 9.5 | 10.4 | 4.1 | 0.33 → 0.36 | 0.10 → 0.13 | 0.000 % → 0.000 % | 1.72 → 1.34 | 0.54 → 0.51 | – → – |
| Momo | 通过 | 9.9 | 13.3 | 3.3 | 0.33 → 0.36 | 0.10 → 0.13 | 0.002 % → 0.000 % | 1.52 → 1.37 | 0.54 → 0.51 | 28.0 → 0.9 |
| 扁平矢量极简/无线条纯色 | 通过 | 9.9 | 12.5 | 3.6 | 0.33 → 0.35 | 0.10 → 0.14 | 0.003 % → 0.000 % | 1.40 → 1.38 | 0.55 → 0.52 | – → – |
| Joye | 通过 | 10.3 | 15.1 | 3.9 | 0.33 → 0.35 | 0.11 → 0.13 | 0.015 % → 0.000 % | 1.36 → 1.35 | 0.48 → 0.51 | – → – |
| 立体玩具化成人吉祥物/大头短身 | 通过 | 14.3 | 20.0 | 6.1 | 0.33 → 0.35 | 0.10 → 0.14 | 0.062 % → 0.000 % | 1.27 → 1.44 | 0.50 → 0.50 | – → – |
| Q 版 SD/超大头与超大眼 | 通过 | 15.1 | 21.8 | 6.3 | 0.33 → 0.35 | 0.10 → 0.14 | 0.116 % → 0.000 % | 1.45 → 1.44 | 0.53 → 0.51 | – → – |
| 粗线美式卡通/几何平涂 | 通过 | 18.1 | 13.2 | 21.8 | 0.74 → 0.37 | 0.69 → 0.12 | 0.043 % → 0.000 % | 1.38 → 1.37 | 0.92 → 0.52 | – → – |
比较什么,怎么产出
- v2:PR #181 分支 dc4b588 上的
bindHead,读包里烘焙好的 prepared rig,生成形变场;然后用烘焙自己的bakeTurns在播放器的 prepareRig 上把它拟合成转头数据,和线上一样的路径。 - 测量:每个头部图层上每 3 px(768 画布)取一个网格点,按播放器的混合方式(
blendTurn+addTermMove)求两边在 44 个非静止关键姿态上的位移。RMS 只算有颜色的点;折叠和拉伸算四角都有颜色的网格三角形;鼻子和脸的位移是有色点的平均,单位是脸半宽 W;后发视差是脸的上下范围内,后发相对脸中心位移的最大值;耳坠离耳是每一侧耳饰有色点的平均位移与同侧耳朵平均位移之差的最大值。两边同一套代码。 - 渲染:播放器用 PR #181 分支构建(播放器代码与 main 相同)。PSD2Live 列就是线上发布的包;第一版和 v2 列是同一个包的本地副本,只把 deform.turns 换成烘焙从对应形变场拟合出来的结果(本地更新了 manifest 和目录的哈希)。宿主页用播放器的 postMessage 协议发
pose指令,关闭待机动作,用效果把眼睛固定为睁开,每个姿态等 1.5 秒后截图。本机 Chromium(SwiftShader),640×640 视口、2 倍像素,同一角色三列用同一个裁切。扫动视频逐帧设定姿态后截图,20 fps。 - 第一版列:第一版(prelulu-head-binder/1)的形变场经现在的烘焙拟合后,最差拟合误差有 4–12 px,所以这一列是“第一版通过现在的烘焙会播放成什么样”,和上一版页面里直接读原始形变场的截图不完全一样。
- 没有调用任何付费接口,没有读 PSD2Live 的源代码,只用了它的输出(线上包里的转头数据)作为测量对象。
差得最多的三个角色
这三个角色与 PSD2Live 的差最大。左 PSD2Live,右 v2,满轴。粗线美式卡通:PSD2Live 的眼镜和脸分开、鼻子位移过大;包本身的胡茬灰块两边都有。Q 版 SD 和立体玩具化:两边都没有坏,差在远侧后发的轮廓;立体玩具化左下时 PSD2Live 的后发在头顶外面多出一圈。
粗线美式卡通/几何平涂
左转


右转


抬头


左下


Q 版 SD/超大头与超大眼
左转


右转


抬头


左下


立体玩具化成人吉祥物/大头短身
左转


右转


抬头


左下


满轴:头部单位 ±1(ParamAngleX/Y = ±30,即形变场的 ±45° / ±30° 关键帧)。日常:偏航 ±0.38、俯仰 ±0.30 头部单位(±11.4 / ±9)。每个姿态三张图:左 PSD2Live,中 第一版,右 第二版,同一裁切。+Y 为抬头。
Hiyori
- 第一版:满偏航时脸和前发移得太远;右上、左下时脸颊被截断,发际线露出一块肤色。
- v2:18 个姿态都没有破面,呆毛和两条发带都贴在头发上,整体和 PSD2Live 很接近,转得稍多一点。
扫动视频
左 PSD2Live(线上),中 第一版,右 第二版。先偏航 0 → +30 → −30 → 0,再俯仰 0 → +30 → −30 → 0(满轴),循环。
9 个姿态
左上 X −30 / Y +30



抬头 X 0 / Y +30



右上 X +30 / Y +30



左转 X −30 / Y 0



正面 X 0 / Y 0



右转 X +30 / Y 0



左下 X −30 / Y −30



低头 X 0 / Y −30



右下 X +30 / Y −30



左上 X −11.4 / Y +9



抬头 X 0 / Y +9



右上 X +11.4 / Y +9



左转 X −11.4 / Y 0



正面 X 0 / Y 0



右转 X +11.4 / Y 0



左下 X −11.4 / Y −9



低头 X 0 / Y −9



右下 X +11.4 / Y −9



指标
| 测量 | PSD2Live(线上) | 第一版 v1 | 第二版 v2 |
|---|---|---|---|
| 与 PSD2Live 的 RMS 差(px,768 画布) | 0 | 25.4 | 7.7 |
| 其中后发 / 前发 / 脸 | – | 31.3 / 13.8 / 14.0 | 9.1 / 6.2 / 3.4 |
| 鼻子位移 满偏航(W) | 0.33 | 0.65 | 0.34 |
| 鼻子上移 满抬头(W) | 0.10 | 0.45 | 0.14 |
| 脸位移 满偏航 / 满抬头(W) | 0.27 / 0.08 | 0.33 / 0.15 | 0.29 / 0.11 |
| 折叠三角形 | 0.010 % | 0.035 % | 0.000 % |
| 拉伸 p99 / 最大 | 1.26 / 2.22 | 2.10 / 3.92 | 1.34 / 2.08 |
| 后发视差(W) | 0.55 | 1.58 | 0.51 |
| 耳坠离耳(px) | – | – | – |
| 烘焙后的转头数据:组数 / 数字个数 / 最差拟合 px | 18 组(线上包) | 23 / 47,684 / 12.4 | 23 / 26,502 / 2.2 |
Momo
- PSD2Live:抬头时嘴唇被拉开,像在笑;耳坠不跟耳朵走。
- 第一版:对角处丸子头和发饰大幅变形,耳朵露出且错位(它自己的门禁也拒绝了)。
- v2:没有破面;抬头时嘴唇闭合;耳坠贴着耳朵走(离耳 0.9 px,PSD2Live 28 px)。
扫动视频
左 PSD2Live(线上),中 第一版,右 第二版。先偏航 0 → +30 → −30 → 0,再俯仰 0 → +30 → −30 → 0(满轴),循环。
9 个姿态
左上 X −30 / Y +30



抬头 X 0 / Y +30



右上 X +30 / Y +30



左转 X −30 / Y 0



正面 X 0 / Y 0



右转 X +30 / Y 0



左下 X −30 / Y −30



低头 X 0 / Y −30



右下 X +30 / Y −30



左上 X −11.4 / Y +9



抬头 X 0 / Y +9



右上 X +11.4 / Y +9



左转 X −11.4 / Y 0



正面 X 0 / Y 0



右转 X +11.4 / Y 0



左下 X −11.4 / Y −9



低头 X 0 / Y −9



右下 X +11.4 / Y −9



指标
| 测量 | PSD2Live(线上) | 第一版 v1 | 第二版 v2 |
|---|---|---|---|
| 与 PSD2Live 的 RMS 差(px,768 画布) | 0 | 37.9 | 9.9 |
| 其中后发 / 前发 / 脸 | – | 54.4 / 18.9 / 14.2 | 13.3 / 7.9 / 3.3 |
| 鼻子位移 满偏航(W) | 0.33 | 0.66 | 0.36 |
| 鼻子上移 满抬头(W) | 0.10 | 0.42 | 0.13 |
| 脸位移 满偏航 / 满抬头(W) | 0.28 / 0.08 | 0.35 / 0.17 | 0.29 / 0.10 |
| 折叠三角形 | 0.002 % | 0.106 % | 0.000 % |
| 拉伸 p99 / 最大 | 1.52 / 2.42 | 2.20 / 5.44 | 1.37 / 2.21 |
| 后发视差(W) | 0.54 | 2.07 | 0.51 |
| 耳坠离耳(px) | 28.0 | 71.6 | 0.9 |
| 烘焙后的转头数据:组数 / 数字个数 / 最差拟合 px | 19 组(线上包) | 25 / 68,232 / 9.8 | 25 / 26,048 / 3.1 |
37
- PSD2Live:左转时侧面的编发露出来,有厚度感。
- 第一版:右上时下巴轮廓出现缺口,右转时脸被前发盖住更多。
- v2:没有破面,但左转时编发不会露出来(被头发盖住),这一点不如 PSD2Live;右转时远侧头发的外轮廓稍宽。
扫动视频
左 PSD2Live(线上),中 第一版,右 第二版。先偏航 0 → +30 → −30 → 0,再俯仰 0 → +30 → −30 → 0(满轴),循环。
9 个姿态
左上 X −30 / Y +30



抬头 X 0 / Y +30



右上 X +30 / Y +30



左转 X −30 / Y 0



正面 X 0 / Y 0



右转 X +30 / Y 0



左下 X −30 / Y −30



低头 X 0 / Y −30



右下 X +30 / Y −30



左上 X −11.4 / Y +9



抬头 X 0 / Y +9



右上 X +11.4 / Y +9



左转 X −11.4 / Y 0



正面 X 0 / Y 0



右转 X +11.4 / Y 0



左下 X −11.4 / Y −9



低头 X 0 / Y −9



右下 X +11.4 / Y −9



指标
| 测量 | PSD2Live(线上) | 第一版 v1 | 第二版 v2 |
|---|---|---|---|
| 与 PSD2Live 的 RMS 差(px,768 画布) | 0 | 24.7 | 8.5 |
| 其中后发 / 前发 / 脸 | – | 27.0 / 22.8 / 13.6 | 9.2 / 9.1 / 3.6 |
| 鼻子位移 满偏航(W) | 0.33 | 0.58 | 0.33 |
| 鼻子上移 满抬头(W) | 0.10 | 0.39 | 0.13 |
| 脸位移 满偏航 / 满抬头(W) | 0.27 / 0.08 | 0.32 / 0.13 | 0.29 / 0.11 |
| 折叠三角形 | 0.001 % | 0.023 % | 0.000 % |
| 拉伸 p99 / 最大 | 1.34 / 2.09 | 1.90 / 4.14 | 1.34 / 2.13 |
| 后发视差(W) | 0.55 | 1.47 | 0.50 |
| 耳坠离耳(px) | – | – | – |
| 烘焙后的转头数据:组数 / 数字个数 / 最差拟合 px | 18 组(线上包) | 23 / 39,608 / 8.3 | 23 / 26,804 / 3.5 |
HP mara_bob-2
- PSD2Live:抬头、左上时眼周出现颜色不同的补丁。
- 第一版:右转时远侧头发被切成一块,右上时脸和头发严重错位。
- v2:没有破面,眼周补丁只剩很淡的一点;右下角时左侧后发外轮廓比 PSD2Live 鼓出来一些。
扫动视频
左 PSD2Live(线上),中 第一版,右 第二版。先偏航 0 → +30 → −30 → 0,再俯仰 0 → +30 → −30 → 0(满轴),循环。
9 个姿态
左上 X −30 / Y +30



抬头 X 0 / Y +30



右上 X +30 / Y +30



左转 X −30 / Y 0



正面 X 0 / Y 0



右转 X +30 / Y 0



左下 X −30 / Y −30



低头 X 0 / Y −30



右下 X +30 / Y −30



左上 X −11.4 / Y +9



抬头 X 0 / Y +9



右上 X +11.4 / Y +9



左转 X −11.4 / Y 0



正面 X 0 / Y 0



右转 X +11.4 / Y 0



左下 X −11.4 / Y −9



低头 X 0 / Y −9



右下 X +11.4 / Y −9



指标
| 测量 | PSD2Live(线上) | 第一版 v1 | 第二版 v2 |
|---|---|---|---|
| 与 PSD2Live 的 RMS 差(px,768 画布) | 0 | 24.3 | 7.3 |
| 其中后发 / 前发 / 脸 | – | 33.0 / 22.2 / 14.5 | 10.0 / 9.5 / 3.1 |
| 鼻子位移 满偏航(W) | 0.32 | 0.67 | 0.37 |
| 鼻子上移 满抬头(W) | 0.10 | 0.41 | 0.13 |
| 脸位移 满偏航 / 满抬头(W) | 0.28 / 0.08 | 0.37 / 0.20 | 0.29 / 0.10 |
| 折叠三角形 | 0.001 % | 0.046 % | 0.000 % |
| 拉伸 p99 / 最大 | 1.53 / 2.01 | 2.15 / 5.47 | 1.32 / 1.63 |
| 后发视差(W) | 0.55 | 1.57 | 0.51 |
| 耳坠离耳(px) | – | – | – |
| 烘焙后的转头数据:组数 / 数字个数 / 最差拟合 px | 17 组(线上包) | 23 / 48,908 / 5.5 | 23 / 24,426 / 1.3 |
朝霧 朔
- PSD2Live:九个姿态都稳定,转动幅度偏小。
- 第一版:左上时头发和头顶分离,下巴轮廓出现锯齿;右转时远侧轮廓变形。
- v2:没有破面,与 PSD2Live 很接近;耳后的那缕头发两边都会在转头时露出来。
扫动视频
左 PSD2Live(线上),中 第一版,右 第二版。先偏航 0 → +30 → −30 → 0,再俯仰 0 → +30 → −30 → 0(满轴),循环。
9 个姿态
左上 X −30 / Y +30



抬头 X 0 / Y +30



右上 X +30 / Y +30



左转 X −30 / Y 0



正面 X 0 / Y 0



右转 X +30 / Y 0



左下 X −30 / Y −30



低头 X 0 / Y −30



右下 X +30 / Y −30



左上 X −11.4 / Y +9



抬头 X 0 / Y +9



右上 X +11.4 / Y +9



左转 X −11.4 / Y 0



正面 X 0 / Y 0



右转 X +11.4 / Y 0



左下 X −11.4 / Y −9



低头 X 0 / Y −9



右下 X +11.4 / Y −9



指标
| 测量 | PSD2Live(线上) | 第一版 v1 | 第二版 v2 |
|---|---|---|---|
| 与 PSD2Live 的 RMS 差(px,768 画布) | 0 | 25.6 | 7.9 |
| 其中后发 / 前发 / 脸 | – | 39.5 / 16.0 / 14.0 | 11.8 / 7.2 / 3.3 |
| 鼻子位移 满偏航(W) | 0.33 | 0.68 | 0.36 |
| 鼻子上移 满抬头(W) | 0.10 | 0.42 | 0.13 |
| 脸位移 满偏航 / 满抬头(W) | 0.28 / 0.08 | 0.34 / 0.16 | 0.29 / 0.10 |
| 折叠三角形 | 0.062 % | 0.017 % | 0.000 % |
| 拉伸 p99 / 最大 | 1.38 / 2.13 | 2.16 / 4.20 | 1.35 / 1.85 |
| 后发视差(W) | 0.48 | 1.67 | 0.51 |
| 耳坠离耳(px) | – | – | – |
| 烘焙后的转头数据:组数 / 数字个数 / 最差拟合 px | 17 组(线上包) | 23 / 47,498 / 3.9 | 23 / 25,106 / 1.3 |
局限
- 这是实验数据,不是视觉验收。
- 4 个 PS 角色(dante-2、dante-3、luca-2、luca-3)用的是比这个分支更新的烘焙格式(deform 多了 layers、closure、frame,mouth 多了 stage、speech)。测量时把这些新字段去掉、版本号改成分支的,prepared rig 和转头数据没有动。
- 耳坠离耳这一项是按 v2 的设计(耳坠跟着自己的耳朵刚性移动)定义的,天然对 v2 有利;PSD2Live 的耳坠可能本来就有意识地不完全跟随。
- 折叠和拉伸是在 3 px 网格上测的播放效果,和 v2 门禁自己的测法不同;两边用的是同一套测法。
- 只有五个报告角色渲染了完整的三列截图和扫动视频,另外三个差异最大的角色只渲染了 PSD2Live 和 v2 的几个姿态;其余 72 个角色只有数字。
- 截图来自 SwiftShader 软件渲染;呼吸不受 presence: quiet 控制,三列的呼吸相位可能不同,身体轮廓可能差 1–2 px。
- v2 的 18 个常数是在 Hiyori、Momo、37 上拟合的;这 80 个角色里的这三个是训练集,其余 77 个对拟合来说都是没见过的。