Página del proyecto • ARXIV • Demo • Preguntas frecuentes • Cita
Paint3D es un nuevo marco generativo grueso a fino que es capaz de producir mapas de textura UV de 2K de alta resolución, sin iluminación y diversos para mallas 3D sin textura condicionadas con entradas de texto o imagen.
Presentamos Paint3D, un nuevo marco generativo grueso a fino que es capaz de producir mapas de textura UV de 2K de alta resolución, sin iluminación y diversos para mallas 3D sin textura condicionadas en entradas de texto o imágenes. El desafío clave abordado es generar texturas de alta calidad sin información de iluminación integrada, lo que permite que las texturas se reduzcan o reediten dentro de las tuberías gráficas modernas. Para lograr esto, nuestro método primero aprovecha un modelo de difusión 2D con consumo de profundidad previamente capacitado para generar imágenes condicionales de visión y realizar fusiones de textura de visión múltiple, produciendo un mapa de textura gruesa inicial. Sin embargo, como los modelos 2D no pueden representar completamente formas 3D y deshabilitar los efectos de iluminación, el mapa de textura gruesa exhibe áreas incompletas y artefactos de iluminación. Para resolver esto, entrenamos modelos de entrada y difusión UV separados para el refinamiento de áreas incompletas y la eliminación de artefactos de iluminación. A través de este proceso grueso a fino, Paint3D puede producir texturas UV de 2K de alta calidad que mantienen la consistencia semántica al tiempo que no tienen iluminación, avanzando significativamente el estado del arte en los objetos 3D de textura.

El código se prueba en CentOS 7 con Pytorch 1.12.1 CUDA 11.6 instalado. Siga los siguientes pasos para configurar el entorno.
# 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
Para UV-Position Controlnet, puede encontrarlo aquí.
Para usar los otros modelos Controlnet, descargártelo desde la página de abrazos de abrazos y modifique la ruta Controlnet en el archivo de configuración.
Luego, puede generar textura gruesa a través de:
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
y la textura refinada a través de:
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
Opcionalmente, también puede generar resultados de textura con UV Position Controlnet solamente, por ejemplo:
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
Con una condición de imagen, puede generar textura gruesa a través de:
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
y la textura refinada a través de:
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
Para los puntos de control en Civitai con solo un archivo .Safetensor, puede usar el siguiente script para convertirlos y usarlos.
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 }
}Gracias a la textura, text2tex, difusión estable y control de control, nuestro código está tomando prestado parcialmente de ellos. Nuestro enfoque está inspirado en Motiongpt, Michelangelo y Dreamfusion.
Este código se distribuye bajo una licencia Apache 2.0.
Tenga en cuenta que nuestro código depende de otras bibliotecas, incluidas Pytorch3d y Pytorch Lightning, y utiliza conjuntos de datos que tienen sus propias licencias respectivas que también deben seguirse.