(İmaj kredisi: Gelecek)
Bununla birlikte, biraz daha 3B görünümlü (corgi’nin yaptığı gibi) bir 2B PNG’m olsaydı, muhtemelen daha iyi sonuçlar alırdım.
Shap-E’nin performansı
3D işlemeye metin veya görüntü yapıyor olsam da, Shap-E bir ton sistem kaynağı gerektiriyordu. RTX 3080 GPU ve Ryzen 9 5900X CPU ile ev masaüstümde, bir işlemeyi tamamlamak yaklaşık beş dakika sürdü. RTX 4090 dizüstü bilgisayar GPU’suna ve Intel Core i9-13980HX’e sahip bir Asus ROG Strix Scar 18’de iki ila üç dakika sürdü.
Ancak, Intel 8. Nesil U serisi CPU’ya ve tümleşik grafiklere sahip eski dizüstü bilgisayarımda metinden 3B’ye dönüştürmeyi denediğimde, bir saat sonra işlemenin yalnızca yüzde 3’ünü bitirmişti. Kısacası Shap-E kullanacaksanız Nvidia GPU’nuz olduğundan emin olun (Shap-E diğer marka GPU’ları desteklemez. Seçenekler CUDA ve CPU’dur.). Aksi takdirde, sadece çok uzun sürecek.
Betiklerden herhangi birini ilk kez çalıştırdığınızda, 2 ila 3 GB’lık modelleri indirmesi gerekeceğini ve aktarımın birkaç dakika sürebileceğini not etmeliyim.
Shap-E’yi Bilgisayara Kurma ve Çalıştırma
OpenAI bir Shap-E deposu yayınladı GitHub’anasıl çalıştırılacağına ilişkin bazı talimatlarla birlikte. Özel bir Python ortamı oluşturmak için Miniconda’yı kullanarak yazılımı Windows’ta yüklemeyi ve çalıştırmayı denedim. Ancak, özellikle gerekli bir kitaplık olan Pytorch3D’yi yükleyemediğim için sorunlarla karşılaşmaya devam ettim.
Ancak, WSL2’yi (Linux için Windows Alt Sistemi) kullanmaya karar verdiğimde birkaç güçlükle onu kurup çalıştırabildim. Bu nedenle, aşağıdaki talimatlar yerel Linux’ta veya Windows altında WSL2’de çalışacaktır. Onları WSL2’de test ettim.
1. Miniconda’yı yükleyin veya zaten sahip değilseniz, Linux’ta Anaconda. Bir indirme ve talimatları şu adreste bulabilirsiniz: Conda sitesi (yeni sekmede açılır) .
2. Shap-e adlı bir Conda ortamı oluşturun Python 3.9 yüklü (Python’un diğer sürümleri çalışabilir).
conda create -n shap-e python=3.9
3. Shape-e ortamını etkinleştirin .
conda activate shap-e
4. Pytorch’u yükleyin . Bir Nvidia grafik kartınız varsa, bu komutu kullanın.
conda install pytorch=1.13.0 torchvision pytorch-cuda=11.6 -c pytorch -c nvidia
Nvidia kartınız yoksa, CPU tabanlı bir kurulum yapmanız gerekir. Kurulum hızlı ama CPU ile gerçek 3B oluşturmayı işlemek benim deneyimime göre son derece yavaştı.
conda install pytorch torchvision torchaudio cpuonly -c pytorch
5. Pytorch’u oluşturun. Bu, işe yarayan bir kombinasyon bulmamın saatlerce sürdüğü alandır.
pip install "git+https://github.com/facebookresearch/pytorch3d.git"
Bir cuda hatası alırsanız, çalıştırmayı deneyin sudo apt nvidia-cuda-dev’i kurun ve ardından işlemi tekrarlamak.
6. Jupyter Notebook’u Kurun Conda’yı kullanarak.
conda install -c anaconda jupyter
7. şekil-e’yi klonla repo
git clone https://github.com/openai/shap-e
Git, klonladığınız klasörün altında bir şekil-e klasörü oluşturacaktır.
8. Şekil-e klasörüne girin r ve kurulumu çalıştır pip kullanarak.
cd shap-e
pip install -e .
9. Bir Jupyter Notebook Başlatın .
jupyter notebook
10. Yazılımın size gösterdiği localhost URL’sine gidin . http://localhost:8888?token= ve bir belirteç olacaktır. Bir klasör ve dosya dizini göreceksiniz.
(İmaj kredisi: Gelecek)
11. şekil-e/örneklere göz atın Ve üzerine çift tıklayın sample_text_to_3d.ipynb .
(İmaj kredisi: Tom’un Donanımı)
(İmaj kredisi: Tom’un Donanımı)
Farklı kod bölümleriyle bir not defteri açılacaktır.
12. Her bölümü vurgulayın Ve Çalıştır düğmesine tıklayın bir sonraki bölüme geçmeden önce tamamlanmasını bekliyor.
(İmaj kredisi: Tom’un Donanımı)
Bu işlemi ilk yaptığınızda biraz zaman alacaktır, çünkü birkaç büyük modeli yerel sürücünüze indirecektir. Her şey bittiğinde, tarayıcınızda bir köpekbalığının dört 3B modelini görmelisiniz. Örnekler klasöründe ayrıca dört adet .ply dosyası olacak ve bunları Paint 3D gibi 3B görüntüleme programlarında açabileceksiniz. Bunları ayrıca bir kullanarak STL dosyalarına dönüştürebilirsiniz. çevrimiçi dönüştürücü (yeni sekmede açılır) .
İstemi değiştirmek ve tekrar denemek istiyorsanız. Tarayıcınızı yenileyin ve bilgi istemi bölümünde “köpekbalığı” ifadesini başka bir şeyle değiştirin. Ayrıca, boyutu 64’ten daha yüksek bir sayıya değiştirirseniz, daha yüksek çözünürlüklü bir görüntü elde edersiniz.
(İmaj kredisi: Tom’un Donanımı)
13. sample_image_to_3d.ipynb dosyasına çift tıklayın image-to-3d komut dosyasını deneyebilmeniz için örnekler klasörüne yeniden yerleştirin.
14. Her bölümü vurgulayın Ve çalıştıra tıkla .
(İmaj kredisi: Gelecek)
Sonunda, varsayılan olarak, dört küçük corgis görüntüsü elde edeceksiniz.
(İmaj kredisi: Gelecek)
Ancak, animasyonlu GIF’lerin yanı sıra PLY dosyalarının çıktısını alabilmesi için aşağıdaki kodu son not defteri bölümüne eklemenizi öneririm.
from shap_e.util.notebooks import decode_latent_mesh
for i, latent in enumerate(latents):
with open(f'example_mesh_i.ply', 'wb') as f:
decode_latent_mesh(xm, latent).tri_mesh().write_ply(f)
15. Görüntü konumunu değiştirin görüntüyü değiştirmek için 3. bölümde Ayrıca, toplu iş boyutunu 1 olarak değiştirmenizi öneririm, böylece yalnızca bir görüntü oluşturur. Boyutu 128 veya 256 olarak değiştirmek size daha yüksek çözünürlüklü bir görüntü verecektir.
(İmaj kredisi: Gelecek)
16. Aşağıdaki python betiğini oluşturun Ve text-to-3d.py olarak kaydedin veya başka bir isim. Komut satırındaki metin istemlerine dayalı olarak PLY dosyaları oluşturmanıza olanak tanır.
import torch
from shap_e.diffusion.sample import sample_latents
from shap_e.diffusion.gaussian_diffusion import diffusion_from_config
from shap_e.models.download import load_model, load_config
from shap_e.util.notebooks import create_pan_cameras, decode_latent_images, gif_widget
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
xm = load_model('transmitter', device=device)
model = load_model('text300M', device=device)
diffusion = diffusion_from_config(load_config('diffusion'))
batch_size = 1
guidance_scale = 15.0
prompt = input("Enter prompt: ")
filename = prompt.replace(" ","_")
latents = sample_latents(
batch_size=batch_size,
model=model,
diffusion=diffusion,
guidance_scale=guidance_scale,
model_kwargs=dict(texts=[prompt] * batch_size),
progress=True,
clip_denoised=True,
use_fp16=True,
use_karras=True,
karras_steps=64,
sigma_min=1e-3,
sigma_max=160,
s_churn=0,
)
render_mode="nerf" # you can change this to 'stf'
size = 64 # this is the size of the renders; higher values take longer to render.
from shap_e.util.notebooks import decode_latent_mesh
for i, latent in enumerate(latents):
with open(f'filename_i.ply', 'wb') as f:
decode_latent_mesh(xm, latent).tri_mesh().write_ply(f)
17. Koşmak python text-to-3d.py Ve isteminizi girin program istediğinde
Bu size bir PLY çıktısı verir, ancak bir GIF vermez. Python’u biliyorsanız, onunla daha fazlasını yapmak için betiği değiştirebilirsiniz.
Popular Articles
Latest Articles