CLAY: A Controllable Large-scale Generative Model for Creating High-quality 3D Assets
Paper: https://arxiv.org/abs/2406.13897 Project Page: https://sites.google.com/view/clay-3dlm Github: https://github.com/CLAY-3D/OpenCLAY Service: https://hyperhuman.deemos.com/rodin (Rodin)
CLAY: A Controllable Large-scale Generative Model for Creating High-quality 3D Assets논문에 대한 나의 생각1. Introduction3. Large-Scale 3D Generative Model3.1. Representation and Model Architecture3.2. Data Standardization for Pretraining4. Asset Enhancement5. Model Adaptation6. Result
논문에 대한 나의 생각
- Geometry Generative Model
- Geometry를 생성하는 새로운 Baseline을 제시
- Diffusion Transformer 구조를 Scalable하게 설계하여 모델 퍼포먼스 향상
- 3D 데이터는 Objaverse와 ShapeNet에서 좋은 527k개 뽑았고, 직접 Remeshing/Labeling
- 모델 사이즈도 다양하게 실험해보았고, mesh의 topology도 기존과 확연히 차이나게 👍
- Material Diffusion Model
- Objaverse에서 좋은 PBR 에셋 4만개 뽑음
- MVDream(Multi-View Diffusion)을 수정하여 4-View Material Diffusion 학습시킴
- Normal ControlNet 및 LoRA를 붙였는데, 이 부분에 대한 자세한 서술이 없음..
- 이것으로 Texture 상의 Mesh-Alignment를 잘 보존 하는 것 같은데, 확인 필요
- Diffuse / Roughness / Metallic Map을 TEXTure의 Texture Projection(gradient-based optimization) 방법론으로 생성
- 서비스 상에서 확인해 보았을 때, color 요소만 Diffuse로 깔끔하게 분리됨 👍
- 왜 Albedo라고 표현하지 않았을까?
- Text2Tex 방식(Automatic Viewpoint Selection)으로 Occlusion을 채움
- 서비스 상에선 Occlusion이 거의 없는데, 과연 이 방식으로 해결하는지? 확인 필요
- 개인적인 감상
- Siggraph Best 페이퍼 받을만 했던 것 같음. Novelty + 성능 + 좋은 시스템 모두 챙김
- Geometry Gen + Material Gen의 2-Stage 컨셉이 좋았고, 처음으로 그럴듯한 PBR 결과물이 나와준 것 같아 놀랍다.
- 다만, 결국에는 3D Gen도 scalable한 transformer 기반 모델 + 대규모 Data의 싸움으로 가는 것일까? 만약 그렇다면, 향후 어떤식으로 연구를 전개해 나가야 할지에 대한 개인적인 고민
- 결국엔 LLM처럼 자본과 데이터 싸움으로 귀결이 되는 것일지..
- 아니면, 학습에 활용할 수 있는 절대적인 RealWorld Data가 부족하다는 3D / Graphics 도메인의 특징에 기반하여 새로운 Approach가 대세가 될지
- 흐름을 꾸준히 지켜봐야 할 것 같다.
1. Introduction
- 3D 생성 기법은 크게 두가지 전략이 존재
- [A] 2D 생성 모델을 3D로 확장(SDS 등)하는 전략
- 장점: 생성 결과의 다양성
- 단점: 3D 이해도 떨어짐 → 높은 geometric fidelity를 유지하는데 실패함
- [B] 3D 데이터셋으로부터 학습하는 전략
- 장점: geometric fidelity를 더 잘 이해하고 보존함
- 단점: 큰 데이터셋을 얻기 힘들고, 그 문제가 결국 3D 생성 기술이 풀고자하는 문제와 연결됨
- 본 논문은 [A] 2D 기반 / [B] 3D 기반 생성을 결합 = “pretrain-then-adaptation” 패러다임을 제시
- Geometry 생성
- 3D native geometry generator(1.5B)
- 구성 = 3DShape2VecSet, VAE, DiT (Diffusion Transformer)
- 새로운 3D 데이터 전처리 파이프라인 활용 (remesh), GPT-4V 라벨링)
- Material 생성
- Multi-view material diffusion model으로 4 View 생성 후 → Projection
- Trained on high-quality PBR textures(diffuse, roughness, and metallic) from Objaverse
3. Large-Scale 3D Generative Model
- 3D 생성 모델 개발에서 어려운 점들
- 어떻게 3D 모델을 정의할 것이냐?
- Type-1. geometry with per-vertex color
- Type-2. geometry with texture map
- 3D appearence(NeRF/ GS) 데이터에서 추출할 것이냐 / 직접 생성할 것이냐?
- CLAY에서는 간단하게 Geometry 생성과 Texture 생성으로 나누었다. (Type-2)
- 이것은 3D Geometty 생성에서 2D Generation을 활용하지 않겠다는 의미
- 실험을 통해 3D Geometry 생성 모델의 사이즈를 키우고, 데이터를 늘리면 Diversity와 Quality 면에서 기존 2D 기반 모델들을 압도하는 것을 알 수 있었다.
- 간단히 말해서 CLAY는 Large 3D Generative Model 이며 1.5B 사이즈이다.
- 구조적으로(Architecture-Wise)
- CLAY는 새로운 Multi-Resolution VAE를 통해 3DShape2VecSet의 생성모델을 확장함.
- 이 확장은 Geometry의 encoding과 decoding을 훨씬 효율적이게 함
- 추가로, probabilistic Geomenry 생성을 위해 발전된 Dithusion Transtormer(DiT)를 추가함.
- 데이터셋 적으로(Dataset-Wise)
- Remeshing 파이프라인 개발
- GPT-4V annotation 스키마 개발 (기존 3D 데이터셋을 standardize unify 하기 위해)
- 이 데이터셋들은 다른 포맷 / 일관성 부족으로 그간 못쓰여옴
3.1. Representation and Model Architecture
- 3D 생성 모델 접근법
- 2D 생성 모델의 기본 개념과 유사하게, 압축된 latent space에서 3D 데이터 denoising 학습에 중점
- 3D Space의 복잡성과 연산량을 효과적으로 감소
- 3DShape VecSet의 representation과 구조를 베이스로, Scale-Up 가능하도록 튜닝
- 1. 3D geometry를 latent space로 인코딩
- mesh surface 으로부터 point cloud 를 샘플링 한 뒤,
- point cloud 가 dynamic shape( x 64)의 latent code 로 인코딩됨
- Encoder는 transformer 기반 VAE
- 2. DiT로 를 denoising
- noise at step t
- 3. Decoder(VAE)를 통해 Neural Field로 떨굼
- Isosurface
- Multi-resolution VAE
- 페이퍼 참고
- 모델 Scalability를 확보하는 것이 중요해서, dynamic shape 가능토록 하는 Multi-reoslution VAE 중요했음
- Coarse-to-fine DiT
- 페이퍼 참고 (다양한 사이즈 실험결과 존재)
- This progressive scaling method ensures robust and efficient training of our DiT
- 학습 디테일 나와있음
- Scaling-up Scheme
- 페이퍼 참고
- Scaling-up CLAY requires enhancing both the VAE and DiT architectures with pre-normalization and GeLU activation, to facilitate faster computation of attention mechanism.
- Our largest model, the XL, was trained on a cluster of 256 NVidia A800 GPUs, for approximately 15 days, with progressive training
- Following the insights in Gesmundo and Maile [2023] of Head addition, Heads expansion and Hidden dimension expansion, we progressively scale up the DiT during training. This approach offers benefits such as enhanced time efficiency, improved knowledge retention, and a reduced risk of the model trapped in the local optima
- 그렇다고 함
3.2. Data Standardization for Pretraining
- Large-Scale 3D Generative 모델의 efectiveness / Robustness는 3D 데이터셋의 퀄리티와 스케일에 달려있음. (ex나 image와 다르게 오픈 데이 터셋 부족함
- 대규모 하이퀄리티 3D 데이터를 얻기 위해서는 비수밀(Non-Watertight) 메쉬, 일관되지 않은 방향, 그리고 부정확한 주석과 같은 문제들을 극복하는 것이 필수적
- CLAY의 솔루션은 Remeshing 메소드를 개발하는 것, 그리고 GPT-4V로 annotation 하는 것임
- Standardization 과정
- 부적합한 데이터 필터링
- 부적합한 데이터: complex scene, fragmented scans 등
- 필터링을 통해 527K 데이터 확보 (ShapeNet과 Objaverse에서)
- Geometry Unification
- 필터링 후에도 비수밀(Non-Watertight) 메쉬, 즉 닫혀있지 않는 메쉬가 존재했음
- 이에 Remeshing을 시도했고, Manifold나 mesh-to-sdf, DOGN(Dual Octree Graph Network) 실험함
- Re-Meshing 기술은 아래의 전략들이 필요
- (1) 기하학적 보존 - 중요한 기하학적 특징을 최소한의 변경으로 유지할 것
- (2) 부피 보존- 모든 구조적 요소의 완전성을 보장할 것;
- (3) 비수밀 메쉬에 대한 적응성
- DOGN에 영감을 받아 UDF(Unsigned Distance Field) Representation를 채택함.
- 추가로 메쉬에 구멍이 있는 경우에서 Marching Cube 알고리즘을 통해 isosurface 추출하는 경우 얇은 면만이 추출되는 문제가 있었음
- we employ a grid-based visibility computation before isosurface extraction S
- Geometry Annotation
- SD 등을 봤을 때 프롬프트가 매우 중요함
- 자체 프롬프트 태그를 개발하고, GPT-4V 를 활용하여 세부적인 주석을 생성
- 모델이 복잡한 3D 기하학을 세밀한 디테일과 다양한 스타일로 해석하고 생성하는 능력을 향상
4. Asset Enhancement
- CG 파이프라인에서 바로 사용할 수 있도록 하게위해 two-stage 방법 도입
- post-generation geometry optimization + material synthesis
- Geometry optimization은 Mesh 다듬기용
- Material synthesis는 realistic Texture용
- Mesh Quadrification and Atlasing
- CLAY에서 Marching Cube 통해 geometry를 얻으면 uneven triangles로 이루어짐.
- Blender 사용하여 mriangle-face를 quad-face로 바꿈
- Quadrification 프로세스는 final mesh를 얻는데 매우 중요
- Material Synthesis
- PBR Material은 Diffuse / Metallic / Roughness로 구성됨.
- (사실 이 부분은 CLAY와 다르게 Albedo / ORM(Occlusion, Roughness, Metallic) 두 개로 가도 될 듯, 가능하다면..ㅎ)
- 기존 PBR Material 생성은 이러한 material 중 small subset만을 다룸
- RichDreamer는 roughness와 metallic 없는 diffuse map 만을 생성
- 등등
- Objaverse에서 4만개 Object를 Carefully 선택함
- (→ 이 부분에 대한 자세한 서술이 없다 ㅠㅠ 어떻게 추렸는지, 어떤 메타데이터를 활용했는지..등)
- high-quality PBR material을 가짐
- 이 데이터셋을 활용하여 Multi-View Material Diffusion 개발
- 기존 방법보다 매우 Speed-Up 함
- UV Space로는 TEXTure와 유사하게 보냄 (UV Optimization?)
- MVDream(Multi-View Diffusion)을 수정하여 4-View Material Diffiusion 개발
- 추가적인 채널과 모달리티에 맞추기 위함
- HyperHuman 얼굴 텍스쳐 생성기에 영감을 받아서, UNet 변형
- DreamFace 리뷰를 참고!
- Othogonal View로 학습시켰고, LORA 파인튜닝도 붙임
- Normal ControlNet 활용(이게 Geomeury의 Derail을 파악하는 데 중요한 듯)
- geometry accuracy 유지에 도움이 될뿐만아니라, IP-Adapter 등을 활용해 이미지 input 활용에도 좋음
- 4-View Material Diffusion으로 생성한 뒤
- Text2Tex처럼 Adaptive View Selection으로 Inpainting
- UV에서 인페인팅이 아님 (흠..)
- Super Resolution 적용하여 2K로 Upscale
- Real-ESRGAN/ MultiDiffusion 기법
- 궁금한점. Mesh-Alignment를 어케 맞췄을까?
5. Model Adaptation
- 다양한 control들을 어떻게 주입시켰는지에 대한 설명
- Pass
6. Result
- 대충 최고다 라는 내용