HairDeck:从单张角色图像生成发片与弹簧骨骼

ComfyUI Wikinews

HairDeck 可从单张图像成组生成风格化发片,并添加驱动其动画的弹簧骨骼链,最终导出 GLB 或 VRM 虚拟形象。

HairDeck 可将一张角色图像转换为风格化发片(hair card,即游戏角色与 VTuber 虚拟形象实际使用的、由美术手工摆放的带状面片),并生成驱动其动画的弹簧骨骼链。权重与代码:hyz317/HairDeck 与 hyz317/HairDeck。论文:arXiv 2610.40599。仓库于 2026 年 10 月 27 日与 29 日发布。

头发是图像转 3D 流程中最常出错的部位。发丝重建能得到逼真的毛发造型,但渲染开销巨大;网格重建则只给出一整块融合的团块,美术无法重新梳理、改造型或制作动画。风格化项目实际交付的是发片发型,而这类发型是手工一条带子一条带子做出来的。

HairDeck 把发型当作美术眼中的样子来处理:一组无序的图元。每张发片是一个 token,集合扩散 Transformer 对所有发片一起去噪,因此模型无需决定头发各部分的先后顺序。结果保留了独立的发片及其逐片 UV,还附带让它们动起来的弹簧骨骼链。

HairDeck 流程

流程:发片 token、以图像或点云为条件的集合扩散,以及生成带弹簧骨骼链的发片。

以集合形式表示的发片

此前唯一的风格化发片生成器 CHARM 以自回归方式把发型解码为一长串控制点。这使得序列顺序变得重要,序列早期的错误会传播到其余头发上。

HairDeck 反其道而行。卡片 VAE 将每张发片编码为一个 token,集合 Transformer 一次查看所有 token,卡片 VAE 再把每个 token 解码回带有自身 UV 坐标的几何。默认以图像为条件,也可通过第四个发布的模型以点云为条件。

发片自带弹簧骨骼

仅有几何并不构成可用资产。游戏引擎或 VRM 虚拟形象中的发片发型之所以看起来有生命,是因为弹簧骨骼以少量物理模拟牵引每张发片,而这些骨骼链通常在网格完成后手工搭建并绘制权重。

骨骼链扩散模型以卡片 token 为条件直接生成这些骨骼链,因此导出内容同时包含蒙皮与几何。输入一张图像,输出的是会摆动的发型。

演示视频的一帧画面

项目演示的一帧:在给定虚拟形象身体上生成的发片。

项目演示视频:一张输入图像、四种生成变体,以及 VRM 转头预览。

交付内容

模型角色检查点文件
图像 DiT以图像为条件生成卡片 tokenckpt/image_model/model.safetensors
卡片 VAE将卡片 token 的 Latent 解码为发片几何ckpt/card_vae/model.safetensors
骨骼链 DiT以卡片 token 为条件生成弹簧骨骼链ckpt/chain_model/model.safetensors
点云 DiT以点云为条件生成卡片 tokenckpt/pointcloud_model/model.safetensors

图像路径依次运行图像 DiT、卡片 VAE 与骨骼链 DiT。点云模型用于点云生成与评估路径。仓库还提供归一化统计数据、标准头部坐标系、用于 VRM 导出的 VRoid Studio 模板虚拟形象,以及 100 个测试用例及其原始发片几何,因此无需训练集即可复现评估结果。

推理需要 Linux x86-64、Python 3.12 和一块 NVIDIA CUDA GPU,已在 PyTorch 2.8 与 CUDA 12.8 下测试。预处理栈比模型本身更重:SAM 3 与 DINOv3 ViT-L/16 属于需先接受许可协议才能下载的门控资源,BiRefNet-matting 负责抠图,VRM 导出则调用带 VRM 插件的 Blender 4.2 LTS,安装脚本可以自行获取它。VRM 路径目前仍是 Python 与 Blender 流程,而非 ComfyUI 自定义节点。

单条指令即可生成一到四种变体,若只需要发片,可用 --no-chains 跳过弹簧骨骼模型:

python scripts/image_to_hair.py character.png --out results/my_character --n 4
python -m hairdeck.vrm.export results/my_character/character 0

论文中的数据

在 CHARM 自己的测试集上,HairDeck 报告 Chamfer 距离降低 44%、发片朝向误差减少一半以上,同时运行速度快 33 倍。作者称,从单张图像出发,它优于 CHARM、图像转 3D 流程以及基于发丝的方法;对于输入的是生成角色而非渲染角色的人来说,这正是最关键的对比。

可用性

  • Hugging Face 上的 hyz317/HairDeck:四个检查点、配套数据、100 个测试用例,Apache-2.0
  • GitHub 上的 hyz317/HairDeck:推理、本地演示、评估与训练代码,目前是唯一受支持的路径
  • 托管的 Space 演示,可在浏览器中生成头发并导出 VRM
  • 目前没有官方 ComfyUI 集成。一个非常新的社区包 FengLairh/ComfyUI-HairDeck 将同样的检查点封装为三个节点(加载、生成、保存),在 ComfyUI 自身的 Python 进程中运行,并准备便携版 Blender 用于 VRM 导出;它于 11 月 1 日出现,本站尚未验证

评论

使用 GitHub 登录后即可参与讨论。

评论加载中…
HairDeck:从单张角色图像生成发片与弹簧骨骼 | ComfyUI Wiki