หน้าโครงการ• Arxiv •การสาธิต•คำถามที่พบบ่อย•การอ้างอิง
Paint3D เป็นเฟรมเวิร์กกำเนิดแบบหยาบถึงระยะไกลที่มีความสามารถในการผลิตแผนที่พื้นผิว UV 2K ที่มีความละเอียดสูงแสงน้อยและมีความหลากหลายสำหรับการติดตั้งพื้นผิว UV 2K สำหรับตาข่าย 3 มิติที่ไม่มีพื้นผิวปรับอากาศบนข้อความหรือรูปภาพ
เรานำเสนอ Paint3D ซึ่งเป็นเฟรมเวิร์กที่เป็นนวนิยายที่มีความสามารถในการสร้างความละเอียดสูง, แสงน้อยและหลากหลายแผนที่พื้นผิว UV 2K สำหรับ 3D meshes 3D ที่ไม่มีพื้นผิวปรับอากาศบนข้อความหรือรูปภาพ ความท้าทายที่สำคัญที่กล่าวถึงคือการสร้างพื้นผิวที่มีคุณภาพสูงโดยไม่ต้องมีข้อมูลการส่องสว่างแบบฝังซึ่งช่วยให้พื้นผิวได้รับแสงใหม่หรือแก้ไขใหม่ภายในท่อกราฟิกสมัยใหม่ เพื่อให้บรรลุสิ่งนี้วิธีการของเราเป็นครั้งแรกที่ใช้รูปแบบการแพร่กระจาย 2D ที่รับรู้ล่วงหน้าที่ได้รับการฝึกอบรมล่วงหน้าเพื่อสร้างภาพมุมมองแบบมุมมองและดำเนินการฟิวชั่นพื้นผิวหลายมุมมองสร้างแผนที่พื้นผิวหยาบเริ่มต้น อย่างไรก็ตามเนื่องจากรุ่น 2D ไม่สามารถแสดงรูปร่าง 3 มิติได้อย่างเต็มที่และปิดการใช้งานเอฟเฟกต์แสงแผนที่พื้นผิวหยาบแสดงพื้นที่ที่ไม่สมบูรณ์และสิ่งประดิษฐ์ที่ส่องสว่าง ในการแก้ไขปัญหานี้เราได้ฝึกอบรมแบบจำลองการแพร่กระจายของรังสี UV และ UVHD ที่มีความเชี่ยวชาญสำหรับการปรับแต่งรูปร่างของพื้นที่ที่ไม่สมบูรณ์และการกำจัดสิ่งประดิษฐ์ที่ส่องสว่าง ด้วยกระบวนการที่หยาบถึงระยะไกลนี้ Paint3D สามารถผลิตพื้นผิว UV 2K คุณภาพสูงที่รักษาความสอดคล้องทางความหมายในขณะที่ไม่มีแสงน้อยและมีความสำคัญอย่างยิ่งที่ทันสมัยในการสร้างพื้นผิววัตถุ 3 มิติ

รหัสถูกทดสอบใน CentOS 7 ด้วย Pytorch 1.12.1 CUDA 11.6 ติดตั้ง โปรดทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่าสภาพแวดล้อม
# 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 Position 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
สำหรับจุดตรวจใน Civitai ที่มีไฟล์. safetensor เพียงไฟล์คุณสามารถใช้สคริปต์ต่อไปนี้เพื่อแปลงและใช้งานได้
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 }
}ต้องขอบคุณ Texture, Text2Tex, การแพร่กระจายที่เสถียรและ Controlnet รหัสของเรายืมมาจากพวกเขาบางส่วน วิธีการของเราได้รับแรงบันดาลใจจาก Motiongpt, Michelangelo และ Dreamfusion
รหัสนี้แจกจ่ายภายใต้ใบอนุญาต Apache 2.0
โปรดทราบว่ารหัสของเราขึ้นอยู่กับไลบรารีอื่น ๆ รวมถึง Pytorch3D และ Pytorch Lightning และใช้ชุดข้อมูลที่แต่ละคนมีใบอนุญาตของตนเองที่ต้องปฏิบัติตามด้วย