TRELLIS
TRELLIS**는 단일 이미지나 텍스트 프롬프트를 입력받아 풍부한 3D 기하 구조와 텍스처를 지닌 다중 포맷 3D 에셋을 생성하는 딥러닝 기반 3D 생성 모델입니다. 마치 자연어 처리 모델인 GPT가 문맥을 이해해 다양한 형태의 텍스트를 출력하듯, 이 도구는 입력 소스를 통합 구조화된 잠재 표현 (Structured Latents, SLAT)으로 정밀하게 변환한 후 다양한 하류 3D 표현 형식으로 동시에 디코딩합니다. 기존의 3D 생성 모델들은 NeRF, 3D Gaussian Splatting, Polygon Mesh 중 특정 포
TRELLIS는 단일 이미지나 텍스트 프롬프트를 입력받아 풍부한 3D 기하 구조와 텍스처를 지닌 다중 포맷 3D 에셋을 생성하는 딥러닝 기반 3D 생성 모델입니다. 마치 자연어 처리 모델인 GPT가 문맥을 이해해 다양한 형태의 텍스트를 출력하듯, 이 도구는 입력 소스를 통합 구조화된 잠재 표현 (Structured Latents, SLAT)으로 정밀하게 변환한 후 다양한 하류 3D 표현 형식으로 동시에 디코딩합니다. 기존의 3D 생성 모델들은 NeRF, 3D Gaussian Splatting, Polygon Mesh 중 특정 포맷 하나에만 국한되거나 포맷 변환 시 상당한 품질 저하를 겪어야 했던 한계가 있었습니다. TRELLIS는 이러한 '포맷의 파편화' 문제를 근본적으로 극복하기 위해 다중 포맷을 아우르는 Rectified Flow Transformer 아키텍처를 도입했습니다. Rectified Flow Transformer 백본은 1.2B에서 최대 2.0B 매개변수를 기반으로 설계되어 단 10초 내외의 매우 짧은 시간 안에 왜곡 없는 기하학적 형태와 디테일한 PBR 텍스처를 추출해 냅니다. 기존 메싱 모델들이 겪던 기하학적 왜곡이나 블러링 현상을 현저히 줄였으며, 복잡한 위상 구조를 지닌 대상물도 높은 정확도로 복원합니다. 생성된 자산은 게임 개발 엔진이나 가상현실 렌더러와 같은 상용 파이프라인에서 변환 손실 없이 즉시 임포트하여 활용할 수 있는 뛰어난 범용성을 보장합니다. 의료 및 생명공학 시각화 분야 연구진은 단 한 장의 그래픽 예시나 단면 이미지 자료를 바탕으로 고정밀 3D 구조 데이터를 빠르게 프로토타이핑할 수 있습니다. AlphaFold를 활용해 예측한 단백질의 2D 스크린샷 이미지나 해부학적 단면 구조를 입력받아 실시간 렌더링이 가능한 웹 기반 3D 뷰어용 자산이나 수술 시뮬레이션용 폴리곤 메시를 생성하는 식으로 연구 워크플로우를 대폭 단축할 수 있습니다.
💻 필요한 컴퓨터 사양
NVIDIA GPU 16GB 이상 필수 (A100, A6000 등 엔터프라이즈 환경에서 공식 검증)
모델 가중치 설치에 약 5GB, 전체 라이브러리 및 임시 컴파일 포함 15GB 이상
⚡ 설치법
### 4-1. Quick Start
# 리포지토리 및 서브모듈 복제
git clone --recurse-submodules https://github.com/microsoft/TRELLIS.git
cd TRELLIS
# Conda 가상환경 생성 및 필수 컴파일 종속성 한번에 설치
. ./setup.sh --new-env --basic --xformers --flash-attn --diffoctreerast --spconv --mipgaussian --kaolin --nvdiffrast
### 4-2. 상세 설치
# Python API 활용 기본 추론 스크립트 예시 (minimal_example.py)
import os
os.environ['SPCONV_ALGO'] = 'native' # 단일 실행 시 벤치마크 시간 단축
from PIL import Image
from trellis.pipelines import TrellisImageTo3DPipeline
from trellis.utils import render_utils, postprocessing_utils
# 1. 사전 학습된 이미지-3D 파이프라인 로드 및 GPU 할당
pipeline = TrellisImageTo3DPipeline.from_pretrained("microsoft/TRELLIS-image-large")
pipeline.cuda()
# 2. 분석용 단일 이미지 로드
image = Image.open("input_sample.png")
# 3. 3D 에셋 생성 프로세스 구동
outputs = pipeline.run(image, seed=1)
# 4. 단순화 필터 및 텍스처 맵 크기를 적용하여 GLB 메시 파일로 최종 추출
glb = postprocessing_utils.to_glb(
outputs['gaussian'][0],
outputs['mesh'][0],
simplify=0.95, # 95% 폴리곤 단순화
texture_size=1024 # 텍스처 해상도 1024x1024 설정
)
glb.export("output_mesh.glb")📝 업데이트 노트
아직 업데이트 노트가 없습니다.
🧪 관련 생명의 코드
관련된 생명의 코드 글이 아직 없습니다.