← 返回 2026-10-30

HairDeck:从单张图像生成可直接动画的风格化发卡发型 HairDeck: Animation-Ready Stylized Hair Cards from a Single Image

Yuze He, Yixiang Wei, Wang Zhao, Chuhao Chen, Yanning Zhou, Yong-Jin Liu 📅 2026-10-29 👍 34 2026-11-09 18:30
3D内容生成 单图生成 发卡资产 弹簧骨骼动画 集合扩散 风格化头发

把发型当作无序发卡集合,集合扩散Transformer一次生成全部发卡与弹簧骨链

前置知识

发卡(Hair Card)

游戏和虚拟形象中风格化头发的标准构成单元:由美术手工摆放的一条条带状网格(ribbon),几十到一百多条卡片的几何体直接构成可见的头发。与写实头发中"用一张贴图代替多根发丝"的 alpha 透贴卡片不同,风格化卡片有菱形或三角形截面,宽度和厚度沿卡片变化,每张卡用控制点折线 $(p_i, w_i, h_i)$ 描述。

本文生成与评测的对象就是这种卡片,理解卡片的数据结构以及截面类型、根朝向这两个新引入的属性,是读懂表示设计与朝向指标的前提。

弹簧骨骼(Spring Bone)

挂在头部骨骼下的一小串短骨链,每帧模拟骨尖位移(带刚度 stiffness、阻尼 drag、重力),使头发随头部运动摆动并沉降。Unity 的 Dynamic Bone、VRChat 的 PhysBones、Unreal 的 Kawaii Physics、Godot 内置节点以及 VRM 规范都内置这种模拟,是实时角色头发的通用动画方案。

论文不仅生成静态卡片,还用第二个集合 DiT 直接生成骨链及其物理参数,使输出"开箱即可动画"——这正是标题 Animation-Ready 的含义。

集合扩散 Transformer(Set DiT)

用 Diffusion Transformer(DiT)同时对一组无序 token 去噪:去掉位置编码使模型对槽位置换严格等变,集合大小由每个 token 上的存在标志决定;每个块做 token 间自注意力、对条件 token 的交叉注意力,时间步与池化条件经 adaLN-Zero 调制。3DTopia-XL、DiffuScene、PartCrafter 等均采用此类集合生成。

本文的核心公式"每个图元一个 token、整集合一起去噪"就建立在这个机制上,是与 CHARM 自回归路线的本质区别,也是全部消融实验的对照对象。

Flow Matching(流匹配)

一类扩散式生成训练目标:在数据 $X_0$ 与噪声 $\epsilon$ 之间构造直线路径 $X_t=(1-t)X_0+t\epsilon$,网络 $v_\theta$ 预测该路径上的速度 $\epsilon - X_0$,推理时用 Euler 法从 $t=1$ 积分到 $t=0$。本文配合 classifier-free guidance(训练时以 0.1 概率把条件换成可学习空 token)提升条件一致性。

论文的训练损失(根位置与存在标志加权 4)、采样设置(50 步 Euler、guidance 2)都由此定义,读懂方法公式和消融都绕不开它。

旋转最小化标架(Bishop Frame)

沿空间曲线传播局部坐标系的方法:在每段只做让法向"不绕切线扭转"的旋转,从而得到逐点连续、无突变的宽度方向 $d_i$。发卡网格正是由根方向沿折线传播后扫掠截面生成,根方向一旦偏了,整张卡的朝向就跟着偏。

论文发现"从原始美术网格读根法向 + Bishop 传播"能把卡片朝向误差从 CHARM 的 40.0° 压到 16.8°,是理解朝向指标与 Table 9/10 分析的关键。

Chamfer Distance(CD)

两组点集间的距离度量:对每个点取它在另一组点集中的最近邻距离,再双侧平均,数值越小形状越接近。CHARM 协议把角色归一化到单位身高后,比较生成卡片与真值卡片的采样点;本文另用 EMD、HD、体素 IoU 及对齐 CD(ICP 配准后)作补充。

CD 是 Table 1/2 的主要精度指标,"CD 降低 44%"这一核心结论以它为单位,理解它的计算方式才能判断数字的可比性。

研究动机

游戏与虚拟形象里的风格化角色头发不是一整张网格,而是由美术手工摆放的几十到一百多条发卡构成,每张卡有菱形或三角形截面,宽度和厚度沿卡变化;头发还要逐根手工绑弹簧骨链,靠每帧模拟的短骨链实现摆动与沉降——Unity Dynamic Bone、VRChat PhysBones、Unreal Kawaii Physics、Godot 与 VRM 规范都内置这种模拟。现有生成方法给不出这种资产:写实或支持风格化图像的发丝生成器输出的是发丝,只能事后抽取成 alpha 透贴卡片;TRELLIS.2、Hunyuan3D-2.1 等图生 3D 模型输出一张融合网格,既没有卡也没有骨骼,对两张插画甚至输出一块正对相机的平板;唯一能生成风格化发卡的 CHARM 以自回归方式逐个解码一套发型中数百到上千个离散 token 的控制点,生成一套要 33.7 秒,且靠前三个控制点估计根方向导致卡片朝向误差高达 40.0°,其 CD 0.0117 与"直接检索最近的训练发型"(CD 0.0119)几乎持平——说明逐 token 解码既慢,又没有真正学到发型集合的结构。

本文的目标是本文的目标是:从单张图像(或点云)直接生成"开箱即可动画"的风格化发型资产——既包括带正确截面类型(菱形/三角形)与根法向的发卡几何,也包括驱动这些卡片的弹簧骨链及其刚度等物理参数,可直接导出到 VRM 等下游格式。同时要满足三个工程性要求:一是快,把单发型生成时间从 CHARM 的 33.7 秒压到秒级;二是准,卡片朝向要与美术原始网格一致(CHARM 的 40° 误差不可接受),卡片数量也要与美术习惯相符(每套约 67 张);三是鲁棒,能处理动漫插画、手绘线稿乃至 AI 生成的写实人像等各种画风的输入。

与已有工作不同的是,作者的独特切入点是一个简单观察:一套发卡发型本质上是"美术定义的图元的无序集合",而不是有序序列。据此提出两条设计法则——每个图元一个 token、token 之间不定义顺序——把生成单位从 CHARM 的"逐控制点自回归"改为"整套发卡 token 一次性集合去噪"。配套设计包括:卡片 VAE 把变长控制点编成单一连续 latent,使每张卡恰好占一个 40 维 token;token 上的存在标志让模型在去噪过程中自行落定卡片数量,而不需要单独的卡数预测头;再训练第二个集合 DiT,以已生成的卡片 token 为条件生成骨链集合,使"可动画性"成为生成目标而非事后处理。针对单图像输入,还引入锚定在脸上的头部坐标系解决发型大小与位置、以及面向多种画风的合成风格增广与图像编辑模型改风格渲染。作者指出这套"图元集合"配方可推广到服装裁片、矢量笔画等其他资产。

核心方法

HairDeck 的整体思路是"先压缩、再集合去噪、再配套骨链"。直觉上,发型像一桌散落的卡片,不该按顺序一张张"念"出来,而应整体"捏"成形。技术上分四步:第一步,卡片 VAE 把每张卡相对根点的变长控制点 $(p_i,w_i,h_i)$(各点附弧长比例 $u_i$)压缩成 32 维连续 latent $z$,解码器预测控制点数 $n$ 并在 $n$ 个等距弧长位置重建卡片;第二步,每张卡成为一个 token $x=(p_1,d_1,z,s,e)\in\mathbb{R}^{40}$(根位置、根法向、latent、截面类型 $s$、存在标志 $e$),一个 12 层、宽 768、181.3M 参数、无位置编码的集合 DiT 用流匹配同时去噪 $N=192$ 个槽位,条件为 Dora-VAE 编码的点云 token 或冻结 DINOv3 ViT-L/16 编码的图像 token;第三步,卡片 VAE 逐槽解码出控制点,按 Bishop 标架扫掠截面重建网格;第四步,第二个集合 DiT(8 层、宽 384、30.5M 参数)以卡片 token 为条件生成最多 48 条骨链 token(27 维:弧长 8 点路径、关节数、刚度、存在标志),再用固定的几何蒙皮把卡片绑到骨链上,按 VRM spring-bone 更新以 60fps 模拟。

核心创新是把"发型 = 图元的无序集合"贯彻到底,与已有方法的本质区别有三。其一,生成单位不同:CHARM 自回归地生成有序 token 序列,顺序本身成了模型的学习负担,还带来早期停止导致的卡数偏少(AR 平均 60.8 张 vs 真值 67.4);HairDeck 的集合 DiT 完全不用位置编码,对槽位置换严格等变,卡片数量由每个 token 的存在标志在去噪过程中逐渐"落定"(消融显示换成卡数预测头会平均少生成 6 张:62.8 vs 68.9)。其二,卡片编码不同:不用 CHARM 的 512 级量化控制点模板,而是弧长参数化的连续 latent,配合 adaLN 调制与世界单位损失,重建误差比按索引解码的 VAE(StrokeFusion 式)低约 6 倍(4.17 vs 0.70,单位 $10^{-3}$),输出卡片平滑度与美术原卡持平(最大转折角中位数 14.2° vs 原卡 14.1°)。其三,token 内容不同:在 CHARM 描述基础上加入截面类型 $s$ 与从原始美术网格读出的根法向 $d_1$,前者保留美术选择的截面,后者配合 Bishop 传播把朝向误差从 40.0° 降到 16.8°。

方法步骤详情

完整流程:(1)卡片描述:每卡为 $n$ 个控制点的折线 $(p_i,w_i,h_i)$,附截面类型 $s\in\{-1,+1\}$(菱形/三角)与根法向 $d_1$,由 $d_1$ 经 Bishop 标架传播出各点宽度方向 $d_i$ 后扫掠截面成网格。(2)卡片 VAE:编码器读控制点(附弧长比例 $u_i=i/(n-1)$ 的 Fourier 特征)与可学习 [CLS] 汇总 token,输出 $z\in\mathbb{R}^{32}$ 的 $\mu,\log\sigma^2$;解码器先从 $z$ 分类预测点数 $n$,再在 $n$ 个等距弧长位置经 adaLN-Zero 调制重建,损失为世界单位平方误差 + $n$ 交叉熵(权重 0.1)+ KL($10^{-6}$)。(3)集合去噪:192 个 40 维槽位,目标 $X_t=(1-t)X_0+t\epsilon$,速度损失中根位置与存在标志加权 4;条件以 0.1 概率换空 token 支持 CFG;推理 50 步 Euler、guidance 2,按 $e>0$ 解码槽位。(4)图像条件:裁剪头发+脸掩码并留 8% 边距(野外图用 SAM 3 分割),冻结 DINOv3 于 448px;预测在头部坐标系进行——以 $k=W/w$ 把脸宽缩放到训练集中位数 $W=0.1276$、脸顶移到公共点 $O$,输出再按各角色自己的 $k,b$ 映回真实头部。(5)训练渲染:每角色 8 视角 Blender EEVEE 768px,随机姿态与 VRM 弹簧骨头发运动,叠加灰度/半调/XDoG 线稿/平涂/油画等风格增广,并用 Qwen-Image-Edit-2511 构建 21,336 张改风格图池(训练时 0.33 概率抽取)。(6)骨链:链 DiT 交叉注意卡片 token 生成 48 槽链 token;蒙皮把卡片绑到与其中心线下部 60% 最近(均值距离 < 0.4 脸宽)的链上,逐点跟随最近链段并与邻段线性混合;最后按 UniVRM 弹簧骨更新(drag 0.4、无重力、60fps)模拟。

技术新颖性

技术新颖性可从三层看。表示层:把 StrokeFusion 的"每个笔画一个 VAE latent"推广为"每个美术图元一个 token",并首次为风格化发卡设计弧长参数化 VAE——解码在等距弧长位置而非固定索引处求值,使变长卡片共享一个固定大小的连续 latent,且重建平滑度可控(索引解码的转折角 25.3°,弧长解码 13.7–14.3°,逼近原卡 14.1°)。生成层:沿用 3DTopia-XL、DiffuScene、PartCrafter 等集合生成思想,但针对发型做了三处定制——无位置编码加每 token 存在标志实现变基数集合;条件可切换为点云(Dora-VAE)或单图(DINOv3),且图像模型从点云模型初始化做迁移训练;两阶段级联(先生卡、再生链)把"可动画性"纳入生成目标。评估层:作者首次提出逐卡朝向误差指标(生成卡与 CD 最近邻的美术卡在 32 个位置的宽度方向平均夹角)与根位置 P/R(阈值 2% 身高),揭示了被 CHARM 协议掩盖的问题——CHARM 模板对量化控制点做最小二乘重建时朝向误差达 40.6°,而给对根方向后量化本身只损失不到 1°。

Overview. Left: a hairstyle is a set of hair cards. Each card becomes one token holding its root position, root normal, card VAE latent z, cross-section type and existence flag. Middle: the set DiT denoises the token set with flow matching. Right: the card VAE decodes the tokens into cards, and the chain DiT generates their spring-bone chains.
Figure 2: Overview. Left: a hairstyle is a set of hair cards. Each card becomes one token holding its root position, root normal, card VAE latent z, cross-section type and existence flag. Middle: the set DiT denoises the token set with flow matching. Right: the card VAE decodes the tokens into cards, and the chain DiT generates their spring-bone chains.
Network design. Top: the card VAE. Bottom: both DiTs use the same block design, modulated by the timestep and the pooled condition. The set DiT predicts the velocity of 192 card token slots without positional embedding; the chain DiT does the same for 48 spring-bone chain slots, conditioned on the card tokens.
Figure 3: Network design. Top: the card VAE. Bottom: both DiTs use the same block design, modulated by the timestep and the pooled condition. The set DiT predicts the velocity of 192 card token slots without positional embedding; the chain DiT does the same for 48 spring-bone chain slots, conditioned on the card tokens.
Head frame. (a) The dataset frame scales every character to height 1, so heads differ in size and height. (b) In the head frame, all characters share the face width W and face top O.
Figure 5: Head frame. (a) The dataset frame scales every character to height 1, so heads differ in size and height. (b) In the head frame, all characters share the face width W and face top O.
Denoising from a point cloud. For each test point cloud, top: the cards decoded from the noisy token set Xt; bottom: the clean set predicted at that step. Each card keeps its color along the trajectory.
Figure 21: Denoising from a point cloud. For each test point cloud, top: the cards decoded from the noisy token set Xt; bottom: the clean set predicted at that step. Each card keeps its color along the trajectory.
Denoising from an illustration. On each platform, from left to right: the input, the cards decoded from the noisy token set Xt at t = 1.0, 0.7 and 0.4, and the generated hairstyle.
Figure 22: Denoising from an illustration. On each platform, from left to right: the input, the cards decoded from the noisy token set Xt at t = 1.0, 0.7 and 0.4, and the generated hairstyle.

实验结果

点云生成(CHARM 100 条测试发型):CD 从 0.0117 降至 0.0066(−44%),EMD 0.0128→0.0084、HD 0.0498→0.0242、IoU 0.753→0.867;对美术原始网格的逐卡朝向误差 40.0°→16.8°(减半以上);耗时 1.01s vs 33.7s(33 倍加速)。检索最近训练发型 CD 仅 0.0119,说明 CHARM 约等于背题;网格基线更差(MeshAnything V2 0.0166/176s、DeepMesh 0.0357/1050s、BPT 0.0446/351s)。同等参数的逐卡自回归版 CD 0.0078、6.91s——同一 token 化下集合化把 CD 再降至 0.0066 并快 6.8 倍,直接证明增益来自集合生成本身。单图生成(76 测试角色 + 40 野外插画):对齐 CD 0.0089(对比 CHARM 0.0186、TRELLIS.2 0.0139、Hunyuan3D-2.1 0.0148、DiffLocks+卡片 0.0174),失败率 3.5%/10%(基线 13.2–34.2%/17.5–77.5%),耗时 1.33s(基线 15.6–83s);图生 3D 级联(TRELLIS.2/Hunyuan→点云模型)CD 0.0138–0.0170、失败 22.4–32.9%,仍全面落后。骨链(58 条带链测试发型,美术卡输入):召回 0.625/精度 0.585(检索 0.289/0.285、程序化装配精度仅 0.110),头部运动相关性 0.702(检索 0.622、程序化 0.538),对卡片贴合度 0.953。关键消融:去根法向朝向 16.8°→26.4°;用 CHARM 卡片模板 26.7°;图像模型去头部坐标系则对齐前 CD 0.0136→0.0189、头发重投影 IoU 0.829→0.798;改风格训练图把根精度 0.781→0.849,合成风格增广把对齐 CD 0.0100→0.0097。

Generation from point clouds on CHARM's 100 test hairstyles, with its protocol; orientation on the original meshes; time per hairstyle.
Table 1: Generation from point clouds on CHARM's 100 test hairstyles, with its protocol; orientation on the original meshes; time per hairstyle.
Generation from single images: aligned CD and IoU on 76 test characters, failure rates on them and on 40 in-the-wild images, and time per image.
Table 2: Generation from single images: aligned CD and IoU on 76 test characters, failure rates on them and on 40 in-the-wild images, and time per image.
Ablations on point clouds; each row changes one part of HairDeck. Raw control points: the card resampled to 64 points by arc length. Turn: largest angle between consecutive segments of a card.
Table 3: Ablations on point clouds; each row changes one part of HairDeck. Raw control points: the card resampled to 64 points by arc length. Turn: largest angle between consecutive segments of a card.
Spring-bone chains on the 58 test hairstyles with chains, against the artists' chains. Bottom rows: generated cards; –: not measured.
Table 4: Spring-bone chains on the 58 test hairstyles with chains, against the artists' chains. Bottom rows: generated cards; –: not measured.
Cascades of image-to-3D generators (TRELLIS.2 and Hunyuan3D-2.1) and point-cloud generators, against HairDeck.
Table 5: Cascades of image-to-3D generators (TRELLIS.2 and Hunyuan3D-2.1) and point-cloud generators, against HairDeck.
All ablations on point clouds; each row changes one part of HairDeck. Bold: best in each column with an arrow.
Table 6: All ablations on point clouds; each row changes one part of HairDeck. Bold: best in each column with an arrow.
Ablations of the image model on the 76 test characters. Front view: CD before alignment, overlap of the reprojected hair, aligned CD. Restyled: aligned CD, root precision P and recall R, cards per hairstyle.
Table 7: Ablations of the image model on the 76 test characters. Front view: CD before alignment, overlap of the reprojected hair, aligned CD. Restyled: aligned CD, root precision P and recall R, cards per hairstyle.
Card VAE design: reconstruction of the cards of CHARM's 100 test hairstyles, with z ∈ R32.
Table 8: Card VAE design: reconstruction of the cards of CHARM's 100 test hairstyles, with z ∈ R32.
Width direction and shape of artist cards rebuilt from their control points, on CHARM's 100 test hairstyles.
Table 9: Width direction and shape of artist cards rebuilt from their control points, on CHARM's 100 test hairstyles.
Width direction of generated cards on CHARM's 100 test point clouds. Only the width direction used for meshing changes.
Table 10: Width direction of generated cards on CHARM's 100 test point clouds. Only the width direction used for meshing changes.
Drawing styles on the 76 test characters: the front view (original) and its restyles. Aligned CD and root precision.
Table 11: Drawing styles on the 76 test characters: the front view (original) and its restyles. Aligned CD and root precision.
Point clouds from CHARM's test set. CHARM and HairDeck output hair cards, colored per card like the artist ground truth; MeshAnything V2, DeepMesh and BPT output meshes.
Figure 4: Point clouds from CHARM's test set. CHARM and HairDeck output hair cards, colored per card like the artist ground truth; MeshAnything V2, DeepMesh and BPT output meshes.
Single images: two in-the-wild illustrations (top) and an AI-generated photorealistic portrait (bottom). TRELLIS.2 and Hunyuan3D-2.1 take the hair region as input, and TRELLIS.2 outputs a flat plate facing the camera for both illustrations.
Figure 6: Single images: two in-the-wild illustrations (top) and an AI-generated photorealistic portrait (bottom). TRELLIS.2 and Hunyuan3D-2.1 take the hair region as input, and TRELLIS.2 outputs a flat plate facing the camera for both illustrations.
Hairstyles generated by HairDeck from in-the-wild images.
Figure 7: Hairstyles generated by HairDeck from in-the-wild images.
Generated spring bones in motion. Left: the generated cards (transparent) with their generated spring-bone chains. Right: a 50° head turn; top row with the chains, bottom row without them.
Figure 8: Generated spring bones in motion. Left: the generated cards (transparent) with their generated spring-bone chains. Right: a 50° head turn; top row with the chains, bottom row without them.
Interpolation between two test point clouds, inputs A and B: the condition tokens of B are matched to those of A and blended with the weight α under each column, and all samples share the initial noise.
Figure 9: Interpolation between two test point clouds, inputs A and B: the condition tokens of B are matched to those of A and blended with the weight α under each column, and all samples share the initial noise.
Card tokens. A set DiT of the same architecture, trained with each card token of Tab. 6, generates two test hairstyles from point clouds; insets magnify the same window in each row.
Figure 15: Card tokens. A set DiT of the same architecture, trained with each card token of Tab. 6, generates two test hairstyles from point clouds; insets magnify the same window in each row.
Drawing styles. Two test characters, original and restyled by an image-editing model into the gacha, thick paint and semi-real styles (top row of each), and the hairstyle generated from each image (bottom row).
Figure 20: Drawing styles. Two test characters, original and restyled by an image-editing model into the gacha, thick paint and semi-real styles (top row of each), and the hairstyle generated from each image (bottom row).
查看结构化数据
任务指标本文基线提升
点云→发卡(CHARM 100 条测试发型) Chamfer Distance (CD) ↓ 0.0066 CHARM 0.0117;MeshAnything V2 0.0166;BPT 0.0446 较 CHARM 降低 44%
点云→发卡(对原始美术网格) 逐卡朝向误差 ↓ 16.8° CHARM 40.0°;检索 24.8° 误差减半以上
点云→发卡 单发型生成时间 ↓(单卡 RTX A6000) 1.01 s CHARM 33.7 s;DeepMesh 1050 s 33 倍加速
单图→发卡(76 个测试角色) 对齐 CD ↓ / IoU ↑ 0.0089 / 0.725 CHARM 0.0186/0.540;最佳外部基线 TRELLIS.2 0.0139/0.638 CD 较 CHARM 降 52%,较 TRELLIS.2 降 36%
单图→发卡 失败率 ↓(测试角色 / 野外插画) 3.5% / 10.0% 13.2%–34.2% / 17.5%–77.5% 野外失败率最多降至约 1/8
骨链生成(58 条带链测试发型) 召回/精度 @0.1W ↑(美术卡输入) 0.625 / 0.585 检索 0.289/0.285;程序化规则装配精度 0.110 召回提升约 2.2 倍

局限与改进

作者承认的局限:(1)训练数据全部来自 VRoid 风格化发型,极短发型与写实头发的 alpha 透贴卡片在分布之外;(2)只生成几何与 UV 坐标,不生成贴图,拿到手仍是"素卡";(3)VRoid 中部分蝴蝶结、帽子本身用发卡建模,输入图中出现时会被误生成为卡片;(4)链 DiT 学的是 VRoid 常见链布局,对非常规布局(如大量链从头顶辐射)生成偏少;(5)野外失败案例显示抠图(matte)残留的道具、尾巴、特效、帽子犄角会被转成卡片。我的补充观察:其一,评测规模偏小——点云测试仅 100 条发型、单图测试仅 76 个角色(且都是 VRoid 渲染的前视图),野外 40 张也按发型分层抽样,泛化到非 VRoid 画风与体型仍是开放问题;其二,单图条件下骨链召回只有 0.390(点云 0.542),说明链生成强烈依赖卡片质量,级联误差会传播;其三,蒙皮是固定规则(0.4 脸宽绑定阈值、0.05 脸宽混合坡道,凭 200 个训练角色调出),与美术手工权重的运动相关性仅 0.77,复杂发型可能需要学习式蒙皮;其四,槽位上限 $N=192$/48 意味着超过 192 张卡的发型(训练集的 0.6%)被直接剔除,超复杂发型无法表达。

独立分析的弱点

独立分析的弱点及改进方向:(1)无纹理生成——风格化发卡的观感一半来自贴图(发丝走向、挑染、描边),当前输出需美术手动补贴图;可引入以卡片 UV(宽度 × 弧长坐标)为条件的贴图扩散模型,沿弧长自动生成发流纹理。(2)抠图单点故障——SAM 3 掩码里混入的道具会直接变成卡片(Fig. 23 的全部失败源于此);可在训练中注入"掩码含干扰物"的增广样本,或在解码后加"头发 vs 非头发"分类头过滤。(3)两阶段级联的误差传播——链 DiT 只见生成的卡片 token,单图时链召回从 0.542 跌到 0.390;可联合去噪卡片与链 token(共享注意力)或对卡片采样多候选再聚合。(4)头部坐标系依赖脸部包围盒——侧脸、遮挡脸部或夸张比例画风下 $k=W/w$ 估计会失稳($k$ 在训练集 5–95 分位已达 0.70–1.24 的跨度);可用学习式头部关键点或 3D 头先验替代。(5)固定槽位上限——直接丢弃超 192 卡的发型(0.6%),模型对超密发型欠拟合;可改用可变槽位或由粗到细分层生成。(6)朝向指标依赖 CD 最近邻匹配,多卡交叠处的匹配错误可能扭曲朝向误差的估计;可引入基于法向场或片段对应的更稳健匹配。每个弱点都有明确的可操作改进路径,这也是这类"配方型"工作的优点。

未来方向

作者提出的延伸方向:结论明确指出"每个图元一个 token、整集合一起生成"的配方可直接迁移到其他由美术定义图元构成的资产,例如由裁片缝制的服装(garment panels)或由笔画构成的矢量图(strokes)。基于本文成果还可延伸:(1)与物理仿真联合训练,让链 DiT 以"运动自然度"为优化信号,而不只是回归美术链的位置与刚度(当前运动相关性 0.702 仍有空间);(2)引入碰撞体描述,摆脱"无 collider"的简化模拟,处理长发与身体的穿插;(3)把写实 alpha 透贴卡片纳入同一集合表示,用一个模型覆盖风格化与写实头发(衔接 Strands2Cards、HairLRM 等工作);(4)文本、多视图或视频条件扩展,把发型生成嵌入全身角色流水线(与 StdGEN、Anime-Ready 互补);(5)把插值应用(对条件 token 做匈牙利匹配后线性混合,Fig. 9)发展成显式的发型语义编辑,例如"只改刘海、保留后发",探索条件 token 空间的语义方向;(6)面向游戏管线输出 LOD 化多分辨率卡集与 Unity/Unreal 直接可用的预制格式,减少美术最后一公里。

复现评估

复现条件相当友好。算力:全部模型在单张 NVIDIA RTX A6000(48GB)上训练——卡片 VAE 4 小时、点云模型约 10 小时、链 DiT 约 3 小时、图像模型(从点云模型初始化)约 27 小时,合计不到一天,属学术界可负担规模;推理 50 步 Euler、guidance 2,单发型约 1 秒。数据:基于 CHARM 公开发布的数据集(36,440 条 VRoid 训练发型、100 条测试发型及点云),链数据取自其中 32,599 条带链发型(共 438,672 条链);渲染管线(Blender 4.2 EEVEE + MToon 描边、8 视角 768px)、风格增广清单、改风格模型 Qwen-Image-Edit-2511 的筛选规则(头发 IoU≥0.85、角色 IoU≥0.9,池 21,336 张)均在附录完整给出。超参数极为详尽:模型尺寸、学习率、batch、EMA decay、CFG 概率、Fourier 频数、蒙皮阈值扫描(0.15/0.25/0.4/0.6 脸宽 × 0.01–0.3 坡道)全部可查。外部依赖为公开权重:冻结 DINOv3 ViT-L/16、Dora-VAE 1.1 编码器、SAM 3。项目页 hyzcluster.github.io/HairDeck 提供视频;作者与 CHARM 同组(CHARM 检查点已公开),若按惯例放出代码与权重,复现难度为中低——主要工作量在重跑 Blender 渲染与构建改风格图像池。

相似论文推荐