Halaman Proyek • Arxiv • Demo • FAQ • Kutipan
Paint3D adalah kerangka generatif kasar-ke-halus yang mampu menghasilkan peta tekstur UV 2K resolusi tinggi, tanpa pencahayaan, dan beragam 2K untuk input 3D 3D yang tidak ditukar yang dikondisikan pada teks atau input gambar.
Kami menyajikan Paint3D, sebuah kerangka generatif kasar-ke-halus yang mampu menghasilkan peta tekstur UV 2K UV resolusi tinggi, tanpa pencahayaan, dan beragam 2K untuk input teks atau gambar yang dikondisikan pada teks atau gambar. Tantangan utama yang dibahas adalah menghasilkan tekstur berkualitas tinggi tanpa informasi pencahayaan tertanam, yang memungkinkan tekstur untuk ditata ulang atau diedit ulang di dalam jaringan pipa grafis modern. Untuk mencapai hal ini, metode kami pertama-tama memanfaatkan model difusi 2D yang pra-terlatih untuk menghasilkan gambar-gambar-view-conditional dan melakukan fusi tekstur multi-view, menghasilkan peta tekstur kasar awal. Namun, karena model 2D tidak dapat sepenuhnya mewakili bentuk 3D dan menonaktifkan efek pencahayaan, peta tekstur kasar menunjukkan area yang tidak lengkap dan artefak iluminasi. Untuk menyelesaikan ini, kami melatih model inpainting UV dan UVHD yang terpisah yang berspesialisasi untuk penyempurnaan yang sadar bentuk dari area yang tidak lengkap dan penghapusan artefak iluminasi. Melalui proses kasar-ke-halus ini, Paint3D dapat menghasilkan tekstur UV 2K berkualitas tinggi yang mempertahankan konsistensi semantik sambil menjadi tanpa pencahayaan, secara signifikan memajukan canggih dalam tekstur objek 3D.

Kode ini diuji pada Centos 7 dengan Pytorch 1.12.1 CUDA 11.6 diinstal. Ikuti langkah -langkah berikut untuk menyiapkan lingkungan.
# 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
Untuk controlNet posisi UV, Anda dapat menemukannya di sini.
Untuk menggunakan model ControlNet lainnya, silakan unduh dari halaman Face Hugging, dan ubah jalur ControlNet di file Config.
Kemudian, Anda dapat menghasilkan tekstur kasar melalui:
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
dan tekstur halus melalui:
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
Secara opsional, Anda juga dapat menghasilkan hasil tekstur hanya dengan ControlNet posisi UV, misalnya:
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
Dengan kondisi gambar, Anda dapat menghasilkan tekstur kasar melalui:
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
dan tekstur halus melalui:
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
Untuk pos pemeriksaan di Civitai dengan hanya file .safetensor, Anda dapat menggunakan skrip berikut untuk mengonversi dan menggunakannya.
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 }
}Berkat tekstur, text2tex, difusi yang stabil, dan controlNet, kode kami sebagian meminjam dari mereka. Pendekatan kami terinspirasi oleh MotionGpt, Michelangelo dan Dreamfusion.
Kode ini didistribusikan di bawah lisensi Apache 2.0.
Perhatikan bahwa kode kami tergantung pada perpustakaan lain, termasuk Pytorch3D dan Pytorch Lightning, dan menggunakan set data yang masing -masing memiliki lisensi masing -masing yang juga harus diikuti.