HuggingFace镜像/TRELLIS.2-4B
模型介绍
文件和版本
分析

TRELLIS.2:原生紧凑结构化潜变量的 3D 生成

模型名称: TRELLIS.2-4B

论文: https://arxiv.org/abs/2512.14692

代码库: https://github.com/microsoft/TRELLIS.2

项目页面: https://microsoft.github.io/trellis.2

简介

TRELLIS.2 是一款先进的大型 3D 生成模型,专为高保真图像转 3D 生成而设计。它采用了一种名为O-Voxel的新型“无场”稀疏体素结构,并配备了大规模流匹配Transformer(40亿参数)。

与以往依赖等值面场(如 SDF、Flexicubes)的方法不同——这些方法在处理开放表面或非流形几何时存在困难——TRELLIS 能够重建和生成具有复杂拓扑结构、锐利特征以及完整基于物理渲染(PBR)材质(包括透明/半透明效果)的任意 3D 资产。

模型详情

  • 开发者: Xiang Jianfeng、Chen Xiaoxue、Xu Sicheng、Wang Ruicheng、Lv Zelong、Deng Yu、Zhu Hongyuan、Dong Yue、Zhao Hao、Yuan Nicholas Jing、Yang Jiaolong
  • 模型类型: 基于稀疏体素的 3D VAE 流匹配 Transformer
  • 参数规模: 40 亿
  • 输入: 单张图像
  • 输出: 3D 资产(带 PBR 材质的网格模型)
  • 分辨率: 512³ 至 1536³ 不等(体素网格分辨率)

核心特性

  • O-Voxel 表示: 一种全功能体素结构,可同时编码几何形状和外观表现。其支持:
    • 任意拓扑结构: 处理开放表面、非流形几何以及完全封闭结构,无需有损转换。
    • 丰富外观表现: 捕捉 PBR 属性(包括半透明表面的不透明度),并与几何形状精确对齐。
    • 高效性: 网格模型与 O-Voxel 之间可实现即时、无需优化的双向转换(毫秒至秒级)。
  • 高分辨率生成: 该模型经过训练,能够生成纹理丰富的资产,分辨率高达 1536³。
  • 高保真与紧凑潜空间: 采用具有16 倍空间下采样的稀疏 3D VAE,将 1024³ 的资产编码为仅约 9.6K 个潜变量令牌,且感知质量损失极小。
  • 形状条件纹理生成: 可为输入的 3D 网格模型和参考图像生成纹理。
  • 先进速度: 推理效率极高;详见下表。

推理速度(NVIDIA H100 GPU)

分辨率时间
512³~3秒
1024³~17秒
1536³~60秒

环境要求

  • 系统:当前模型仅在Linux系统上经过测试。
  • 硬件:需要至少24GB显存的NVIDIA GPU。代码已在NVIDIA A100和H100 GPU上验证通过。
  • 软件:
    • 需要CUDA Toolkit来编译特定包。推荐版本为12.4。
    • 推荐使用Conda管理依赖项。
    • 需要Python 3.8或更高版本。

已知限制

  • 几何瑕疵(小孔洞):尽管O-Voxels能很好地处理复杂拓扑结构,但生成的原始网格偶尔可能包含小孔洞或轻微的拓扑不连续性。对于需要严格水密几何体的应用(例如3D打印),我们提供了配套的网格后处理脚本,如孔洞填充算法。
  • 基础模型未对齐:TRELLIS.2-4B是一个预训练的基础模型。它未经过人类偏好对齐(例如通过RLHF)或针对特定审美标准的微调。因此,输出结果反映了训练数据的分布,风格可能有所不同;用户可能需要尝试不同的输入以获得期望的艺术效果。

我们正在积极改进模型并解决这些限制。

使用方法

注:安装说明和依赖项请参考官方GitHub仓库。

import os
os.environ['OPENCV_IO_ENABLE_OPENEXR'] = '1'
os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "expandable_segments:True"  # Can save GPU memory
import cv2
import imageio
from PIL import Image
import torch
from trellis2.pipelines import Trellis2ImageTo3DPipeline
from trellis2.utils import render_utils
from trellis2.renderers import EnvMap
import o_voxel

# 1. Setup Environment Map
envmap = EnvMap(torch.tensor(
    cv2.cvtColor(cv2.imread('assets/hdri/forest.exr', cv2.IMREAD_UNCHANGED), cv2.COLOR_BGR2RGB),
    dtype=torch.float32, device='cuda'
))

# 2. Load Pipeline
pipeline = Trellis2ImageTo3DPipeline.from_pretrained("microsoft/TRELLIS.2-4B")
pipeline.cuda()

# 3. Load Image & Run
image = Image.open("assets/example_image/T.png")
mesh = pipeline.run(image)[0]
mesh.simplify(16777216) # nvdiffrast limit

# 4. Render Video
video = render_utils.make_pbr_vis_frames(render_utils.render_video(mesh, envmap=envmap))
imageio.mimsave("sample.mp4", video, fps=15)

# 5. Export to GLB
glb = o_voxel.postprocess.to_glb(
    vertices            =   mesh.vertices,
    faces               =   mesh.faces,
    attr_volume         =   mesh.attrs,
    coords              =   mesh.coords,
    attr_layout         =   mesh.layout,
    voxel_size          =   mesh.voxel_size,
    aabb                =   [[-0.5, -0.5, -0.5], [0.5, 0.5, 0.5]],
    decimation_target   =   1000000,
    texture_size        =   4096,
    remesh              =   True,
    remesh_band         =   1,
    remesh_project      =   0,
    verbose             =   True
)
glb.export("sample.glb", extension_webp=True)

引用说明

如果您发现此模型对您的研究有所帮助,请引用我们的成果:

@article{
    xiang2025trellis2,
    title={Native and Compact Structured Latents for 3D Generation},
    author={Xiang, Jianfeng and Chen, Xiaoxue and Xu, Sicheng and Wang, Ruicheng and Lv, Zelong and Deng, Yu and Zhu, Hongyuan and Dong, Yue and Zhao, Hao and Yuan, Nicholas Jing and Yang, Jiaolong},
    journal={Tech report},
    year={2025}
}

许可协议

本模型基于 MIT 许可协议发布。代码和数据集已公开,以方便复现和进一步研究。