双体积扩展TRELLIS.2,零件三维生成Chamfer距离降四成

Kaininja: Extending Native 3D Generators to the Part Level

Ruihan Yu, Lian Fu, Muyao Niu, Zheng-hui Huang, Yu-Ju Tsai, Sho Kuno, Fengbo Lan, Yonghao Yu, Erwin Wu, Ming-Hsuan Yang, Kaipeng Zhang, Zhixiang Wang

cs.GR, cs.AI, cs.CV

2026-09-14

Alaya Lab用双体积O-Voxel把TRELLIS.2扩成零件级生成器KaiNinja,单图约24秒、无分割网络;相对最强级联基线整体Chamfer降40%,严格零件F-score升16%,整体保真还超过同数据微调的原骨干。

这篇在解决什么

TRELLIS.2这类原生三维生成器已经能从一张图吐出带材质的高保真网格,但产物是一整块焊死的物体。下游要的是零件:能单独改材质、绑骨骼、做仿真、搬到别的场景。事后分割再重生又慢又被分割误差卡住;把零件数写进网络,又会让计算随N涨,还要上限。

更硬的是表示本身。O-Voxel每个体素只存一张表面。两个零件贴在一起时,接触面几乎平行地掉进同一格,二次误差拟合会把两张皮焊成一张。分辨率再高也救不了。

方法

KaiNinja把PartPacker的双体积想法搬到TRELLIS.2自己的稀疏体素网格上。零件接触图被二染色,互不接触的零件打进同一体积,两路体积永远装得下任意N。零件就是每路连通分量,模型不用预测N,管线里没有mask、没有分割器。

级联两段分开继承预训练。布局流(粗占用)为每路复制一份30块Transformer,在第6、12、18、24、29块后插入零初始化的跨体积注意力。训练分三步:先各自拟合单路分布,再合并,再冻骨干只热身跨体积块,最后一起微调,并加一项重叠惩罚,逼两路不要抢同一格。细化流(细几何和外观)不改骨干权重,20块自注意力只看本路,10块看两路,靠零初始化的体积嵌入区分身份,热身嵌入后再全量微调。VAE冻结,材质管线原样复用。

数据来自四个来源共19132个物体:Articraft-10K(语言模型写程序搭出来的关节资产,零件标签天生无标注噪声)、PartNeXt、TRELLIS和Fusion360。这是作者所知第一次用agent写出来的三维资产训生成模型。推断时两路解码成网格,再做轻量去重和碎片贴回,仍然没有分割器。512分辨率下,单H100约24秒一个物体。

结果

在986个所有方法都能跑完的留出物体上,KaiNinja七项指标全第一。

方法CDW ↓[email protected][email protected]
Hunyuan3D-2.1 + X-Part0.03140.8140.597
TRELLIS.2@1024 + X-Part0.03500.7800.559
PartPacker0.03890.7490.492
KaiNinja0.01860.9190.692

相对最强级联,整体Chamfer低40%,严格零件F-score高约0.095(约16%相对提升)。生成-再-分割那条线要一个数量级的GPU秒,因为分割器占满四卡。同骨干、同语料、只微调成整物体的TRELLIS.2@512,[email protected]是0.830、失败率1.8%;KaiNinja是0.919和0.7%。引言里相对这次微调的Chamfer降幅是38%。零件级扩展没有牺牲整体,打包本身像是更好的整物体表示。

消融里,后处理的碎片贴回把零件数从14.06收到5.43(真值均值5.85);重叠惩罚主要降布局阶段的串体积,对最终网格数字几乎不动。

为什么重要

想在现有原生三维生成器上要零件,不必再挂一个分割器和N次前向。代价是常数级的双流,N没有上限,开放表面和PBR都能留下。对做游戏、CAD、绑定的人,单图24秒、零件可拆,已经接近能用。意外收获是:把物体拆进两个体积再生成,整物体几何比直接微调更好。这条表示结论比又一个SOTA数字更值得跟。

局限与存疑

双体积继承自PartPacker。接触图不是二分图时,必须先合并零件才能二染色,咬合密的物体会被欠分割。三种失败反复出现:几乎整物体塞进一路、一路塌成空(测试集1000个里9个)、两路生成近乎重合的整物体。薄壳有时逃过去重。分解随随机种子变。Stage-2解码器会丢面,发布管线仍要几何清理。和PartPacker的对比还混着不同训练集,不能单独归功于O-Voxel。显式控制零件粒度和学习重新装配,都还没做。

术语

原文与代码

相关论文

全部论文解读