ديل ديكاتور ، إيتاي لانج ، كفر أبرمان ، رنا هانوكا



في هذا العمل ، نقوم بتطوير الفرشاة ثلاثية الأبعاد ، وهي تقنية لتنسيق المناطق الدلالية المحلية تلقائيًا على الشبكات عبر أوصاف النص. تم تصميم طريقتنا للعمل مباشرة على الشبكات ، وإنتاج خرائط الملمس التي تتكامل بسلاسة في خطوط أنابيب الرسومات القياسية. نحن نختار في وقت واحد إنتاج خريطة توطين (لتحديد منطقة التحرير) وخريطة نسيج تتوافق معها. هذا النهج التآزري يحسن جودة كل من التوطين والنمط. لتعزيز تفاصيل ودقة المنطقة المحكم ، فإننا نستفيد من مراحل متعددة من نموذج الانتشار المتتالي للإشراف على تقنية التحرير المحلية لدينا مع أجهزة التحرير التوليدية المستفادة من الصور في قرارات مختلفة. إن أسلوبنا ، يشار إليه باسم تقطير الدرجات المتتالية (CSD) ، في وقت واحد يقطر الدرجات في قرارات متعددة بطريقة متتالية ، مما يتيح السيطرة على كل من التفاصيل والفهم العالمي للإشراف. نوضح فعالية فرشاة الطلاء ثلاثية الأبعاد للملمس محليًا مجموعة متنوعة من الأشكال داخل المناطق الدلالية المختلفة.
للاطلاع على عرض تجريبي لخسارة التقطير المتتالية (CSD) ، تحقق من دفتر الملاحظات الذي يطبق CSD على توليد الصور وتحرير الصور. تمكننا CSD من الإشراف على التحسين لدينا مع مراحل متعددة متتالية من نموذج الانتشار بدلاً من مرحلة الأساس المستخدمة في SDS القياسية. نقوم بتقطير الدرجات عبر مراحل متعددة من نموذج الانتشار المتتالي في وقت واحد من أجل الاستفادة من كل من الوعي العالمي للمرحلة الأولى والمستوى الأعلى من التفاصيل الواردة في المراحل اللاحقة.

إذا كان لديك أقل من 48 جيجابايت من ذاكرة GPU ، فلا يزال بإمكانك تشغيل الكود ، راجع القسم الخاص بتحسين الذاكرة لمزيد من التفاصيل.
أولا قم بإنشاء بيئة كوندا:
conda create -n "3d-paintbrush" python=3.10
وتنشيطه مع:
conda activate 3d-paintbrush
بعد ذلك ، قم بتثبيت الحزم المطلوبة عن طريق تشغيل البرنامج النصي للتثبيت. تأكد من تشغيل هذا البرنامج النصي مع الوصول إلى وحدة معالجة الرسومات .
bash ./install_environment.sh
تعليمات من DeepFloyd إذا:
huggingface_hub pip install huggingface_hub --upgrade
قم بتشغيل وظيفة تسجيل الدخول في قذيفة Python
from huggingface_hub import login
login()
وأدخل رمز الوصول إلى محور الوجه الخاص بك.
لاستخدام نماذجنا التي تم تدريبنا مسبقًا ، قم بتنزيل كل من مجلدات trained_models ومجلدات inverse_map_cache من هنا وإضافتها تحت مجلد البيانات لإنشاء بنية الدليل التالية:
├── data
│ ├── inverse_map_cache
│ ├── trained_models
│ ├── hand.obj
...
│ ├── spot.obj
لتشغيل النماذج التي تم تدريبها مسبقًا ، استخدم الأوامر أدناه. سيتم حفظ النتائج في results/[name-of-mesh]/[name-of-edit]/renders/infernce.png .
بقعة:
python src/main.py --config_path demo/spot/gold_chain_necklace.yaml --log.inference true --log.model_path ./data/trained_models/spot/gold_chain_necklace.pth
python src/main.py --config_path demo/spot/heart-shaped_sunglasses.yaml --log.inference true --log.model_path ./data/trained_models/spot/heart-shaped_sunglasses.pth
python src/main.py --config_path demo/spot/colorful_crochet_hat.yaml --log.inference true --log.model_path ./data/trained_models/spot/colorful_crochet_hat.pth






شخص:
python src/main.py --config_path demo/person/tie-dye_apron.yaml --log.inference true --log.model_path ./data/trained_models/person/tie-dye_apron.pth
python src/main.py --config_path demo/person/colorful_polo_shirt.yaml --log.inference true --log.model_path ./data/trained_models/person/colorful_polo_shirt.pth
python src/main.py --config_path demo/person/superman_chest_emblem.yaml --log.inference true --log.model_path ./data/trained_models/person/superman_chest_emblem.pth






Lego Minfigure:
python src/main.py --config_path demo/lego_minifig/barcelona_jersey.yaml --log.inference true --log.model_path ./data/trained_models/lego_minifig/barcelona_jersey.pth
python src/main.py --config_path demo/lego_minifig/blue_denim_overalls.yaml --log.inference true --log.model_path ./data/trained_models/lego_minifig/blue_denim_overalls.pth
python src/main.py --config_path demo/lego_minifig/red_bow_tie.yaml --log.inference true --log.model_path ./data/trained_models/lego_minifig/red_bow_tie.pth






يُسلِّم:
python src/main.py --config_path demo/hand/fancy_gold_watch.yaml --log.inference true --log.model_path ./data/trained_models/hand/fancy_gold_watch.pth


لإعادة إنتاج النتائج من الورقة من نقطة الصفر ، ما عليك سوى تمرير ملف تكوين تجريبي محدد مسبقًا. سيتم حفظ النتائج في results/[name-of-mesh]/[name-of-edit] .
بقعة:
python src/main.py --config_path demo/spot/gold_chain_necklace.yaml
python src/main.py --config_path demo/spot/heart-shaped_sunglasses.yaml
python src/main.py --config_path demo/spot/colorful_crochet_hat.yaml
شخص:
python src/main.py --config_path demo/person/tie-dye_apron.yaml
python src/main.py --config_path demo/person/colorful_polo.yaml
python src/main.py --config_path demo/person/superman_chest_emblem.yaml
Lego minifigure:
python src/main.py --config_path demo/lego_minifig/barcelona_jersey.yaml
python src/main.py --config_path demo/lego_minifig/blue_denim_overalls.yaml
python src/main.py --config_path demo/lego_minifig/red_bow_tie.yaml
يُسلِّم:
python src/main.py --config_path demo/hand/fancy_gold_watch.yaml
لتشغيل الأمثلة الخاصة بك ، يمكنك إنشاء ملفات التكوين الخاصة بك وتمرير تلك كما فعلت في القسم السابق. بالإضافة إلى ذلك ، يمكنك بدلاً من ذلك تمرير قيم لأي من الحقول في src/configs/train_config كوسائط لسطر الأوامر. على سبيل المثال ، لتشغيل مثال اليد دون تمرير ملف التكوين ، يمكنك الاتصال:
python src/main.py --log.exp_dir results/hand/fancy_gold_watch --mesh.path ./data/spot.obj --guidance.object_name "hand" --guidance.style "fancy gold" --guidance.edit "watch"
إذا لم يكن لديك إمكانية الوصول إلى وحدة معالجة الرسومات 48 جيجابايت ، فيمكنك ...
cpu_offload إلى True في src/configs/guidance_config.py . سيؤدي ذلك إلى تقليل استخدام الذاكرة بشكل كبير ، ولكنه يأتي على حساب السرعة.batch_size إما باستخدام وسيطة سطر الأوامر --optim.batch_size أو في ملف تكوين مخصص. في حين أن هذا يقلل من استخدام الذاكرة ، إلا أنه يمكن أن يؤثر على الدقة.sample_points إلى True وضبط mlp_batch_size ). في حين أن هذا يقلل من استخدام الذاكرة ، إلا أنه يمكن أن يؤثر على الدقة.batched_sd إلى False ). سيؤدي ذلك إلى تقليل استخدام الذاكرة ، ولكنه يأتي على حساب السرعة. تعتمد قاعدة كودنا على القمصان الكامنة/الكامنة ، ويتم تنظيم رمز التوجيه CSD الخاص بنا بتنسيق وحدات إرشاد Threestudio. نشكر هؤلاء المؤلفين على عملهم المذهل.
إذا وجدت هذا الرمز مفيدًا لبحثك ، فيرجى الاستشهاد بفرشاة الطلاء ثلاثية الأبعاد: الأسلوب المحلي للأشكال ثلاثية الأبعاد مع تقطير الدرجات المتتالية.
@article{decatur2023paintbrush,
author = {Decatur, Dale and Lang, Itai and Aberman, Kfir and Hanocka, Rana},
title = {3D Paintbrush: Local Stylization of 3D Shapes with Cascaded Score Distillation},
journal = {arXiv},
year = {2023}
}