项目页面•ARXIV•演示•常见问题•引文
Paint3D是一种新颖的粗到1个生成框架,能够生成以文本或图像输入为条件的不介入的3D网格的高分辨率,无照明和不同的2K UV纹理图。
我们提出了Paint3D,这是一种新颖的粗到精细的生成框架,能够生成基于文本或图像输入条件的未纹理的3D网格的高分辨率,无照明和不同的2K UV纹理图。所解决的关键挑战是在没有嵌入的照明信息的情况下生成高质量的纹理,这使得纹理可以在现代图形管道中重新注射或重新编辑。为此,我们的方法首先利用预训练的深度感知2D扩散模型来生成视图条件图像并执行多视图纹理融合,并产生初始的粗纹理图。但是,由于2D模型无法完全代表3D形状和禁用照明效果,因此粗纹理图显示出不完整的区域和照明伪像。为了解决这个问题,我们训练专门用于不完整区域的形状感知细化和去除照明伪像的单独的紫外线和UVHD扩散模型。通过这种粗到最新的过程,Paint3D可以产生高质量的2K紫外线纹理,这些纹理保持语义一致性,同时又无光照明,从而在纹理3D物体方面显着推进了最新的。

该代码在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位置控制网,您可以在这里找到它。
要使用其他ControlNet模型,请从“拥抱面”页面下载它,并修改配置文件中的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,稳定的扩散和控制网,我们的代码部分向其借来。我们的方法灵感来自MotionGpt,Michelangelo和DreamFusion。
此代码是根据Apache 2.0许可证分配的。
请注意,我们的代码取决于其他库,包括Pytorch3d和Pytorch Lightning,并使用每个数据集,每个数据集都具有自己的各自许可,也必须遵循。