Rehber Intel ARC ekran kartları ile Stable Diffusion WebUI kurulumu

SoteMix




Notlar:

Veri Tipleri (Data Type):

BF16 genel olarak FP16'dan daha hızlı.

Backend:​

Diffusers Backend, Original Backend'e %10-%25 daha hızlı.

Linux üzerinde ipexrun hataları:

Eğer başlangıçta rastgele hatalar alıyorsanız büyük ihtimalle ipexrun kaynaklıdır.
Ipexrun'ı devre dışı bırakmak için DISABLE_IPEXRUN=1 export edin.


iGPU hataları:

UHD veya Iris Xe gibi iGPU'nuz varsa Aygıt Yöneticisi'nden devre dışı bırakn.


Windows Kurulumu
Hazırlıklar:
  • Intel GPU Sürücüsü indirip kurun.
  • Git indirip kurun.
  • Python 3.10 veya 3.11 indirip kurun.
  • SD.Next'i kurmak istediğiniz klasörde CMD açın.
SD.Next Kullanımı:
Github'dan SD.Next'i indirelim:
Bash:
git clone https://github.com/vladmandic/automatic

Daha sonra SD.Next'in bulunduğu klasöre girelim:
Bash:
cd automatic

Daha sonra aşağıdaki komut ile SD.Next'i çalıştırabilirsiniz:
Bash:
.\webui.bat --use-ipex
Not: İlk başlatmada internetten gerekli kütüphaneleri indirdiğinden biraz zaman alacaktır.






Linux ve WSL Kurulumu
Intel OneAPI ve Compute Runtime Kurulumu:

Ubuntu:
Linux 6.2 kernelinden daha yeni bir kernele ihtiyacımız olduğundan en düşük Ubuntu 23.04 versiyonunu kullanmamız gerek.
Daha eski bir Ubuntu versiyonu kullanıyorsanız kernelinizi Linux 6.2 veya daha yeni bir versiyona güncellemeniz gerek.
Not: WSL için kernel güncellemek gerekli değil.


Daha sonra gerekli paket listesini sisteme ekleyelim:
Bash:
sudo apt update && sudo apt install -y ca-certificates wget gpg
Bash:
wget -qO - https://repositories.intel.com/gpu/intel-graphics.key | sudo gpg --dearmor --output /usr/share/keyrings/intel-graphics.gpg
Bash:
echo "deb [arch=amd64,i386 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/gpu/ubuntu jammy client" | sudo tee /etc/apt/sources.list.d/intel-gpu-jammy.list
Bash:
sudo apt update && sudo apt upgrade -y

Daha sonra gerekli paketleri kuralım:
Bash:
sudo apt install intel-opencl-icd intel-level-zero-gpu level-zero git python3-pip python3-venv libgl1 libglib2.0-0 libgomp1 libjemalloc-dev


Arch Linux:
Arch Linux için gerekli paketleri kuralım:
Bash:
pacman -S intel-compute-runtime level-zero-headers level-zero-loader git python-pip python-virtualenv jemalloc



SD.Next Kullanımı:
Github'dan SD.Next'i indirelim:
Bash:
git clone https://github.com/vladmandic/automatic

Daha sonra SD.Next'in bulunduğu klasöre girelim:
Bash:
cd automatic

Daha sonra aşağıdaki komut ile SD.Next'i çalıştırabilirsiniz:
Bash:
./webui.sh --use-ipex
Not: İlk başlatmada internetten gerekli kütüphaneleri indirdiğinden biraz zaman alacaktır.
 
Son düzenleme:
@38life python3-venv paketi Ubuntu ile varsayılan olarak gelmiyormuş demek ki. Rehbere python3-venv paketini de ekledim.
Paketi sudo apt install python3-venv komutu ile kurabilirsiniz.
Kurduktan sonra automatic klasöründe venv klasörü varsa ilk önce onu silin, hatalı venv sorun çıkarmasın.

Ek olarak ipexrun kullanabilmek için numactl paketini sudo apt install numactl ile kurun, bunu da rehbere ekliyorum.
 
Son düzenleme:
@Disty Yükleme baya uzun sürdü ama tamamlandı. Sadece başlarda şöyle bir uyarı verdi ama önemli mi değil mi bilmiyorum.
Kod:
Torch 1.13.0a0+gitb1dde16
/home/hayyam/automatic/venv/lib/python3.10/site-packages/torchvision/io/image.py:13: UserWarning: Failed to load image Python extension:
  warn(f"Failed to load image Python extension: {e}")

Bi de sonlara doğru şunu söyledi, bu sanırım sadece bi özellik.
Image Browser: ImageReward is not installed, cannot be used.

Kapatıp tekrar açtıktan sonra ise şu uyarıları verdi. (Bu arada kapatmak istediğim zaman control + c ile mi çıkmam gerek yoksa direkt kapatabilir miyim terminali?)
Kod:
Launching ipexrun launch.py...
/home/hayyam/automatic/venv/lib/python3.10/site-packages/torchvision/io/image.py:13: UserWarning: Failed to load image Python extension:
  warn(f"Failed to load image Python extension: {e}")
numactl: This system does not support NUMA policy2023-05-29 09:55:48,865 - intel_extension_for_pytorch.cpu.launch - WARNING - Core binding with numactl is not available. Disabling numactl and using taskset instead. This may affect performance in multi-socket system; please use numactl if memory binding is needed.
2023-05-29 09:55:48,866 - intel_extension_for_pytorch.cpu.launch - WARNING - Neither TCMalloc nor JeMalloc is found in $CONDA_PREFIX/lib or $VIRTUAL_ENV/lib or /.local/lib/ or /usr/local/lib/ or /usr/local/lib64/ or /usr/lib or /usr/lib64 or /home/hayyam/.local/lib/ so the LD_PRELOAD environment variable will not be set. This may drop the performance
2023-05-29 09:55:48,866 - intel_extension_for_pytorch.cpu.launch - INFO - OMP_NUM_THREADS=6
2023-05-29 09:55:48,866 - intel_extension_for_pytorch.cpu.launch - WARNING - Unable to find the iomp library file libiomp5.so in $CONDA_PREFIX/lib or $VIRTUAL_ENV/lib or /.local/lib/ or /usr/local/lib/ or /usr/local/lib64/ or /usr/lib or /usr/lib64 or /home/hayyam/.local/lib/ so the LD_PRELOAD environment variable will not be set.you can use 'conda install intel-openm' to install intel openMP
2023-05-29 09:55:48,866 - intel_extension_for_pytorch.cpu.launch - INFO - taskset -c 0-5 /home/hayyam/automatic/venv/bin/python3 -u launch.py --use-ipex

WARNING Package wrong version: timm 0.4.12 required 0.6.13
Kod:
09:56:20-259497 WARNING  Selected checkpoint not found: model.ckpt
09:56:20-260331 WARNING  Loading fallback checkpoint: v1-5-pruned-emaonly.safetensors [6ce0161689]

Eğer bu uyarılar herhangi bir sorun oluşturmuyorsa son olarak modelleri nasıl yükleyebileceğimi sormak istiyorum. Eskiden indirdiğim modelleri direkt kullanabilir miyim? Sanırım windows gezgininden bu WSL içindeki sistemin dosyalarına erişmek mümkün değil.
 
Son düzenleyen: Moderatör:
@38life Attığınız hataların hepsi zararsız uyarılar. Normal devam edebilirsiniz.
En sonuncu hatada ise model bulamayınca internetten model yüklüyorum demiş.

Modellerinizi models/Stable-diffusion klasörüne atın.
WSL ile Windows'tan atabiliyor musunuz bilmiyorum ama.
Windows klasörlerini görebiliyorsanız cp (eski model klasörü)/* (automatic klasörü)/models/Stable-diffusion/ ile bütün modellerinizi kopyalayabilirsiniz.
* işareti klasördeki her şeyi seç demek.

Olmuyorsa wget ile link yapıştırıp terminalden indirebilirsiniz.

Kapatmak istiyorsanız CTRL +C ile SD'yi kapatıp daha sonra terminali kapatın.
 
Son düzenleme:
@Disty teşekkürler. Modellerin hepsini taşıdım. Kolay yolu varmış.

Şu an kullanıyorum fakat 1024x1024 resim üretmeye çalıştığımda aşağıdaki hatayı alıyorum.

Native API failed. Native API returns: -5 (PI_ERROR_OUT_OF_RESOURCES) -5 (PI_ERROR_OUT_OF_RESOURCES)

Bir de A770 için 8 it/s civarı demişsiniz. Bu hangi ayarlar için. Default 512x512 20 Sampling steps için mi?
 
@Disty Teşekkürler. Modellerin hepsini taşıdım. Kolay yolu varmış.

Şuan kullanıyorum fakat 1024x1024 resim üretmeye çalıştığımda aşağıdaki hatayı alıyorum.

Native API failed. Native API returns: -5 (PI_ERROR_OUT_OF_RESOURCES) -5 (PI_ERROR_OUT_OF_RESOURCES)

Bir de A770 için A770 8 it/s civarı demişsiniz. bu hangi ayarlar için. default 512x512 20 Sampling steps için mi?

Ayarlardan Cross-attention optimization method seçeneğini Sub-quadratic olarak seçin. Biraz daha yavaş çalışır ama çok daha az VRAM kullanır.

1685354548363.png


8 it/s değeri InvokeAI ile 512x512 ve Euler a için.
Standart benchmark testi 512x512 ve Euler a.
UniPC seçerseniz almanız gereken hızın yarısını alırsınız.
 
Son düzenleme:
@Disty Dediğin ayarı yapınca daha yüksek çözünürlük resim üretebildim. Ama modellerle ilgili anlayamadığım bir bozukluk var. İnsanları çoklu yapıyor hep. Tamam evet Stable Diffusion'da böyle çıktılar verebiliyor ara bunda neredeyse insan içeren her resimde böyle oluyor. negative prompt'a multiple face, multiple body eklesem de değişmiyor. Anlayamadım sebebini.
 
@Disty Dediğin ayarı yapınca daha yüksek çözünürlük resim üretebildim. Ama modellerle ilgili anlayamadığım bir bozukluk var. İnsanları çoklu yapıyor hep. Tamam evet Stable Diffusion'da böyle çıktılar verebiliyor ara bunda neredeyse insan içeren her resimde böyle oluyor. negative prompt'a multiple face, multiple body eklesem de değişmiyor. Anlayamadım sebebini.

Bu rehberde bundan bahsetmiştim. Stable Diffusion yüksek çözünürlükte saçmalamaya başlıyor.


Kare için 768x768 ile oluşturup img2img'a yollayın.
Diğerleri için en fazla 1024xçözünürlük_oranı.

Ben genelde 768x1024, 512x1024 veya 1024x576 kullanıyorum.
Daha sonra img2img'a yollayıp 2x çözünürlükte tekrar işletiyorum.
 
@Disty senin diğer başlıkta paylaştığın videodaki işlemlerin aynısını yapıp zaman karşılaştırması yapıyordum. Son resize'da işlem %100'e geldiğinde mavi ekran hatası verdi. Bilgisayar açıldığında tekrar denedim, görev yöneticisini de açtım kenara ne olup bittiğini görmek için. Bu işlem 32GB RAM'in tamamını kullanıyor. Daha doğrusu işlem esnasında büyük kısmını kullansa da tamamını kullanmıyordu fakat işlem %99-100'e gelince kullanılan RAM miktarı birden arttı ve RAM'in tamamını kullandı, bu yüzden de pc dondu, reset atmak zorunda kaldım. Benim donanımlarda mı sorun var, WSL ile ilgili mi bir sıkıntı var, ne oluyor bi türlü anlamadım valla.

Bi de bugün açılışlarda normalde daha önce olmayan CUDA ile ilgili uyarılar vermeye başladı terminalde.
 

Dosya Ekleri

  • 342d34c9-62d5-4d52-8785-60b31a76529e.jpg
    342d34c9-62d5-4d52-8785-60b31a76529e.jpg
    126,8 KB · Görüntüleme: 25
Son düzenleme:
@38life webui. Sh'ı başlatırken --use-ipex eklemek zorundasınız.

WSL biraz sorunlu, RAM sorunları normal ama bu kadarı değil.
Bu linkteki dcp++ Pach'ini uygulayın:

--Use-ipexi ekliyorum her seferinde. Dediğiniz Patch'i uygulamayı beceremedim. Bash komutuna cevap olarak oneapi set olmadi diyor. Set ediyorum ama hala aynı cevabı veriyor. Uğraşmayı bıraktım bir kez daha resim üretmeyi denedim. Img2Img'da daha 2 katına scale ederken mavi ekran hatası verdi yine. Bu işte bir anormallik var. Mesela hiçbir işlem yapmiyorken sadece Stable Diffusion açık ve boşta bekliyorken 21GB civarı RAM kullanımda görünüyor. Bu normal mi bilmiyorum ama normal olmamalı herhalde. 16 GB VRAM'in de 15 GB'ı dedicated olarak gözüküyor görev yöneticisinde. Bunlar normal mi bilgim yok.

Ben sırf stable diffusion için ekran kartı aldım, çok fazla oyun oynayan biri değilim. Ama bu şekilde kullanamicaksam bir anlamı yok. Yarın WSL'yi komple sileceğim. Dual boot olarak Ubuntu kurup orada deneyeceğim SD'yi. Yine aynı sorunlar olursa artık donanımdan şüpheleneceğim.

Tekrardan merhaba. Windows'un yanına Ubuntu kurdum dual boot olarak. Kurulumda her ne kadar şanssızlıklar yaşasam da şuan sorunsuz kullanabiliyorum. İlk kurarken sonlara doğru bir indirme işlemi esnasında internet kesildi, iptal edip kodu tekrar çalıştırdım. Bu UEFI açıksa MOK enroll'u yapmak gerektiği ile ilgili bir şey yazıyordu onu yaptım ama sonra Ubuntu açılmadı, siyah ekranda kaldı, recovery mode ile geri getirdim. Sonra sorunsuz çalışıyordu ama PC'yi kapatıp ertesi gün girdiğimde SD'yi açmaya çalıştığımda PC donuyordu, reset atmak zorunda kalıyordum. Biraz kurcaladıktan sonra "lspci -v |grep -A8 VGA" kodunu çalıştırıp ekran kartıma baktım fetched memory 250MB olarak görünüyordu. Driver'ları tekrar yükledim falan düzelmedi. Sonra Secure Bootta UEFI modu açtım düzeldi. Şuan sıkıntısız kullanabiliyorum.

WSL ile Wİndows üzerinde yaşadığım tecrübeyle bunun uzaktan yakından alakası yok. Ubuntudaki bu "System Monitor" eğer doğru çalışıyorsa SD açıkken 32GB DRAM'in 11MB civarını kullanıyor ve işlem yapsan da yapmasan da aynı civarda seyrediyor.

"intel_gpu_top" kdouyla GPU'yu da izlemeye çalışıyorum ama VRAM kullanımını göstermiyor sanırım bu. Ayrıyetten mesela 768x1024 çözünürlükte işlem yaparken PC kendinden geçmiyor, o işlemi arkada yaprken ben diğer sekmelere geçip video'ya falan bakabiliyorum. 1440x1440 çıktı da alabiliyorum direkt olarak.

Yani bu konuda WSL üzerinde SD çalıştıran daha fazla insana ulaşıp onların tecrübelerini dinlemek lazım genel konuşmak için ama benim maceram bu şekilde gelişti. WSL üzerinde maalesef ne yaptıysam düzgün çalıştıramadım. Hatta "artık donanımlarıma zarar verecek bu iş" korkusu yaşadım. Çünkü saçma kaynak kullanımları gerçekleşiyor ve mavi ekran hatası falan alıyordum.

Ama direkt Ubuntuda çalıştırınca her şey normal seyrinde... Kaldı ki dediğim gibi kurulumda vs. bazı sıkıntılar, hatalar yaşadım. Şuanda da SD'yi açarken çeşitli uyarılar veriyor, CUDA'dan falan bahseden uyarılar var. Ama kullanımda sıkıntı çıkarmadığı için çok sorgulamadım. Tabi Ubuntu'dan kullanmak konfor açısından önemli bir eksi. Tamamen Windows'u bırakıp Ubuntu'ya geçmediğim sürece. Ama şimdilik böyle devam.

@Disty Sana bu Dreambooth hakkında sormak istiyorum. Dreambooth'da daha önce de hata alıyordum Ubuntu'da da hata alıyorum. SD üzerinde hiç başarılı şekilde kullanamadım bu eklentiyi. "Exception training model: "resim.jpg is not in list"" şeklinde hata verdi dün gece denediğimde. Tutorial'ları seyrederek yapıyorum ama olmuyor. Sen çalıştırabiliyor musun Dreambooth'u? Bi püf noktası varsa onla ilgili de belki rehber hazırlamak istersin.
 
Son düzenleme:

Geri
Yukarı