프로젝트 페이지 • ARXIV • 데모 • FAQ • 인용
Paint3D는 텍스트 또는 이미지 입력에 조절 된 텍스분없는 3D 메시에 대한 고해상도, 조명이없는 및 다양한 2K UV 텍스처 맵을 생성 할 수있는 새로운 거친 생성 프레임 워크입니다.
우리는 텍스트 또는 이미지 입력에 조절 된 텍스분이없는 3D 메시에 대한 고해상도, 조명이없고 다양한 2K UV 텍스처 맵을 생성 할 수있는 새로운 거친-미래의 생성 프레임 워크 인 Paint3D를 제시합니다. 언급 된 주요 과제는 내장 된 조명 정보가없는 고품질 텍스처를 생성하는 것입니다. 이는 현대 그래픽 파이프 라인 내에서 텍스처를 재조정하거나 재 편집 할 수 있습니다. 이를 달성하기 위해, 우리의 방법은 먼저 미리 훈련 된 깊이 인식 2D 확산 모델을 활용하여 뷰 조건 이미지를 생성하고 멀티 뷰 텍스처 퓨전을 수행하여 초기 굵은 텍스처 맵을 생성합니다. 그러나 2D 모델은 3D 모양을 완전히 나타내고 조명 효과를 비활성화 할 수 없으므로 거친 텍스처 맵은 불완전한 영역과 조명 인공물을 나타냅니다. 이를 해결하기 위해 불완전한 영역의 형상 인식 개선 및 조명 아티팩트 제거를 위해 특화된 별도의 UV 인 페인팅 및 UVHD 확산 모델을 훈련시킵니다. 이 거친-마감 프로세스를 통해 Paint3D는 조명이없는 상태에서 의미 론적 일관성을 유지하는 고품질 2K UV 텍스처를 생성 할 수 있으며, 텍스처링 3D 객체의 최첨단을 크게 발전시킬 수 있습니다.

이 코드는 Pytorch 1.12.1 Cuda 11.6이 설치된 Centos 7에서 테스트됩니다. 다음 단계를 따라 환경을 설정하십시오.
# install python environment
conda env create -f environment.yaml
# install kaolin
pip install kaolin==0.13.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/{TORCH_VER}_{CUDA_VER}.html
UV-Position Controlnet의 경우 여기에서 찾을 수 있습니다.
다른 Controlnet 모델을 사용하려면 Hugging Face 페이지에서 다운로드하고 구성 파일에서 ControlNet 경로를 수정하십시오.
그런 다음 다음을 통해 거친 질감을 생성 할 수 있습니다.
python pipeline_paint3d_stage1.py
--sd_config controlnet/config/depth_based_inpaint_template.yaml
--render_config paint3d/config/train_config_paint3d.py
--mesh_path demo/objs/Suzanne_monkey/Suzanne_monkey.obj
--outdir outputs/stage1
그리고 다음을 통해 정제 된 텍스처
python pipeline_paint3d_stage2.py
--sd_config controlnet/config/UV_based_inpaint_template.yaml
--render_config paint3d/config/train_config_paint3d.py
--mesh_path demo/objs/Suzanne_monkey/Suzanne_monkey.obj
--texture_path outputs/stage1/res-0/albedo.png
--outdir outputs/stage2
선택적으로 UV 위치 Controlnet으로 만 텍스처 결과를 생성 할 수도 있습니다.
python pipeline_UV_only.py
--sd_config controlnet/config/UV_gen_template.yaml
--render_config paint3d/config/train_config_paint3d.py
--mesh_path demo/objs/teapot/scene.obj
--outdir outputs/test_teapot
이미지 조건으로 다음을 통해 거친 질감을 생성 할 수 있습니다.
python pipeline_paint3d_stage1.py
--sd_config controlnet/config/depth_based_inpaint_template.yaml
--render_config paint3d/config/train_config_paint3d.py
--mesh_path demo/objs/Suzanne_monkey/Suzanne_monkey.obj
--prompt " "
--ip_adapter_image_path demo/objs/Suzanne_monkey/img_prompt.png
--outdir outputs/img_stage1
그리고 다음을 통해 정제 된 텍스처
python pipeline_paint3d_stage2.py
--sd_config controlnet/config/UV_based_inpaint_template.yaml
--render_config paint3d/config/train_config_paint3d.py
--mesh_path demo/objs/Suzanne_monkey/Suzanne_monkey.obj
--texture_path outputs/img_stage1/res-0/albedo.png
--prompt " "
--ip_adapter_image_path demo/objs/Suzanne_monkey/img_prompt.png
--outdir outputs/img_stage2
.safetensor 파일 만있는 Civitai의 검문소의 경우 다음 스크립트를 사용하여 변환 및 사용할 수 있습니다.
python tools/convert_original_stable_diffusion_to_diffusers.py
--checkpoint_path YOUR_LOCAL.safetensors
--dump_path model_cvt/
--from_safetensors
@inproceedings { zeng2024paint3d ,
title = { Paint3d: Paint anything 3d with lighting-less texture diffusion models } ,
author = { Zeng, Xianfang and Chen, Xin and Qi, Zhongqi and Liu, Wen and Zhao, Zibo and Wang, Zhibin and Fu, Bin and Liu, Yong and Yu, Gang } ,
booktitle = { Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition } ,
pages = { 4252--4262 } ,
year = { 2024 }
}텍스처, Text2Tex, 안정적인 확산 및 Controlnet 덕분에 우리의 코드는 부분적으로 차용합니다. 우리의 접근 방식은 MotionGpt, Michelangelo 및 DreamFusion에서 영감을 얻었습니다.
이 코드는 Apache 2.0 라이센스에 따라 배포됩니다.
당사의 코드는 Pytorch3d 및 Pytorch Lightning을 포함한 다른 라이브러리에 따라 다르며 각각도 라이센스를 따라야하는 데이터 세트를 사용합니다.