TRELLIS 是微软研究院提出的「结构化 3D 隐空间」生成模型,第一代论文《Structured 3D Latents for Scalable and Versatile 3D Generation》(arXiv 2412.01506)拿了 CVPR'25 Spotlight,GitHub 上 microsoft/TRELLIS 已经积累了一万三千多颗星。真正需要注意的是:主线早就换代了。现在的当家型号是 microsoft/TRELLIS.2-4B,论文叫《Native and Compact Structured Latents for 3D Generation》(arXiv 2512.14692),代码在 microsoft/TRELLIS.2 这个独立仓库,两代模型在 Hugging Face 上的月下载量都是百万量级。如果你搜到的教程还在讲 TRELLIS-image-large 和 SLat,那是上一代的资料。
TRELLIS.2 换掉了整个几何表示。第一代靠 SLat 加 Flexicubes 之类的等值面场重建 mesh,第二代改用 O-Voxel —— 一种不依赖 SDF 的稀疏体素结构,因此能表达开放曲面、非流形几何和物体内部结构,并且几何和外观一起编码,直出带 base color、roughness、metallic、opacity 的 PBR GLB。管线是一个 4B 的 flow-matching transformer,实际由五个 1.3B 的 DiT 分级组成:ss_flow 先在 64³ 上出稀疏结构,img2shape 的 512 与 1024 两级出形状,imgshape2tex 的 512 与 1024 两级出材质,外加 shape/tex 两套稀疏 3D VAE 编解码器(编码器各 708MB、解码器各 948MB)。VAE 做 16× 空间下采样,把 1024³ 的资产压成约 9.6K 个 latent token。图像条件用的是 DINOv3 ViT-L/16,抠图挂的是 BiRefNet。官方在 H100 上公布的耗时是:512³ 约 3 秒(形状 2 秒 + 材质 1 秒)、1024³ 约 17 秒(10 + 7)、1536³ 约 60 秒(35 + 25)。
自部署这套东西,坑基本都在环境上而不是模型上。两代 README 都写明 Linux only;TRELLIS.2 默认 CUDA 12.4 + PyTorch 2.6.0,setup.sh 要连编 flash-attn、nvdiffrast、nvdiffrec、cumesh、o-voxel、flexgemm 六个组件,Blackwell 卡还得自己配(仓库 issue #143 就是一份 RTX 5090 + WSL-Ubuntu 的可用配方)。多卡训练目前也还不稳,issue #90、#95 都是 flex_gemm 相关的 illegal memory access。显存这条线更直接:官方写 ≥24GB,且只在 A100 与 H100 上验证过;bf16 权重本身就 16.2GB,剩下的留给激活和稀疏体素。想在 16GB 卡上跑,就得走 GGUF 或 FP8 量化那条路。与其在本机反复重装 CUDA,不如在 NexGPU 上按秒租一张对的卡:2,000+ 预置镜像里有现成的 PyTorch 和 ComfyUI,跑完就停,算力立刻停止计费。
01 —
型号与量化版本对照
五级 DiT 的逐级体积都摆在这里,别按「4B 模型」的直觉估显存。
| 版本 | 参数量 | 显存 | 上下文 | 说明 |
|---|---|---|---|---|
| TRELLIS.2-4B(官方 bf16) | 4B = 5 × 1.3B DiT + 稀疏 3D VAE | 权重 16.2GB/官方要求 ≥24GB 显存 | 512³ / 1024³ / 1536³ 体素分辨率 | 当前主线。单图输入,直出带 base color、roughness、metallic、opacity 的 PBR GLB,另可导出 MP4 预览。微软只在 A100 与 H100 上验证过。 |
| TRELLIS.2-4B FP8 / INT8(ComfyUI 路线) | 每级 DiT FP8 约 1.29GB | Comfy-Org 合并权重:bf16 10.34GB、int8 5.25GB,另需 shape VAE 1.10GB + texture VAE 948MB + DINOv3 ViT-L 1.21GB | 512³ / 1024³ | ComfyUI-Trellis2 提供 30 多个节点、sdpa 与 flash_attn_3 后端切换,以及 Torch 2.7/2.8/2.10 × Python 3.11/3.13 的 Windows wheel。24GB 卡跑 1024³ 会比官方 bf16 从容不少。 |
| TRELLIS.2-4B GGUF 量化 | 每级 1.3B DiT:Q8_0 约 1.43GB、Q6_K 约 1.12GB、Q5_K_M 约 948MB、Q4_K_M 约 789MB | 整套 q8 约 10GB、q4 约 6.5GB;trellis.cpp 称 1024³ cascade 可在 16GB 卡上跑通 | 512³ / 1024³ cascade | 配 trellis.cpp(CUDA / Vulkan / ROCm,带常驻 HTTP 服务)或 ComfyUI GGUF 节点。代价是慢:官方基准里 res-1024、12 步流在 RTX 5060 Ti 上端到端 3 分 16 秒到 7 分 23 秒。 |
| TRELLIS-image-large(第一代) | 1.2B | 官方要求 ≥16GB 显存 | 64³ 稀疏结构 + SLat,支持多图条件 | 上一代图像线,仍在维护。输出 3D 高斯、辐射场与 mesh,可导 GLB 与 PLY。要 3DGS 资产而不是 PBR mesh 时,这一代反而更合适。 |
| TRELLIS-text-xlarge | 2.0B | 官方要求 ≥16GB 显存 | 纯文本 prompt → 64³ 稀疏结构 | 文本线里最大的一档。官方自己说明:受训练数据限制,文本条件模型在创意度和细节上弱于图像条件模型,先用图像线跑通再考虑它。 |
| TRELLIS-text-base / TRELLIS-text-large | 342M / 1.1B | 官方要求 ≥16GB 显存 | 纯文本 prompt → 3D | 轻量文本线,适合做批量草模和风格试验。训练代码与 TRELLIS-500K 数据集(源自 Objaverse(XL)、ABO、3D-FUTURE、HSSD、Toys4k,按美学评分筛选)都已开放。 |
02 —
该租哪张卡
按 24GB 这条硬线来配,不要拿 16GB 卡硬碰官方 bf16 管线。
跑第一代 TRELLIS-image-large 做效果评估、出 3D 高斯资产
Tesla V100 32GB$0.188/卡·时
官方 README 专门点名 V100 不支持 flash-attn,但给了 ATTN_BACKEND=xformers 这条明路;32GB 比 16GB 的底线宽裕得多,而它是全站最便宜的一档。
TRELLIS.2-4B 官方 bf16 管线,512³ 单图出模
RTX 3090 24GB$0.193/卡·时
刚好压住官方 24GB 的最低要求,Ampere 架构 flash-attn 直接可用,16.2GB 权重加激活能装下,是验证「这套东西到底跑不跑得起来」最省钱的入口。
1024³ cascade 加 PBR 贴图管线连着跑,或做长时间批量出模
RTX 5090 32GB$0.723/卡·时
shape 与 texture 两级 1.3B DiT 同时驻留时 24GB 会紧,32GB 留出余量;Blackwell 需要自编 flash-attn,仓库 issue #143 有现成的 5090 + WSL-Ubuntu 配方可抄。
1536³ 高模、资产流水线或微调训练
A100 PCIE 80GB$0.824/卡·时
微软官方就是在 A100 与 H100 上验证的,80GB 能一次装下五级 DiT 加两套 VAE,1536³ 不用来回换权重;要多卡就往上叠,NexGPU 单节点最多 14 张卡、2,152GB 显存。
03 —
四步跑出第一个 GLB
官方栈是 Linux + CUDA 12.4 + PyTorch 2.6.0,照着走别改版本。
- 01
开一台 24GB 以上的实例,选 PyTorch 镜像
在 NexGPU 控制台挑卡(RTX 3090 24GB 起),从 2,000+ 预置镜像里选 PyTorch 那套,SSH、Jupyter 或网页终端进去都行。进来第一件事是确认驱动和 CUDA 版本对得上,TRELLIS.2 的编译步骤对这个很敏感。
nvidia-smi && python -c "import torch; print(torch.__version__, torch.version.cuda)" - 02
克隆仓库并编译六个扩展
setup.sh 会新建 trellis2 环境并依次编译 flash-attn、nvdiffrast、nvdiffrec、cumesh、o-voxel、flexgemm。这一步最花时间,也是本机部署最容易卡死的地方 —— 记得带 --recursive,子模块少一个就编不过。
git clone -b main https://github.com/microsoft/TRELLIS.2.git --recursive && cd TRELLIS.2 && . ./setup.sh --new-env --basic --flash-attn --nvdiffrast --nvdiffrec --cumesh --o-voxel --flexgemm - 03
拉权重跑第一次推理
from_pretrained 会拉下 microsoft/TRELLIS.2-4B 的 16.2GB 权重:五个 1.3B DiT 分级加 shape/tex 两套 VAE。先用 512³ 试通(H100 上约 3 秒),确认输出正常再往 1024³、1536³ 上调。PBR 贴图单独走 texturing 管线,参考 example_texturing.py。
from trellis2.pipelines import Trellis2ImageTo3DPipeline pipeline = Trellis2ImageTo3DPipeline.from_pretrained("microsoft/TRELLIS.2-4B") mesh = pipeline.run(image)[0] - 04
起 Gradio 界面,或换量化路线省显存
python app.py 直接拉起官方网页 demo,app_texturing.py 是贴图那一版。如果卡只有 16GB,改走 GGUF:ilintar/trellis2-gguf 的 q4 全套约 6.5GB、q8 约 10GB,配 trellis.cpp 用 --res 512|1024|1536 控制分辨率,还能常驻成 HTTP 服务给后端调。
python app.py
一个 3D 资产到底多少钱
拿官方在 H100 上公布的耗时直接算。1024³ 一次约 17 秒(形状 10 秒 + 材质 7 秒),NexGPU 的 H100 SXM 80GB 是 $3.582/卡·时,3600 ÷ 17 ≈ 211 个资产/小时,摊到每个约 $0.017;1536³ 一次约 60 秒,一小时 60 个,每个约 $0.060。如果只是验证效果、调 prompt 和输入图,RTX 3090 24GB $0.193/卡·时 连续跑满一天 24 小时也就 0.193 × 24 = $4.63。存储另算:16.2GB 权重按中位价 $0.414/GB·月 是 16.2 × 0.414 ≈ $6.71/月,按天摊约 $0.22;导出 1,000 个 5MB 的 GLB 共 5GB 出网,5 × $0.0081 ≈ $0.04,基本可以忽略。计费按秒走、按小时定价,没有起租时长、没有开通费、不用申请配额;实例一停算力立刻不计费,存储要销毁才停。
04 —
