KaiNinja:将原生3D生成器扩展至部件级别 Kaininja: Extending Native 3D Generators to the Part Level
用双体积O-Voxel表示把TRELLIS.2原地扩展成无掩码、单次前向的部件级图生3D模型
前置知识
O-Voxel 与对偶轮廓(Dual Contouring)
O-Voxel 是 TRELLIS.2 使用的稀疏体素几何表示:每个激活体素存储一个对偶顶点(由二次误差函数从该体素的表面穿越点解出)以及每条轴边是否被表面穿过的标志,再用对偶轮廓算法把相邻体素的对偶顶点连成网格。它不拟合全局 SDF 或占据场,因此能直接表达开放、非流形和封闭曲面,并同时携带 UV、材质与 PBR 属性。
论文的核心论证建立在『每个体素只能存一张曲面片』这一 O-Voxel 固有限制上:两部件贴合时两片近平行表面落入同一体素必然塌缩成一个顶点,单一体积在任意分辨率下都无法表达部件接触界面。理解这一点才能读懂为何必须先改表示。
整流流与流匹配(Rectified Flow / Flow Matching)
整流流是一类生成模型训练目标:把数据加噪到高斯分布,网络学习预测从噪声指向数据的速度场 $v_\theta(x_t,t)$,采样时沿该场做 ODE 积分即可生成,相比扩散模型路径更直、步数更少。TRELLIS.2 的两个级联阶段(布局流与精修流)都是整流流,KaiNinja 的训练目标与不相交惩罚也都叠加在流匹配损失上。
两个阶段的四步训练配方(fit、merge、warm up、fine-tune)和不相交惩罚项 $\mathcal{L}_{ov}$ 都定义在流匹配损失之上,不熟悉这一目标就无法理解训练日程的设计动机。
接触图二着色与双体积打包
把每个部件视为图中节点,两个部件接触(存在某个体素同时承载两者的面片)则连边,并按共享体素数加权。若图是二分图,两种颜色恰好对应两个体积,同体积内部件互不接触;若含奇圈,则贪心收缩权重最大的边直至可二着色。这是 PartPacker 提出的启发式(其算法1),保证接触的部件被分进不同体积。
双体积打包是全文表示层的核心创新:部件分解、连通域提取、训练数据构造全部依赖这一着色过程,附录B还专门讨论其理论极限。
两级结构化级联(布局流 + 精修流)
TRELLIS.2 用两个整流流级联生成:第一级在 16³ 稀疏结构潜空间去噪,冻结的解码器把它扩展成 64³ 占据网格,决定『哪里有表面』;第二级在 32 通道、分辨率 32 的结构化潜空间去噪,决定『表面长什么样』并携带外观属性。两级都用 DINOv3 图像 token 通过交叉注意力做条件。
KaiNinja 对两个阶段采取了完全不同的继承策略(每流独立权重 vs 冻结骨干+注意力分域),理解级联中两级的分工与潜变量分组差异是读懂架构设计的前提。
零初始化注意力与先验继承
新插入的跨体积注意力块把权重初始化为零,使训练起点等价于两个各自适配过的独立去噪器,联合结构从零学起而不破坏已拟合的先验。配合冻结预热(只训练新模块)再到全量微调,每一步都让权重移动『任务所需的最小距离』。
这是把整物体预训练先验迁移到双流部件生成的关键机制,也是『微调后整物体质量反而大幅提升』这一意外发现的来源。
匈牙利匹配与 F-score 评测协议
预测部件与真值部件按表面标签的 IoU 以 $1-\mathrm{IoU}$ 为代价做一对一匈牙利匹配,漏分与过分割都会被惩罚;在匹配对上报告 mIoU、Chamfer 距离(CD)和阈值 0.1/0.05 下的 F-score,分别对整物体(W)和部件(P)计算。阈值 0.05 相对 0.016 的体素尺寸仅宽三个体素,考察细粒度几何与边界质量。
论文的主要结论(严格阈值下部件 F-score 提升约16%、整物体 CD 降低40%)全部建立在这套指标上,需理解各指标含义才能公平比较六种方法。
研究动机
原生3D生成器(TRELLIS、TRELLIS.2、Hunyuan3D)能从单张图像直接去噪出高保真网格,但输出都是一个融合的整体物体,而下游的编辑、绑骨、仿真都需要部件级资产。现有补法各有硬伤:先生成再分割的级联(如 TRELLIS.2@1024 + X-Part + P3-SAM)端到端比第二类方法慢一个数量级——X-Part 的分割器要占满4张GPU、折算 469 GPU 秒,且部件质量被分割精度封顶,掩码错了生成器无法纠正;OmniPart 依赖 2D 掩码抬升出的包围盒布局,把部件结构固定在 3D 推理之前;AutoPartGen 自回归地逐件生成,N 个部件要过 N 次网络,实测成本约为本文的3倍;PAct 为每件分配一个潜体积联合去噪,计算随 N 翻倍且 N 有固定上限。更根本的障碍在表示层:TRELLIS.2 的 O-Voxel 每体素只存一张曲面片,两部件贴合处两片近平行表面落入同一体素时二次误差函数只拟合出一个顶点,两片表面必然塌缩——单一体积无论加到多高分辨率都表达不了部件接触界面。
本文的目标是本文目标是从单张图像直接生成部件分离的资产:每个部件都是独立、自包含的子网格,可单独移动、重贴图、绑骨,且几何全程不使用 2D 掩码、3D 分割器或逐物体优化。同时要求继承 TRELLIS.2 的速度与质量——单张 H100 上 512 分辨率约 24 秒生成一个物体;部件数量不设上限、无需预测;开放曲面、UV、材质与 PBR 属性全部保留。作者还希望为『如何把整物体预训练先验迁移到部件级任务』给出一条通用配方:从预训练权重出发,让每一步训练都把权重移动任务所需的最小距离。一个超出预期的附加目标是:不仅不损失整物体保真度,反而要优于在同语料上微调的同一骨干网络。
与已有工作不同的是,本文的独特切入点是『先改表示、再改网络、最后改训练』的三层递进。作者没有像既有工作那样在表示之上叠加分割器或包围盒,而是给出表示级论证:单一体积在容量上就无法容纳部件界面,最小修复是把部件按接触图二着色打包成两个交错的 O-Voxel 体积,让接触的部件永不共体积——这一步同时消灭了部件数预测、逐件多次前向和表面塌缩三个问题。与最接近的 PartPacker 不同,打包不是架在 vecset/SDF 潜变量上,而是架在骨干自己正在去噪的稀疏体素网格上,从而保住开放曲面与 PBR 属性。网络层对级联两阶段因潜变量分组方式不同而区别对待:布局流用每流独立权重加零初始化跨体积注意力,精修流完全不动预训练骨干、仅用注意力作用域分出双流。数据层则首次把 LLM 智能体编写的3D资产(Articraft-10K)用作生成模型训练语料,部件标签来自编写程序本身而非人工标注,天然零标注噪声。
核心方法
直觉上,KaiNinja 把『生成部件』变成『生成两个互不接触的体积』:只要保证同一体积内部件不接触,每个体积解码后用连通域分析就能免费得到部件,无需任何分割网络。技术上,它在 TRELLIS.2 的 O-Voxel 稀疏体素网格上做双体积打包:对部件接触图做贪心奇圈收缩直到可二着色,A、B 两个颜色类各占一个体积流。随后把级联扩展为双流双阶段——第一级布局流用两份各自微调过的预训练 transformer 副本(各30块、宽1536、12头)分别去噪两流 16³ 结构潜变量,在深度 {6,12,18,24,29} 处插入零初始化的跨体积全局注意力块让两流协商部件边界;第二级精修流原封不动加载预训练权重,仅通过注意力作用域划分双流(20块各自注意、深度 {2,5,...,29} 共10块全局注意,配零初始化体积嵌入)。DINOv3 ViT-L/16 在 512×512 读取图像并经交叉注意力条件两级,推理约 24 秒/物体(单张 H100),最后由轻量后处理把两个体积组装成分离的部件网格。
核心创新是双体积 O-Voxel 表示与『最小移动』继承配方的结合。表示层面:一对打包体积一次性解决三个问题——部件是各体积的连通域,模型从不预测部件数 N、不需分割器;任意多个部件装进固定双流,骨干只跑一次且 N 无上限;接触面永不共享体素,两片表面都被保留。这区别于 PartPacker 把同样的打包思想架在 vecset 潜变量并解码为 SDF 场(需水密预处理、丢失材质),也区别于 X-Part/OmniPart 把边界决策外包给分割器或 2D 掩码。继承层面:论文论证预训练先验与任务之间有三道分布鸿沟(没见过部件界面、没见过半物体加暴露接触面、双流需联合决策),因此布局流按 fit(各自微调两份副本)→ merge(零初始化跨体积块使起点等价于两个独立去噪器)→ 冻结预热 → 联合微调四步走,并在流匹配损失上加入不相交惩罚 $\mathcal{L}_{ov}=\mathbb{E}[o_A \odot o_B]$($\lambda_{ov}=5$)抑制两流重复占据同一体素;精修流因任务接近预训练本身而完全冻结骨干,只调注意力作用域与体积嵌入。
方法步骤详情
流程六步。(1) 数据:19,132 个物体来自四源(articraft 8,968、partnext 6,358、trellis 1,931、fusion360 1,875),保留 2–32 部件、剔除深度互穿与背景板,留出 1000 个测试物体。(2) 打包:带纹理网格归一化后直接体素化为 O-Voxel(不重网格化、不水密化),某体素同时承载两部件面片则连触边并按共享体素数加权,贪心收缩奇圈后 BFS 二着色。(3) 布局流:两份预训练 transformer 副本(30 块、宽 1536)分别在 A/B 体积潜变量上 fit,merge 时在深度 {6,12,18,24,29} 插入零初始化跨体积注意力;冻结预热 10K 步(lr $10^{-4}$)只训新块,再联合微调 100K 步(lr $5\times10^{-5}$),每步解码软占据加 $\mathcal{L}_{ov}$($\lambda_{ov}=5$)。(4) 精修流:加载发布权重不动,按注意力作用域分双流(20 块各自注意、10 块全局+零初始化体积嵌入),预热 30K 步后微调 100K 步(lr $3\times10^{-5}$)。(5) 推理:DINOv3 编码 512×512 图像条件两级,CFG $p_{uncond}=0.1$,单张 H100 约 24 秒。(6) 后处理:级联间合并重复占据(重叠过半且嵌入至少 3 体素则并入较大体积),每体积解码取连通域为部件,2 细体素内合并、面积小于 0.5% 的碎片挂到最近部件。
技术新颖性
新颖性有四层。其一,这是对 TRELLIS.2 这一最强原生3D基础模型的首次部件级原位扩展:与所有『生成后再分割』(X-Part 级联)或『先规划掩码/包围盒』(OmniPart)的范式不同,部件边界由生成器自身在一次前向中决定,任何环节都不出现掩码与分割器。其二,表示级论证有原创性:论文证明 O-Voxel『一体素一片』使单体积无法表达部件界面,并援引 Tietze 与 Besicovitch 的结果说明 3D 接触图的色数无界、任何固定体积数在最坏情况都不安全(附录B),从而把双体积定位为带已知极限的最小修复而非完美方案。其三,继承配方因级联两阶段潜变量分组不同而差异化设计——布局流走 fit/merge/warmup/fine-tune、精修流冻结骨干只调注意力作用域——消融显示跳过预热或逐体积拟合都会破坏继承。其四,首次用智能体编写的3D资产训练生成模型,部件监督来自编写程序、零标注噪声;意外收获是双体积打包本身比整物体体素化更好地表示同一物体(微调基线 CD 0.0300 对本文 0.0186)。
实验结果
986 个四源留出测试集上(表1),KaiNinja 七项指标全部第一:整物体 CD 0.0186(比最强基线 Hunyuan3D-2.1+X-Part 的 0.0314 低 40%)、$F_1^{0.05W}$ 0.919、部件 mIoU 0.521、$F_1^{0.05P}$ 0.692(较基线 0.597 提升约 16%,较 PartPacker 的 0.492 高 0.20),且逐源分解(表3)四个来源全部第一。成本上(图4)单张 H100 约 24 秒/物体:比花 3 倍预算的 AutoPartGen 和折算 469 GPU 秒的 X-Part 级联快一个数量级。表2 揭示意外发现:同骨干同语料微调仅 0.830(失败率 1.8%),KaiNinja 达 0.919、失败率 0.7%,说明双体积打包本身是更好的整物体表示。域外泛化(表4,95 个 Sketchfab/GitHub 物体)$F_1^{0.05W}$ 0.901 领先 0.075;外部 HY3D-Bench(表5)整物体三项第一($F_1^{0.05W}$ 0.724),但部件 mIoU 0.356 仅列第四,源于分割粒度细于基准标注。消融:三体积版(表6)部件 $F_1^{0.05P}$ 0.795 略优,却 13/1000 失败、7.7% 物体留空体积,故选双体积;$\mathcal{L}_{ov}$ 把布局流中位跨体积重叠 0.229 降到 0.184(表7),最终指标差异小于 0.006;relabel 后处理把平均部件数 14.06 修正到 5.43(真值 5.85)。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 部件级图生3D(986 个四源留出测试集) | 整物体 Chamfer 距离 CD_W ↓ | 0.0186 | Hunyuan3D-2.1 + X-Part:0.0314 | 降低 40% |
| 部件级图生3D(同上) | 部件 F-score @0.05(F1_0.05P)↑ | 0.692 | Hunyuan3D-2.1 + X-Part:0.597(PartPacker 仅 0.492) | +0.095(约16%) |
| 整物体生成(与同语料微调的整物体模型对比) | F1_0.05W ↑ / 失败率 ↓ | 0.919 / 0.7% | TRELLIS.2@512 同语料微调:0.830 / 1.8% | +0.089,失败率降至 0.7% |
| 域外泛化(95 个 Sketchfab/GitHub 资产) | F1_0.05W ↑ | 0.901 | 最优基线(两个 X-Part 级联):0.826 | +0.075 |
| 外部基准 HY3D-Bench(200 个标注物体) | F1_0.05W ↑ | 0.724 | Hunyuan3D-2.1 + X-Part:0.699 | +2.6 个点(但部件 mIoU 0.356 落后于该基线 0.412,因分割粒度更细) |
| 生成成本(986 物体,H100 实测端到端) | GPU 秒/物体 ↓ | 约 24 秒/物体(512 分辨率) | TRELLIS.2@1024 + X-Part:约 469 GPU 秒(分割器占满 4 GPU) | 快约一个数量级 |
局限与改进
作者承认的局限:继承 PartPacker 的双体积假设,接触图远离二分时必须贪心合并部件,对部件紧密互锁的物体欠分割;部件质量受语料逐件标注质量约束;生成是随机的,分解随种子变化。三种典型失败模式(图10):布局流把几乎整个物体塞进一个体积导致贴合部件被融合(沙发案例);完全塌缩到单体积(1000 测试物体中 9 例),几何正确但无法分离;双体积都生成整个物体产生重影(薄壳案例 63% 表面重合),薄壳有时逃过占据合并步骤,$\mathcal{L}_{ov}$ 只缓解不根治。Stage-2 解码器偶丢面片留小孔,发布管线仍需轻量几何清理。我的补充观察:HY3D-Bench 上部件粒度失配(mIoU 0.356 仅列第四)暴露了评测对分解粒度约定的敏感性;本文的匈牙利匹配协议是自建的(OmniPart 论文未说明匹配方式、无对比方法发布部件指标代码),跨论文可比性有限;与 PartPacker 的表示对比混入语料差异,未能单独隔离表示因素;部件粒度不可控(无法指定部件数);双流布局流的训练算力门槛对个人研究者不友好。
独立分析的弱点
独立分析的弱点及改进方向。(1) 双体积是硬约束:接触图色数无界(附录B),密集互锁物体被迫合并部件而欠分割,改进方向是把打包本身可学习——用图神经网络做软着色或超图划分,或按物体复杂度自适应选择体积数 K 并在推理时动态增删流。(2) 双流可能塌缩到一体或双双复制整物体(图10 中、下两种失败),现有 $\mathcal{L}_{ov}$ 只作用于布局流且对最终指标几乎无差(表7 差异<0.006),改进方向是更强的多样性正则(如最优传输式的体积平衡约束)、推理期的占据冲突引导或双流解耦采样。(3) 部件粒度不可控且与基准标注约定冲突(HY3D-Bench 上 mIoU 0.356),改进方向是把部件数或粒度作为条件输入(类似文本条件化的分解提示),并设计对粒度不敏感的部件级 precision/recall 指标。(4) 只输出分离部件、不学重装与关节,而训练语料 Articraft 自带物理关节信息却未利用,改进方向是联合预测部件间关节与可动性,打通到物理仿真。(5) 细壳重复占据的失败源于占据级合并是启发式阈值规则,可改为可学习的实例一致性头在解码前消解冲突。
未来方向
作者提出的方向:打包超过两个体积(三体积消融已显示部件 $F_1^{0.05P}$ 高 1.6 点、$C_D^P$ 低 0.0067 但稳健性差:13/1000 失败、7.7% 空体积),显式控制部件数量与粒度,学习重新组装分离的部件(对应附录B『断开接触+预测位移再重组』的路线),以及把同一继承配方迁移到未来的整物体骨干。基于本文成果可延伸:其一,利用 Articraft 类智能体语料自带的关节标注,把部件生成扩展到可动资产生成,让输出直接进入物理仿真;其二,把双体积打包与 UV/PBR 属性结合,做部件级材质编辑与重贴图的受控生成;其三,粒度条件化——训练一个预测合适部件数的规划器,或允许用户交互式合并/拆分后微调,解决 HY3D-Bench 暴露的约定失配;其四,把 fit→merge→warm up→fine-tune 的先验继承配方抽象为通用框架,推广到视频、场景级组合生成等需要改表示的迁移任务;其五,建立粒度归一化的部件基准,让细分割与粗分割方法在同一标尺下比较。
复现评估
开源良好:代码在 github.com/AlayaLab/KaiNinja 发布,项目页 alaya-lab.github.io/KaiNinja;附录A完整列出超参(宽 1536、30 块、12 头、RoPE、bf16、AdamW $\beta=(0.9,0.95)$、权重衰减 0.01、EMA 0.9999、梯度裁剪 1.0、logit-normal 时间表、$p_{uncond}=0.1$、批 32)及两阶段训练日程(布局流预热 10K 步+联合微调 100K 步,精修流预热 30K 步+微调 100K 步,$\lambda_{ov}=5$)。四个训练语料(Articraft-10K、PartNext、TRELLIS、fusion360)均公开,打包管线有算法级描述。难点在算力:需 H100 级 GPU 训练两个 30 块/宽 1536 的 transformer 流(双流权重翻倍),共约 24 万步、批 32;O-Voxel 体素化、占据过滤与渲染条件生成等数据工程量也不小。推理门槛低得多:单张 H100 约 24 秒/物体,直接复用 TRELLIS.2 发布的 VAE 与材质管线。评测需自行实现匈牙利匹配协议——作者明确指出没有对比方法发布部件指标代码。
论文图表
展示由单张 RGB 图像生成的部件分离网格:每个部件是独立、自包含的子网格,可单独移动、重贴图或绑骨;镜面反射用不同颜色区分部件。全程无 2D 掩码、无部件分割器、几何管线无逐物体优化,材质由 TRELLIS.2 添加用于可视化。
一图定义任务与最终效果:读者第一时间看到『单图进、部件级资产出』的产品形态,是理解全文动机的最快入口。
三种失败模式及各体积单独展示:上排欠分割——沙发主体进体积 A、只有四脚进 B,座垫扶手等贴合件融为一件;中排单体积塌缩——体积 B 无任何表面,桌子几何正确但整体输出(1000 测试物体中 9 例);下排体积复制——双流都生成整个箱子,各体积 63% 表面在两个细体素内重合,薄壳逃过占据合并步骤。
作者对失败模式的诚实剖析,直接对应『继承的极限』这一核心论断,是评估方法可靠性的必读材料。
整物体参照表:TRELLIS、TRELLIS.2@512/@1024、同语料微调版、Hunyuan3D-2.1 与 KaiNinja 的整物体指标及失败率(CD_W>0.1 占比)。微调版 0.830/1.8%,KaiNinja 0.919/0.7%,零样本参照 0.781–0.807/3.9–6.8%。
支撑『打包是更好的整物体表示』这一意外发现:分离出语料贡献(微调行)与扩展贡献(KaiNinja 行)。