Dale Decatur, Itai Lang, Kfir Aberman, Rana Hanocka



Dalam karya ini kami mengembangkan kuas 3D, teknik untuk secara otomatis mengirim tekstur daerah semantik lokal pada jerat melalui deskripsi teks. Metode kami dirancang untuk beroperasi langsung pada jerat, memproduksi peta tekstur yang berintegrasi dengan mulus ke dalam pipa grafis standar. Kami memilih untuk secara bersamaan menghasilkan peta lokalisasi (untuk menentukan wilayah edit) dan peta tekstur yang sesuai dengannya. Pendekatan sinergis ini meningkatkan kualitas lokalisasi dan stylization. Untuk meningkatkan detail dan resolusi area bertekstur, kami memanfaatkan beberapa tahap model difusi bertingkat untuk mengawasi teknik pengeditan lokal kami dengan prior generatif yang dipelajari dari gambar pada resolusi yang berbeda. Teknik kami, yang disebut sebagai Distilasi Skor Cascaded (CSD), secara bersamaan menyaring skor pada berbagai resolusi dengan cara bertingkat, memungkinkan kontrol atas granularitas dan pemahaman global tentang pengawasan. Kami menunjukkan efektivitas kuas 3D untuk tekstur lokal berbagai bentuk di berbagai daerah semantik.
Untuk melihat demo kehilangan Distilasi Skor Cascaded (CSD), lihat buku catatan ini yang menerapkan CSD untuk pembuatan gambar dan pengeditan gambar. CSD memungkinkan kami untuk mengawasi optimasi kami dengan beberapa tahap bertingkat dari model difusi alih -alih hanya tahap dasar yang digunakan dalam SDS standar. Kami menyaring skor di berbagai tahap model difusi bertingkat secara bersamaan untuk memanfaatkan kesadaran global dari tahap pertama dan tingkat detail yang lebih tinggi yang terkandung dalam tahap selanjutnya.

Jika Anda memiliki kurang dari 48 GB memori GPU, Anda masih dapat menjalankan kode, lihat bagian optimasi memori untuk detail lebih lanjut.
Pertama -tama buat lingkungan Conda:
conda create -n "3d-paintbrush" python=3.10
dan aktifkan dengan:
conda activate 3d-paintbrush
Selanjutnya instal paket yang diperlukan dengan menjalankan skrip instal. Pastikan untuk menjalankan skrip ini dengan akses ke GPU .
bash ./install_environment.sh
Instruksi dari Deepfloyd jika:
huggingface_hub pip install huggingface_hub --upgrade
Jalankan fungsi login dalam shell python
from huggingface_hub import login
login()
Dan masukkan token akses hub wajah pelukan Anda.
Untuk menggunakan model pra-terlatih kami, unduh folder trained_models dan inverse_map_cache dari sini dan tambahkan di bawah folder data untuk membuat struktur direktori berikut:
├── data
│ ├── inverse_map_cache
│ ├── trained_models
│ ├── hand.obj
...
│ ├── spot.obj
Untuk menjalankan model pra-terlatih, gunakan perintah di bawah ini. Hasil akan disimpan di results/[name-of-mesh]/[name-of-edit]/renders/infernce.png .
Titik:
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






Orang:
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






Tangan:
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


Untuk mereproduksi hasil dari kertas dari awal, cukup lulus file konfigurasi demo yang telah ditentukan. Hasil akan disimpan di results/[name-of-mesh]/[name-of-edit] .
Titik:
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
Orang:
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
Tangan:
python src/main.py --config_path demo/hand/fancy_gold_watch.yaml
Untuk menjalankan contoh Anda sendiri, Anda dapat membuat file konfigurasi Anda sendiri dan meneruskannya seperti yang dilakukan di bagian sebelumnya. Selain itu, Anda dapat memberikan nilai untuk salah satu bidang di src/configs/train_config sebagai argumen baris perintah. Misalnya, untuk menjalankan contoh tangan tanpa mengirimkan file konfigurasi, Anda dapat menelepon:
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"
Jika Anda tidak memiliki akses ke GPU 48 GB, Anda dapat ...
cpu_offload ke True di src/configs/guidance_config.py . Ini akan secara signifikan mengurangi penggunaan memori, tetapi datang dengan biaya kecepatan.batch_size baik dengan argumen baris perintah --optim.batch_size atau dalam file konfigurasi khusus. Meskipun ini mengurangi penggunaan memori, ini dapat memengaruhi akurasi.sample_points ke True dan sesuaikan mlp_batch_size ). Meskipun ini mengurangi penggunaan memori, ini dapat memengaruhi akurasi.batched_sd ke False ). Ini akan mengurangi penggunaan memori, tetapi datang dengan biaya kecepatan. Basis kode kami didasarkan pada laten-nerf/laten-cat dan kode panduan CSD kami disusun dalam format modul bimbingan Threestudio. Kami berterima kasih kepada para penulis ini atas pekerjaan mereka yang luar biasa.
Jika Anda menemukan kode ini bermanfaat untuk penelitian Anda, silakan kutip kertas 3D Paper kami: Stylization lokal bentuk 3D dengan distilasi skor bertingkat.
@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}
}