游戏和虚拟形象里的风格化头发是由一片片“发片”(hair card,美术摆放的带状面片)拼成、再由弹簧骨骼驱动的。HairDeck 输入一张角色图,直接生成这些发片和驱动它们的弹簧骨骼链:每片发片编成一个 token,用集合扩散 Transformer 一起去噪,再由第二个扩散模型生成骨骼链并蒙皮。输出保留独立发片和逐片 UV,可导出 GLB,或套到自带的身体模型上导出 VRM 头像。
点赞 17 · 代码星数 14
理由
- 作者称在 CHARM 自己的测试集上倒角距离降低 44%、发片朝向误差降一半以上,速度快 33 倍;从单张图生成时也优于 CHARM、图生 3D 管线和发丝类方法。
- 代码和四个检查点(图像条件 DiT、发片 VAE、骨骼链 DiT、点云条件 DiT)都已放出,代码和权重 Apache-2.0,另有抱脸在线演示。
- 产物能直接进下游:GLB 网格、VRM 头像和转头预览视频,不用再手工把融合网格拆成发片。
用法
- 最快体验:抱脸 Space hyz317/HairDeck。
- 本地:Linux x86-64、Python 3.12、一张 NVIDIA GPU(作者用 PyTorch 2.8 + CUDA 12.8 测试);git clone github.com/hyz317/HairDeck → pip install -r requirements.txt → pip install --no-deps pyrender==0.1.45。
- 权重:先在抱脸同意 facebook/sam3 和 facebook/dinov3-vitl16-pretrain-lvd1689m 的许可并 hf auth login,设好 HAIRDECK_ROOT 后运行 python scripts/setup/download_weights.py(会一并下载 Blender 4.2 LTS 和 VRM 插件)。
- 生成:python scripts/image_to_hair.py character.png --out results/my_character --n 4(1–4 个变体,--no-chains 只出发片);导出:python -m hairdeck.vrm.export results/my_character/character 0;也可 python demo/app.py 起本地网页。
风险
- 依赖多:SAM 3、DINOv3 是门控模型,要登录抱脸并同意许可;还需要 Blender + VRM 插件和 ffmpeg,第三方组件各有许可。
- 面向风格化 / 动漫类卡片头发,不是写实发丝;训练发布版图像模型用的风格化渲染图池没有放出,自己重训复现不了同样的模型。
- 精度和速度数字为作者报告;没看过生成结果,不评价实际观感。