TRELLIS - 深度分析报告

TRELLIS - 深度分析报告

技术背景与动机

行业背景

3D 内容创建(3D Content Creation)一直是计算机图形学和计算机视觉领域的核心挑战。近年来,2D 图像生成(如 Stable Diffusion、DALL-E)已经取得了突破性进展,但 3D 资产生成远未达到同等水平。核心困难在于:

  1. 表示碎片化:3D 数据包含多种表示形式——Mesh、点云、Radiance Field、3D Gaussian 等,每种格式适用于特定场景,难以用统一范式建模
  2. 质量瓶颈:基于 Mesh 的方法纹理细节不足;基于 Gaussian/NeRF 的方法外观出色但几何提取困难
  3. 2D 辅助方法的局限:Score Distillation(如 DreamFusion)和多视角扩散模型存在多视角不一致性,几何质量受限
  4. 数据规模限制:高质量 3D 资产数据集远少于 2D 图像数据集

创立动机

TRELLIS 的核心目标是构建一个统一的 3D 潜在空间(Unified 3D Latent Space),使 3D 生成能够像 2D Latent Diffusion 一样,在一个紧凑的表示空间中进行高质量、多格式、可编辑的生成。具体解决:

  • 统一 3D 表示问题,消除不同格式间的转换障碍
  • 提升原生 3D 生成质量,超越 2D 辅助方法
  • 实现灵活的 3D 编辑能力(之前模型不具备)
  • 开源完整的代码、模型和数据,推动社区发展

发展历程

2024-12  TRELLIS v1 发布
         - 论文 arXiv:2412.01506
         - 开源推理代码和 TRELLIS-image-large 模型
         - 500K 数据集发布

2025-03  TRELLIS v1 完善
         - 发布训练代码
         - 发布 TRELLIS-text 系列模型(342M/1.1B/2.0B)
         - 发布资产变体生成功能

2025-06  CVPR 2025 Spotlight 论文

2025-11  TRELLIS.2 发布
         - 4B 参数模型
         - O-Voxel 表示(field-free sparse voxel)
         - 支持 1536³ 分辨率 PBR 纹理
         - SC-VAE(Sparse Compression VAE)16× 空间压缩

核心原理

设计哲学

TRELLIS 的设计遵循三大核心理念:

  1. 统一潜在空间(Unified Latent Space):借鉴 2D Latent Diffusion 的成功经验,在 3D 领域建立统一的 SLAT(Structured LATent)表示,使生成过程与最终输出格式解耦
  2. 结构与细节分离(Structure-Appearance Decoupling):两阶段生成——先生成稀疏结构(几何骨架),再生成局部潜在向量(纹理细节),这天然支持结构保持的编辑操作
  3. Fitting-free 训练:无需对 3D 资产进行耗时的 NeRF/Gaussian 拟合,直接利用 DINOv2 视觉特征提取实现高效编码

设计取舍: - 两阶段生成 vs 端到端:牺牲了一定效率,换取了编辑能力和生成质量 [置信度:高] - 64³ 稀疏网格 vs 更高分辨率:在质量和效率间取得平衡,平均仅 20K 活跃体素 [置信度:高] - Rectified Flow vs DDPM:更简洁的训练目标,在实验中表现优于标准扩散 [置信度:高]

核心算法/机制

SLAT(Structured LATent)表示

SLAT 是 TRELLIS 的核心创新。对于一个 3D 资产 O,其 SLAT 表示定义为:

z = {(z_i, p_i)}_{i=1}^{L}

其中: - p_i 是活跃体素(Active Voxel)在 64³ 网格中的位置索引 - z_i 是绑定到该体素的局部潜在向量(8 维) - L 是活跃体素总数(平均约 20K,远小于 64³=262K)

关键特性: - 活跃体素 p_i 捕捉粗粒度几何结构 - 局部潜在 z_i 捕捉细粒度外观和形状信息 - 稀疏性使得 64³ 的高分辨率建模成为可能

编码流程

3D 资产 O
    ↓ 150 个视角球面采样渲染
多视角图像
    ↓ DINOv2 特征提取(vitl14_reg)[置信度:中] <!-- reviewed: 论文确认使用 DINOv2,具体变体 vitl14_reg 来自知乎源码分析,论文未明确指定 -->
特征图 [1024, 37, 37]
    ↓ 反投影到体素网格
体素化特征 f = {(f_i, p_i)}, f_i ∈ R^{1024}
    ↓ 稀疏 Transformer VAE 编码器
SLAT z = {(z_i, p_i)}, z_i ∈ R^8

解码流程(三种输出格式)

SLAT 可通过不同解码器解码为多种 3D 表示:

  1. 3D Gaussians(𝓓_GS):每个体素预测 K=32 个 Gaussian(位置偏移、颜色、尺度、不透明度、旋转),总计 448 维输出/体素
  2. Radiance Fields(𝓓_RF):基于 CP 分解(CP-decomposition),每个体素预测 4 个正交向量,构造 8³×4 的局部辐射场
  3. Meshes(𝓓_M):基于 FlexiCubes,每个体素预测 45 个灵活参数 + 8 顶点 SDF 值,通过 0-等值面提取 Mesh

两阶段生成流程

文本/图像提示
    ↓
┌─── Stage 1: 稀疏结构生成 ───┐
│  Rectified Flow Transformer  │
│  (DiT 架构)                   │
│  输入: 噪声网格 → 输出: {p_i} │
└──────────────────────────────┘
    ↓
┌─── Stage 2: 潜在向量生成 ───┐
│  Rectified Flow Transformer  │
│  (稀疏 DiT + Sparse Conv)    │
│  输入: {p_i} + 噪声 → {z_i}  │
└──────────────────────────────┘
    ↓
选择解码器(GS / RF / Mesh)
    ↓
高质量 3D 资产

数据流/执行流程

完整的 Image-to-3D 推理流程:

输入图像 (PIL Image)
    ↓ TrellisImageTo3DPipeline.run()
    ↓ 图像预处理 + DINOv2 特征提取
图像条件特征 [1, 1374, 1024]
    ↓
Stage 1: 稀疏结构生成
    ↓ SparseStructureFlowModel (24层 DiT, 1024 dim)
    ↓ CFG strength=3, steps=50
稀疏结构 {p_i} (~20K 活跃体素)
    ↓
Stage 2: 潜在向量生成
    ↓ SLatFlowModel (24层 Sparse DiT + Sparse Conv 下/上采样)
    ↓ 稀疏卷积 64³ → 32³ → 注意力 → 32³ → 64³
SLAT z = {(z_i, p_i)}
    ↓ 并行解码
├── Gaussian 解码 → 3D Gaussians
├── RF 解码 → Radiance Field
└── Mesh 解码 → Mesh
    ↓ 后处理
GLB 导出(GS 烘焙纹理 + Mesh 几何)

架构设计

整体架构

TRELLIS 系统由四个核心层次构成:

┌─────────────────────────────────────────────┐
│              推理管线 (Pipelines)              │
│  TrellisImageTo3DPipeline / TrellisTextTo3D  │
├─────────────────────────────────────────────┤
│              生成模型 (Models)                 │
│  SparseStructureFlow  │  SLatFlowModel       │
├─────────────┬───────────────────────────────┤
│  VAE 编解码  │          表示层                │
│  Encoder     │  Gaussian │ RF │ Mesh Decoder │
├─────────────┴───────────────────────────────┤
│             基础设施 (Modules)                 │
│  SparseTensor │ SparseConv │ Window Attention │
│  FlashAttention │ xFormers │ FlexiCubes       │
└─────────────────────────────────────────────┘

核心模块

  • SparseTensor - 统一的稀疏张量抽象,封装特征 feats [N, C] 和坐标 coords [N, 4](batch_id + xyz),兼容 spconv 和 torchsparse 后端,实现了完整的运算符重载
  • SparseStructureFlowModel - 24 层 DiT Transformer(1024 dim),处理 16³ 的密集潜在网格,使用 AdaLN-Zero 注入时间步 + Cross-Attention 注入图像/文本条件
  • SLatFlowModel - 24 层稀疏 DiT + 稀疏卷积下/上采样(64³↔32³),处理变长稀疏体素序列,使用 SparseConv3d 进行局部信息聚合
  • SLatVAE (Encoder + Decoders) - 12 层 Sparse Transformer(768 dim),使用 3D 滑窗注意力(8³ 窗口,shift=(4,4,4)),支持 Gaussian/RF/Mesh 三种解码输出
  • SparseStructureVAE - 基于 3D 卷积的 U-Net 结构(64³→32³→16³),使用 3D PixelShuffle 上采样,Dice Loss 处理正负样本不平衡

扩展机制

  1. 新输出格式:冻结编码器 𝓔,仅训练新的解码器 𝓓_new,无需重新训练整个 VAE
  2. 新条件模态:通过替换 Cross-Attention 的 Key/Value 来源(CLIP 文本特征 → DINOv2 图像特征),支持不同输入模态
  3. 模型缩放:提供了 342M → 1.1B → 2.0B → 4B 的模型缩放路径,通过调整 Transformer 层数和维度实现

关键概念详解

SLAT(Structured LATent)

  • 定义: 一种统一的 3D 潜在表示,在稀疏 3D 网格的活跃体素上定义局部潜在向量
  • 作用: 作为编码、生成和解码的中间桥梁,将 3D 表示问题转化为稀疏序列生成问题
  • 使用场景: 所有 3D 资产的编码、生成、编辑、格式转换
  • 代码示例(基于官方代码 TRELLIS v1):
# 从 HuggingFace 加载模型
from trellis.pipelines import TrellisImageTo3DPipeline
pipeline = TrellisImageTo3DPipeline.from_pretrained("microsoft/TRELLIS-image-large")
pipeline.cuda()

# 运行生成(内部包含两阶段 SLAT 生成 + 解码)
outputs = pipeline.run(
    image,
    seed=1,
    # sparse_structure_sampler_params={"steps": 12, "cfg_strength": 7.5},
    # slat_sampler_params={"steps": 12, "cfg_strength": 3},
)

# outputs 包含三种格式:
# outputs['gaussian']      - 3D Gaussians(最佳外观)
# outputs['radiance_field'] - Radiance Fields
# outputs['mesh']          - Meshes(最佳几何)

O-Voxel(TRELLIS.2 新概念)

  • 定义: Omni-Voxel 是一种"field-free"的稀疏体素结构,无需等值面场即可编码几何和外观
  • 作用: 突破传统 iso-surface 场的限制,处理开放表面、非流形几何和内部封闭结构
  • 使用场景: TRELLIS.2 的核心表示,支持任意拓扑的 3D 资产
  • 与 SLAT 的区别: O-Voxel 使用 Flexible Dual Grids 表示几何(f_shape),支持完整 PBR 属性(f_mat: Base Color + Metallic + Roughness + Alpha)

Rectified Flow(矫正流)

  • 定义: 一种生成建模方法,使用线性插值前向过程 x(t) = (1-t)x_0 + tε,通过学习时间相关向量场实现反向生成
  • 作用: 替代传统 DDPM 扩散模型,训练目标更简洁,实验中表现优于标准扩散
  • 使用场景: TRELLIS 的两个阶段(稀疏结构生成 + 潜在向量生成)均使用 Rectified Flow

稀疏注意力机制

  • 定义: 针对 3D 稀疏数据设计的注意力计算方案,支持全注意力(full)和滑窗注意力(windowed/swin)两种模式
  • 作用: 处理变长体素序列的批处理计算,显存效率高
  • 实现细节: 滑窗大小 8³,交替使用 (0,0,0) 和 (4,4,4) 的偏移确保层间重叠;使用 xformers/FlashAttention 后端的 BlockDiagonalMask 实现批处理

同类技术横向对比

维度 TRELLIS/TRELLIS.2 (微软) Hunyuan3D 2.5 (腾讯) Tripo AI (VAST) Meshy
核心理念 统一 SLAT 潜在空间 + 两阶段生成 3D 扩散模型 + 纹理扩散分离 商业化 3D 生成平台,端到端服务 商业化 3D 生成平台,API 驱动
开源状态 完全开源(MIT) 完全开源 部分开源,核心商业闭源 闭源,仅 API 服务
模型参数 1.2B~4B 待验证 闭源 闭源
输入方式 图像(TRELLIS.2 仅图像) 文本 + 图像 + 多视角 文本 + 图像 + 多视角 文本 + 图像
生成速度 1~3 分钟(512³ 约 3 秒 on H100) 2~6 分钟 数十秒(云端集群) 1~2 分钟(云端)
输出分辨率 512³~1536³ 待验证 高质量 中等质量
PBR 纹理 始终包含(BaseColor/Metallic/Roughness/Alpha) 需额外步骤 支持 支持
多边形控制 自动 40K~1.5M 可调 可调 有限控制
GitHub Stars 12K+5K (2026-04) 活跃 社区版较少 不适用(闭源)
License MIT 待验证 商业许可 商业许可
生态丰富度 社区衍生:Window_Trellis, TostUI, Docker 部署 社区活跃 商业生态完善 API 集成为主
适用场景 本地部署、研究、批量原型 生产级高质量资产 快速商业生产 快速原型、API 集成
生产就绪度 研究/原型级(Linux only, 24GB+ VRAM) 研究/原型级 商业级(SaaS) 商业级(SaaS/API)

适用场景分析

最佳场景

  1. 3D 资产快速原型 - 从单张图像快速生成 3D 模型,适合游戏开发中的概念验证和迭代设计。1-3 分钟的生成速度和 10 credits 的低成本使得批量测试成为可能。

  2. 学术研究和教育 - 完整的开源生态(代码+模型+训练代码+数据集),代码规范整洁,涵盖现代 3D 生成的主要技术栈(DiT、稀疏卷积、Rectified Flow、FlexiCubes),极具学习价值。

  3. 本地部署和隐私保护 - MIT 许可证,支持完全本地化运行,适合对数据隐私有要求的场景(如企业内部 3D 资产创建)。

  4. 复杂拓扑 3D 资产 - O-Voxel 表示擅长处理开放表面、非流形几何、内部封闭结构等复杂拓扑,在衣物、树叶、机械结构等资产上表现突出。

  5. 多格式输出需求 - 同一生成结果可输出 Gaussian(外观最佳)、Radiance Field、Mesh(几何最佳),满足不同下游需求。

不适用场景

  1. 文本直接到 3D - TRELLIS.2 仅支持图像输入,如果需要从文本描述直接生成 3D 资产,需先使用文本到图像模型生成参考图。替代方案:Hunyuan3D(原生支持文本输入)。

  2. 精确多边形控制 - TRELLIS 不支持精确指定多边形数量,游戏开发中需要特定 LOD(Level of Detail)的场景受限。替代方案:Hunyuan3D(支持 40K~1.5M 面数调节)。

  3. Windows 环境本地部署 - 官方仅支持 Linux,Windows 需依赖社区方案。替代方案:使用 Docker 容器或云服务。

优缺点深度分析

优势

  1. 统一的多格式表示 - SLAT 表示可解码为 Gaussian、NeRF、Mesh 三种格式,无需训练多个模型。同一潜在空间满足不同下游需求,极大提高了通用性。

  2. 卓越的生成质量 - 在 Toys4k 基准测试中,所有定量指标(FD、KD、CLIP Score)显著超越现有方法。用户研究(100+ 参与者,2700+ 评估)显示 TRELLIS 被强烈偏好。CVPR 2025 Spotlight 论文,被引 548+ 次(截至 2026-04)。

  3. 创新的编辑能力 - 结构与外观的分离天然支持两种免微调编辑:资产变体生成(保持结构,改变外观)和局部区域编辑(移除/添加/替换局部区域)。此前 3D 生成模型不具备此能力。

  4. 完全开源 - 代码、模型权重、训练代码、500K 数据集全部开源,MIT 许可证。社区生态活跃(12K Stars,衍生 Windows 版本和 Docker UI)。

  5. 高效的稀疏表示 - 64³ 网格中平均仅 20K 活跃体素,相比密集表示节省 90%+ 的计算量。SparseTensor 抽象层设计精良,代码极具参考价值。

劣势

  1. 硬件门槛高 - TRELLIS.2 需要 24GB+ 显存的 NVIDIA GPU(A100/H100),普通消费级 GPU(如 RTX 4090 24GB)勉强满足最低要求,限制了个人用户的可及性。

  2. 两阶段生成效率 - 相比端到端方法,两阶段流水线需要两次独立的去噪过程。论文本身也承认这一效率劣势。

  3. 光照烘焙问题 - 原版 TRELLIS 的图像到 3D 模型未分离光照效果,生成的资产中包含参考图像的阴影和高光(baked-in shading)。TRELLIS.2 通过 PBR 预测部分缓解了此问题。

  4. 仅 Linux 官方支持 - Windows 用户需依赖非官方社区方案(Window_Trellis),稳定性和兼容性无法保证。

风险点

  1. 研究项目定位 - 官方声明 TRELLIS 是纯研究项目("purely a research project"),不承诺商业支持。生产环境使用需自行承担风险。影响:关键 Bug 可能无人响应。缓解:社区活跃度较高,部分问题可通过社区 PR 解决。

  2. 快速迭代的不稳定性 - 3D AI 生成领域竞争激烈(Hunyuan3D、Tripo 等),TRELLIS 的领先地位可能被快速超越。Reddit 社区已有"Trellis 2 被超越"的讨论。影响:技术选型风险。缓解:开源生态保证了长期可用性。

  3. 训练数据偏见 - 数据集来自公开互联网资源,可能包含偏见。官方承认在生成照片级真实物体方面能力有限,更擅长艺术风格资产。

生态成熟度评估

  • 插件/扩展数量: 少。TRELLIS 是独立项目,无插件系统。但有社区衍生项目(Window_Trellis、TostUI Docker UI)。
  • 第三方库支持: 依赖 spconv、FlashAttention、xFormers、Nvdiffrast、FlexiCubes、Kaolin 等成熟库。TRELLIS.2 新增了自研的 O-Voxel、FlexGEMM、CuMesh 库。
  • 企业采用案例: 微软 Azure AI Foundry Labs 已集成 TRELLIS Demo。3DAI Studio 等商业平台已接入。社区在游戏开发、3D 打印等领域有实际使用案例。
  • 文档质量: README 完整,包含安装步骤、使用示例、训练指南。论文技术细节详尽。社区教程丰富(知乎中文解读、YouTube 视频教程)。

生产环境就绪度评估

  • 稳定性: 研究级。存在 250 个 Open Issues(原版),部分涉及安装失败和生成质量问题。但核心推理流程稳定。
  • 性能表现: 优秀。TRELLIS.2 在 H100 上 512³ 约 3 秒,1024³ 约 17 秒。使用 FlashAttention 和稀疏卷积优化推理速度。
  • 监控/可观测性: 无。纯推理框架,不提供监控、日志聚合或指标输出能力。
  • 故障恢复: 无。无内置的容错设计或降级策略。
  • 安全合规: MIT 许可证,无已知安全漏洞。模型权重公开可审计。官方标注了 Responsible AI 考量。

学习曲线评估

  • 前置知识要求:
  • 深度学习基础(Transformer、VAE、扩散模型)
  • 3D 计算机视觉基础(Mesh、NeRF、3D Gaussian、体素表示)
  • PyTorch 和 CUDA 编程
  • 推荐了解:DiT 架构、Rectified Flow、稀疏卷积

  • 入门时间估计: 1-2 天(使用预训练模型进行 3D 资产生成和基本推理)

  • 精通时间估计: 2-4 周(理解完整架构、修改模型、进行微调训练)

总结与建议

TRELLIS 是目前开源 3D AI 生成领域质量最高、架构最精巧的项目之一。其核心贡献——SLAT 统一潜在表示——为 3D 生成建立了一个可扩展的范式,使得多格式输出、灵活编辑和高质量生成成为可能。

推荐使用场景: - 需要本地部署、开源方案的 3D 资产生成 - 学术研究和技术学习(代码质量极高) - 快速原型和迭代设计(速度快、成本低)

不推荐场景: - 纯文本到 3D 的生产环境(选择 Hunyuan3D) - 需要商业支持和 SLA 的场景(选择 Tripo AI 等商业服务) - Windows 环境、低显存 GPU

综合评分: 8.5/10(开源 3D 生成领域)

信息来源与版本说明