GitHub - microsoft/TRELLIS.2: Native and Compact Structured Latents for 3D Generation
핵심 포인트
- 1TRELLIS.2는 O-Voxel이라는 새로운 "field-free" sparse voxel 구조를 활용하여 이미지-to-3D 생성에서 고해상도와 고충실도를 제공하는 4B 파라미터의 최첨단 3D generative model입니다.
- 2이 모델은 O-Voxel Representation을 통해 Open Surfaces, Non-manifold Geometry 등 복잡한 Topology를 가진 Asset을 처리하며, Base Color, Roughness, Metallic, Opacity를 포함한 PBR Material을 지원합니다.
- 3TRELLIS.2는 Sparse 3D VAE를 사용하여 Asset을 compact latent space로 인코딩하여 512³ 해상도 Asset을 약 3초 만에 생성하는 높은 효율성을 보이며, O-Voxel 변환은 거의 실시간으로 이루어집니다.
TRELLIS.2는 고품질 image-to-3D 생성을 위해 설계된 최첨단 대규모 3D 생성 모델(4B 파라미터)입니다. 이 모델은 "field-free" sparse voxel 구조인 O-Voxel을 활용하여 복잡한 토폴로지, 선명한 특징, 전체 PBR(Physically Based Rendering) 재료를 가진 임의의 3D 에셋을 재구성하고 생성합니다.
주요 특징:
- 높은 품질, 해상도 및 효율성:
- 40억 개 파라미터를 가진 이 모델은 vanilla DiT(Diffusion Transformer)를 사용하여 고해상도 fully textured 에셋을 탁월한 충실도와 효율성으로 생성합니다.
- 에셋을 compact latent space로 인코딩하기 위해 16배 공간 downsampling을 수행하는 Sparse 3D VAE를 사용합니다.
- NVIDIA H100 GPU에서 512³ 해상도 에셋을 약 3초(Shape 2초 + Material 1초), 1024³ 해상도를 약 17초(Shape 10초 + Material 7초), 1536³ 해상도를 약 60초(Shape 35초 + Material 25초) 내에 생성합니다.
- 임의 토폴로지 처리:
- O-Voxel 표현 방식은 iso-surface field의 한계를 극복합니다.
- 손실이 많은 변환 없이 복잡한 구조를 견고하게 처리할 수 있습니다.
- 예시: 열린 표면(옷, 나뭇잎), 비-다양체(non-manifold) 형상, 내부 밀폐 구조 등을 지원합니다.
- 풍부한 Texture Modeling:
- 기본 색상 외에도 Base Color, Roughness, Metallic, Opacity를 포함한 임의의 표면 속성을 모델링하여 사실적인 렌더링과 투명도를 지원합니다.
- 최소한의 처리:
- 데이터 처리가 간소화되어 렌더링 및 최적화 없이 즉각적인 변환이 가능합니다.
- Textured Mesh를 O-Voxel로 변환하는 데 10초 미만(단일 CPU), O-Voxel을 Textured Mesh로 변환하는 데 100ms 미만(CUDA)이 소요됩니다.
핵심 방법론 (Core Methodology):
TRELLIS.2는 O-Voxel이라는 새로운 sparse voxel representation과 이를 처리하는 생성 모델 파이프라인을 기반으로 합니다. 이 파이프라인은 세 가지 주요 단계로 구성됩니다:
- O-Voxel Representation:
- 기존의 implicit field나 mesh 기반 표현 방식과 달리, O-Voxel은 3D 공간을 계층적이고 sparse한 voxel 그리드로 표현합니다. 이는 "field-free" 방식으로, 3D 에셋의 형상과 PBR 재료 속성을 직접 voxel에 저장합니다.
- 이러한 접근 방식은 Open Surfaces, Non-manifold Geometry, Internal Enclosed Structures와 같은 복잡한 토폴로지를 손실 없이 인코딩하고 재구성할 수 있게 합니다. O-Voxel은 CuMesh(CUDA-accelerated mesh utilities) 및 FlexGEMM(Triton 기반의 효율적인 sparse convolution 구현)과 같은 고성능 패키지에 의해 지원됩니다.
- Sparse VAE 기반 Latent Space 인코딩/디코딩:
- TRELLIS.2는 Raw O-Voxel 데이터를 compact latent space로 압축하기 위해 Sparse 3D VAE를 사용합니다. 이 VAE는 16배의 공간적 downsampling을 통해 고해상도 3D 데이터를 효율적으로 처리 가능한 형태로 변환합니다.
- Shape SC-VAE(
configs/scvae/shape_vae_next_dc_f16c32_fp16.json)와 Texture SC-VAE(configs/scvae/tex_vae_next_dc_f16c32_fp16.json)가 별도로 훈련되어 형상과 재료 정보를 각각의 latent space로 인코딩합니다. 이 latent space는 이후 Diffusion Model의 입력으로 사용됩니다.
- DiT 기반 Flow Model을 이용한 3D 생성:
- 인코딩된 latent representation은 Diffusion Transformer(DiT) 아키텍처를 기반으로 하는 Flow Model을 통해 생성됩니다. 이 모델은 주어진 이미지 조건(image condition)으로부터 3D 에셋의 latent code를 생성하도록 훈련됩니다.
- 생성 과정은 여러 단계의 Flow Model로 나뉘어 진행됩니다:
- Sparse Structure Flow Model: 이미지로부터 3D 에셋의 sparse structure latent를 생성합니다. (
configs/gen/ss_flow_img_dit_1_3B_64_bf16.json) - Shape Flow Model: Sparse structure latent와 이미지 조건으로부터 상세한 형상 latent를 생성합니다. (
configs/gen/slat_flow_img2shape_dit_1_3B_512_bf16.json) - Texture Flow Model: 생성된 형상 latent와 이미지 조건으로부터 PBR 재료 latent(Base Color, Roughness, Metallic, Opacity 포함)를 생성합니다. (
configs/gen/slat_flow_imgshape2tex_dit_1_3B_512_bf16.json)
- Sparse Structure Flow Model: 이미지로부터 3D 에셋의 sparse structure latent를 생성합니다. (
- 각 Flow Model은 Large-scale 데이터를 학습하여 고품질의 일관된 3D 에셋을 생성하는 데 기여합니다. 고해상도 fine-tuning을 위한 설정 파일(
slat_flow_img2shape_dit_1_3B_512_bf16_ft1024.json,slat_flow_imgshape2tex_dit_1_3B_512_bf16_ft1024.json)도 제공됩니다.
데이터 처리 및 훈련:
훈련을 위해서는 raw 3D 에셋을 O-Voxel representation으로 변환하는 전처리 과정이 필요하며, 이는 mesh 변환, compact structured latent 생성, metadata 준비 등을 포함합니다. 훈련은 train.py 스크립트를 통해 관리되며, Objaverse-XL과 같은 대규모 3D 데이터셋을 사용하여 VAE 및 Flow Model을 학습시킵니다. 데이터셋은 base, mesh_dump, dual_grid, asset_stats, pbr_dump, pbr_voxel, ss_latent, shape_latent, pbr_latent, render_cond 등의 경로를 포함하는 JSON 문자열로 지정됩니다.
결과적으로, TRELLIS.2는 이미지 입력으로부터 고품질의 PBR-ready 3D 에셋을 생성하며, 이는 O-Voxel의 효율적인 표현과 다단계 Diffusion Model의 강력한 생성 능력을 결합한 결과입니다.