TRELLIS
微软开源的3D资产生成模型,支持文本/图片输入,输出3D高斯/辐射场/网格多种格式,CVPR 202
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
微软开源的3D资产生成模型,支持文本/图片输入,输出3D高斯/辐射场/网格多种格式,CVPR 202
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

图1:TRELLIS 3D 生成效果展示(来源:项目官方 GitHub)
试想这样一个场景:你在工作中需要一批3D模型资产——游戏角色、产品原型、历史文物数字孪生——传统流程是建模师用Maya或Blender一帧一帧地精雕细琢,一个中等复杂度的模型从草稿到交付往往需要数天时间。即使近年来AI图像生成突飞猛进,2D图片已经可以「一键生成」,但从2D到3D的跨越始终是行业公认的难题:3D模型需要几何一致性、多视角连贯性、纹理贴图质量等多维度约束,远比生成一张图片复杂得多。
微软研究院于2024年12月开源的 TRELLIS 项目,正是在这一关键节点上实现了突破。这个项目来自CVPR 2025 Spotlight论文《Structured 3D Latents for Scalable and Versatile 3D Generation》,甫一开源便在GitHub上获得超过12,000颗星,成为3D生成领域最受关注的项目之一。2025年3月,团队又进一步开源了训练代码和文本到3D模型,让整个技术路线更加完整。
TRELLIS的核心理念用一句话概括就是:让一个强大的「中转表示」同时服务多种3D输出格式。
传统3D生成方法往往针对特定输出格式单独设计模型——生成3D高斯(3D Gaussian)的模型和生成网格(Mesh)的模型是两套完全不同的架构。这导致两个问题:一是每种格式都需要从零训练,效率低下;二是不同格式之间难以切换,限制了实际应用场景。
TRELLIS提出的 Structured LATent(SLAT) 解决思路是:在生成过程中引入一个统一的「结构化潜在空间」,无论输入是文字描述还是图片,最终都会先在这个统一空间里生成一个中间表示,再从这个表示解码为不同的输出格式——3D高斯(适合实时渲染)、辐射场(Radiance Field,适合体积渲染)或网格(Mesh,适合游戏和工业建模)。
基于SLAT,TRELLIS采用了 Rectified Flow Transformer 作为骨干网络,这是一条与扩散模型(Diffusion)并行发展的生成技术路线,在高分辨率图像生成领域已经展现出高效优势。团队在包含50万多样化3D资产的 TRELLIS-500K 数据集上完成了预训练,其中最大模型规模达到 20亿参数,这也是目前已知的最大3D生成模型之一。
TRELLIS的一个显著优势在于灵活的多格式输出能力。以输入一张图片为例,其 TrellisImageTo3DPipeline 推理流程如下:
实际使用中,代码调用非常简洁:
from trellis.pipelines import TrellisImageTo3DPipeline
from trellis.utils import render_utils, postprocessing_utils
pipeline = TrellisImageTo3DPipeline.from_pretrained("microsoft/TRELLIS-image-large")
pipeline.cuda()
outputs = pipeline.run(image, seed=1)
# 渲染视频预览
video = render_utils.render_video(outputs['gaussian'][0])['color']
# 导出GLB格式
glb = postprocessing_utils.to_glb(outputs['gaussian'][0], outputs['mesh'][0])
glb.export("model.glb")
TRELLIS还支持从文本直接生成3D(TRELLIS-text模型)和多图条件生成(输入多张图片融合生成),以及局部编辑能力——可以对已生成的3D资产进行局部修改,而不需要重新生成整体。

图2:输入图片示例(来源:项目官方 GitHub)
TRELLIS/
├── app.py / app_text.py # Gradio Web UI(图片/文字输入)
├── example.py # 单图→3D 示例
├── example_text.py # 文本→3D 示例
├── example_variant.py # 变体生成示例
├── setup.sh # 环境安装脚本(conda + pip)
├── configs/ # 推理/训练配置
├── trellis/
│ ├── pipelines/ # TrellisImageTo3DPipeline 等推理管线
│ ├── representations/ # Gaussian、Mesh 等3D表示定义
│ ├── models/ # SLAT Transformer 核心模型
│ ├── modules/ # 注意力、归一化等基础模块
│ ├── renderers/ # 渲染器(支持多种格式)
│ ├── trainers/ # 训练代码(2025.03开源)
│ └── utils/ # 渲染工具、后处理工具
└── assets/ # 示例图片和Logo
整个项目以 Python + PyTorch 为核心,依赖 CUDA 11.8/12.2 环境,需要 NVIDIA GPU(至少16GB显存,A100/A6000经过官方验证)。
TRELLIS的部署难度主要集中在硬件层面:
| 维度 | 要求 |
|---|---|
| GPU显存 | 16GB以上(A100/A6000推荐) |
| 内存 | 32GB以上 |
| 磁盘 | 50GB以上(含模型权重) |
| CUDA | 11.8 或 12.2 |
| 系统 | 仅在 Linux 上测试通过 |
软件层面,官方提供 setup.sh 脚本支持自动化安装,涵盖 conda 环境创建、PyTorch 安装、各类 CUDA 扩展编译(flash-attention、xformers、spconv 等)。Windows 用户需要参考社区 issue 自行适配,不保证可用性。
值得注意的是,项目没有提供 Dockerfile 或 docker-compose,这对习惯容器化部署的用户来说是个遗憾。虽然有 Gradio Web UI 和 HuggingFace 在线 Demo 可以在不安装任何依赖的情况下体验,但对于需要本地部署或二次开发的用户,环境配置仍需要一定的动手能力。
TRELLIS的意义远超技术本身。从行业发展角度观察,它代表了3D生成领域的几个重要趋势:
一是大模型路线的胜利。20亿参数的 TRELLIS 比此前大多数3D生成模型大了1-2个数量级,验证了「大力出奇迹」在3D领域的可行性。50万量级的 TRELLIS-500K 数据集也成为了社区的宝贵资产。
二是多格式输出成为标配。在游戏、影视、工业设计等不同场景中,需要的3D格式各不相同。能在一个模型内无缝切换多种输出格式,意味着 TRELLIS 可以直接服务下游多条产品线。
三是局部编辑能力打开了创作空间。传统3D生成只能整体替换,而 TRELLIS 支持对局部区域进行定向修改(如换一个「龙头」而不影响身体),这对于风格化创作和迭代式设计意义重大。
当然,TRELLIS 目前也有局限性:文本到3D的质量明显不如图片到3D(论文和官方文档都坦诚了这一点);实时渲染场景下3D高斯的渲染效率仍有提升空间;部署门槛高也限制了其在消费级硬件上的普及。
setup.sh --demo → 启动 python app.py,浏览器打开 Gradio 界面example.py,几行代码即可完成从图片到3D资产的完整流程