Страница проекта • arxiv • Демонстрация • FAQ • Стирание
Paint3D-это новая грубая генеративная структура, которая способна создавать карты с высоким разрешением, без освещения и разнообразные 2K УФ-текстуры для нетекстурированных трехмерных сетей, обусловленных текстами или входами в изображение.
Мы представляем Paint3D, новую грубую генеративную структуру, которая способна создавать карты с высоким разрешением, без освещения и разнообразные 2K УФ-текстуры для нетекстурированных трехмерных сетей, кондиционированных на входах текста или изображения. Ключевой задачей является генерирование высококачественных текстур без встроенной информации о покрытии, которая позволяет переосмысленным или отредактированным текстурам в современных графических трубопроводах. Чтобы достичь этого, наш метод сначала использует предварительно обученную 2D-диффузионную модель с углубленной глубиной, чтобы создать кондиционерные изображения и выполнить слияние с несколькими просветными текстурами, создавая начальную грубую карту текстуры. Однако, поскольку 2D -модели не могут полностью представлять 3D -формы и отключить эффекты освещения, грубая карта текстур демонстрирует неполные области и артефакты освещения. Чтобы решить это, мы обучаем отдельные модели ультрафиолетового ультрафиолета и диффузионные модели UVHD, специализирующиеся на уточнении неполных областей и удалении артефактов освещения. Благодаря этому грубому процессу, Paint3D может производить высококачественные 2K УФ-текстуры, которые поддерживают семантическую консистенцию, при этом без освещения, значительно продвигая современные в текстурирующих трехмерных объектах.

Код тестируется на 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, пожалуйста, загрузите их со страницы Gugging 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
Для контрольных точек в 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 }
}Благодаря текстуре, Text2tex, стабильной диффузии и ControlNet, наш код частично заимствует у них. Наш подход вдохновлен MotionGPT, Michelangelo и Dreamfusion.
Этот код распределен по лицензии Apache 2.0.
Обратите внимание, что наш код зависит от других библиотек, включая Pytorch3d и Pytorch Lightning, и использует наборы данных, каждый из которых имеет свои соответствующие лицензии, которые также должны соблюдать.