صفحة المشروع • Arxiv • العرض التوضيحي • الأسئلة الشائعة • الاقتباس
Paint3D هو إطار توليلي جديد خشن إلى الخشن قادر على إنتاج خرائط ملمس عالية الدقة ، أقل من الإضاءة ، ومتنوعة 2K للأشكال ثلاثية الأبعاد غير المحصنة مشروطة على مدخلات النص أو الصور.
نقدم Paint3D ، وهو إطار توليد جديد من الخشنة إلى الخشنة القادر على إنتاج خرائط ملمس عالية الدقة وأقل إضاءة ومتنوعة 2K للشبكات ثلاثية الأبعاد غير المحصنة مشروطة بالمدخلات النصية أو الصور. يتمثل التحدي الرئيسي الذي تم تناوله في إنشاء قوام عالي الجودة دون معلومات إضاءة مضمنة ، والتي تسمح بإعادة إضاءة القوام أو إعادة تحريرها داخل خطوط أنابيب الرسومات الحديثة. لتحقيق ذلك ، تستفيد طريقتنا أولاً من نموذج نشر ثنائي الأبعاد مدرب مسبقًا لإنشاء صور مشروط العرض وأداء دمج نسيج متعدد الرؤية ، مما ينتج عنه خريطة ملمس أولية خشن. ومع ذلك ، نظرًا لأن الطرز ثنائية الأبعاد لا يمكن أن تمثل الأشكال ثلاثية الأبعاد بالكامل وتعطيل تأثيرات الإضاءة ، فإن خريطة الملمس الخشنة تعرض المناطق غير المكتملة والتحف المضيئة. لحل ذلك ، نقوم بتدريب نماذج الانتشار UV و UVHD منفصلة متخصصة في تحسين المعرفة من المناطق غير المكتملة وإزالة القطع الأثرية الإضاءة. من خلال هذه العملية الخشنة ، يمكن أن تنتج Paint3D قوامًا عالي الجودة للأشعة فوق البنفسجية التي تحافظ على الاتساق الدلالي أثناء كونها أقل إضاءة ، مما يتقدم بشكل ملحوظ في أحدث الكائنات في الكائنات ثلاثية الأبعاد.

يتم اختبار الرمز على 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 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 ، الانتشار المستقر والتحكم ، فإن الكود الخاص بنا يعترض جزئيًا منها. نهجنا مستوحى من MotionGpt و Michelangelo و Dreamfusion.
يتم توزيع هذا الرمز بموجب ترخيص Apache 2.0.
لاحظ أن الكود الخاص بنا يعتمد على المكتبات الأخرى ، بما في ذلك Pytorch3d و Pytorch Lightning ، ويستخدم مجموعات البيانات التي لكل منها تراخيص خاصة بها يجب اتباعها أيضًا.