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:
Cok degerli paylasim, tesekkurler. Optimizerlar neden bu kadar farkediyor?
Modelin nasıl çalıştığını değiştiriyorlar.
Biri ne kadar VRAM bulduysa hepsini kullanmaya çalışıyor.
Diğeri VRAM'dan tasarruf etmeye modeli çalıştırmaktan daha fazla vakit harcıyor.
 
Eki Görüntüle 1766262
Intel ARC A770 16G ile 1920x1080 çözünürlüğünde oluşturulan Intel ARC temalı bir anime duvar kâğıdı.
1920x1080 çözünürlüğünden 4x-AnimeSharp ile 2x upscale yapılarak 3840x2160 çözünürlüğüne yükseltildi.



Bu rehberimizde Intel ARC ekran kartları ile Stable Diffusion WebUI'ın Vladmandic çatalını kuracağız.
Stable Diffusion kurulumuna geçmeden önce ilk olarak bilgisayarımıza bir şekilde Linux kurmalıyız.
Intel PyTorch kütüphanesi sadece Linux üzerinde çalışıyor. Windows kullanıyorsanız WSL içinde Ubuntu 22.04 kullanabilirsiniz.
Not: WSL ile şu anda bellek sızıntısı sorunları var. 5-10 fotoğraf oluşturduktan sonra uygulamayı kapatıp açmak zorunda kalırsınız.

WSL için bu rehberi takip edebilirsiniz:



Intel OneAPI sürücüleri kurulumu:

Ubuntu:
Intel ARC için kernel sürücüleri daha Ubuntu'ya eklenmediğinden Intel'in rehberi ile Intel ARC sürücülerini kurun:
Ya da sürücü kurmak yerine kernelinizi Linux 6.2 veya daha yeni bir versiyona güncelleyin.
Not: WSL için gerekli değil, WSL kullanıyorsanız bu adımı atlayıp aşağıdaki adımlara geçebilirsiniz.

Daha sonra gerekli paket listesini sisteme ekleyelim:
Bash:
sudo apt-get install -y gpg-agent wget
wget -qO - https://repositories.intel.com/graphics/intel-graphics.key | \
  sudo gpg --dearmor --output /usr/share/keyrings/intel-graphics.gpg
echo 'deb [arch=amd64,i386 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/graphics/ubuntu jammy arc' | \
  sudo tee  /etc/apt/sources.list.d/intel.gpu.jammy.list
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \
| gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt update && sudo apt upgrade -y

Daha sonra gerekli paketleri kuralım:
Bash:
sudo apt-get install intel-opencl-icd intel-level-zero-gpu level-zero intel-media-va-driver-non-free libmfx1 libgl-dev intel-oneapi-compiler-dpcpp-cpp intel-oneapi-mkl python3-pip git


Arch Linux:
git python-pip intel-media-driver intel-oneapi-basekit paketlerini normal paket listesinden ve AUR üzerinden python310 intel-compute-runtime-bin intel-graphics-compiler-bin paketlerini kurun.
Yay kullanıyorsanız aşağıdaki komut ile hepsini kurabilirsiniz:
Bash:
yay -S git python-pip python310 intel-media-driver intel-oneapi-basekit intel-compute-runtime-bin intel-graphics-compiler-bin



Stable Diffusion Vladmandic Çatalı Kullanımı:

Github'dan Vladmandic çatalını indirelim:
Bash:
git clone https://github.com/vladmandic/automatic

Daha sonra Vladmandic çatalının bulunduğu klasöre girelim:
Bash:
cd automatic

Daha sonra aşağıdaki komut ile Vladmandic çatalını çalıştırabilirsiniz.:
İlk başlatmada internetten gerekli kütüphaneleri indirdiğinden biraz zaman alacaktır.

Not: Arch Linux kullanıyorsanız ilk önce webui.sh içindeki python_cmd="python3" satırını python_cmd="python3.10" şeklinde değiştirin.
Bash:
source /opt/intel/oneapi/setvars.sh && ./webui.sh --use-ipex



Daha Fazla Performans İçin:

Ipexrun kullanımı:
Ipexrun kayda değer bir performans artışı sağlıyor.
Vladmandic çatalanı en az bir kez çalıştırdıktan sonra ipexrun kullanmak için automatic klasörü içinde aşağıdaki komutu çalıştırın:
Not: Bu komut webui.sh'i modifiye ediyor, bir kere çalıştırmanız yeterli.
Bash:
sed -i 's/exec "${python_cmd}" launch.py "$@"/exec ipexrun launch.py "$@"/' webui.sh

Optimizer'ler:
Stable Diffusion ayarlarından farklı Optimizer'leri deneyebilirsiniz:
InvokeAI's en hızlısı.
Sub-quadratic yüksek çözünürlüklü resim üretebiliyor.

Ipexrun ve InvokeAI ile A770 8 it/s civarı, A750 ise 7 it/s civarı bir performansa sahip olmalı.

Eline sağlık. Ben Arc kartlar ile neden direkt Windows üzerinde Stable Diffusion kurulamadığını bir türlü anlayamadım. Insanı ekstra işletim sistemi kurmaya zorlaması garip geliyor. Neden normal herhangi bir Nvidia kartla kurup kullandığımız gibi kullanamıyoruz Stable Diffusion'ı?

Bir de A770'in performansını merak ediyorum cidden. 16GB VRAM Stable Diffusion'da fark yaratıyor mu? Bu kart yapay zeka için ideal bir kart dedirtiyor mu?
 
Eline sağlık. Ben Arc kartlar ile neden direkt Windows üzerinde Stable Diffusion kurulamadığını bir türlü anlayamadım. Insanı ekstra işletim sistemi kurmaya zorlaması garip geliyor. Neden normal herhangi bir Nvidia kartla kurup kullandığımız gibi kullanamıyoruz Stable Diffusion'ı?

Bir de A770'in performansını merak ediyorum cidden. 16GB VRAM Stable Diffusion'da fark yaratıyor mu? Bu kart yapay zeka için ideal bir kart dedirtiyor mu?

CUDA alternatifi sürücüler olan AMD'nin ROCm ve Intel'in OneAPI sücülerinin Windows desteği yok veya iyi değil.
AMD ROCm'ın Nisan'a kadar Windows desteği yoktu ama Nisan'da deneysel destek üzerine çalışmalar başladı.
Intel OneAPI'ın Windows desteği var ama PyTorch + OneAPI Windows desteklemiyor.
AMD için PyTorch ROCm veya Intel için PyTorch IPEX ise sadece Linux için geliştirildi.
Windows yapay zeka için pek uygun değil açıkçası, büyük verilerle uğraşınca dökülmeye başlıyor.

A770'nin Stable Diffusion performansı RTX 3070 ile benzer ama 16 GB RAM devasa fark yaratıyor.
RTX 3070 8 GB ile 720p civarında takılırken ARC A770 16 GB ile 1080p'yi geçtim, 2K resim üretebiliyorsunuz.
AMD tarafında ise RX 6800 ile RX 6800 XT arasında bir performansa sahip.
 
Son düzenleme:
CUDA alternatifi sürücüler olan AMD'nin ROCm ve Intel'in OneAPI sücülerinin Windows desteği yok veya iyi değil.
AMD ROCm'ın Nisan'a kadar Windows desteği yoktu ama Nisan'da deneysel destek üzerine çalışmalar başladı.
Intel OneAPI'ın Windows desteği var ama PyTorch + OneAPI Windows desteklemiyor.
AMD için PyTorch ROCm veya Intel için PyTorch IPEX ise sadece Linux için geliştirildi.
Windows yapay zeka için pek uygun değil açıkçası, büyük verilerle uğraşınca dökülmeye başlıyor.

A770'nin Stable Diffusion performansı RTX 3070 ile benzer ama 16 GB RAM devasa fark yaratıyor.
RTX 3070 8 GB ile 720p civarında takılırken ARC A770 16 GB ile 1080p'yi geçtim, 2K resim üretebiliyorsunuz.
AMD tarafında ise RX 6800 ile RX 6800 XT arasında bir performansa sahip.

Çok teşekkürler cevap için. Direkt 2k resim üretebilmek müthişmiş gerçekten. :) Müsadenle bir kaç soru daha soracağım. Çünkü bu kartı satın alıp almamak konusunda benim için belirleyici olabilir.

WSL üzerine Linux kurup kullandığında Stable Diffusion'ın performansında bir düşüş oluyor mu? Dual Boot olarak kurup ayrı kullanmaya kıyaslarsak?

WSL üzerinden kursak da webui'a Windows'taki tarayıcı üzerinden erişebiliyoruz dimi? Ve çıktıları direkt Windows üzerine kaydedebiliyor mu?

İleride Windows'un PyTorch + OneAPI'ı düzgün şekilde destekleme ihtimali var mı?

Çok anladığım konular değil ama internette pip command line ile Windows'a Pytorch yüklenebilir falan yazıyordu. Bu konuda bilgin var mı veya bu yollarla yüklesek bile senin dediğin gibi kötü performansla mı çalışır Windowsta?

Kusura bakma çok soru sordum. Umarım cevap verirsin. :)

Şöyle bir şey buldum, teknik konulara çok hakim olmadığı için tam anlayamadım. Sen bir göz at istersen. Running TensorFlow Stable Diffusion on Intel® Arc™ GPUs
 
Son düzenleyen: Moderatör:
WSL üzerine Linux kurup kullandığında Stable Diffusion'ın performansında bir düşüş oluyor mu? Dual Boot olarak kurup ayrı kullanmaya kıyaslarsak?

Performans benzer ama hayalet VRAM kullanımı sorunları var WSL'de.

WSL üzerinden kursak da webui'a Windows'taki tarayıcı üzerinden erişebiliyoruz dimi? Ve çıktıları direkt Windows üzerine kaydedebiliyor mu?

Erişebilirsin, fotoğrafları da sağ tık + kaydet şeklinde indiriyorsun zaten.

Çok anladığım konular değil ama internette pip command line ile Windows'a Pytorch yüklenebilir falan yazıyordu.

O CUDA için.

İleride Windows'un PyTorch + OneAPI'ı düzgün şekilde destekleme ihtimali var mı?

Windows tarafında yapay zeka için talep yok denecek kadar az ama gelecekte destekleyebilir.

Şöyle bir şey buldum, teknik konulara çok hakim olmadığı için tam anlayamadım. Sen bir göz at istersen. Running TensorFlow Stable Diffusion on Intel® Arc™ GPUs

Bu konuda da bahsettiğim WSL yöntemi bu zaten. WSL sanal makinesi içinde Linux çalıştırıyor.
WSL'in normal sanal makinelerden farkı ise ekran kartına da erişiminin olması.
 
Performans benzer ama hayalet VRAM kullanımı sorunları var WSL'de.



Erişebilirsin, fotoğrafları da sağ tık + kaydet şeklinde indiriyorsun zaten.



O CUDA için.



Windows tarafında yapay zeka için talep yok denecek kadar az ama gelecekte destekleyebilir.



Bu konuda da bahsettiğim WSL yöntemi bu zaten. WSL sanal makinesi içinde Linux çalıştırıyor.
WSL'in normal sanal makinelerden farkı ise ekran kartına da erişiminin olması.

Teşekkürler bilgiler için. Anladığım kadarıyla WSL ile çalışmak çok konforsuz bir durum değil, zaten webui üzerinden yürüyor her şey. Ama hayalet VRAM kullanımı olması sıkıntıymış. İnsan cihazından tam verim almayı ister.

Windows'un yapay zeka tarafında geride olduğunu bilmiyordum. Youtube'da çoğunlukla Windows üzerinde kullananları görüyorum çünkü. Şimdi 3070 ile windows üzerinde mi daha iyi performans alırım A770 ile WSL Linux üzerinde mi daha iyi performans alırım acaba?

Hocam her şeyi yaptım son aşamada ./webui.sh --use-ipex komutunu girince şu hatayı verdi:

Create and activate python venv
Error: Cannot activate python venv

Dahasonra python3 -m venv venv ve source venv/bin/activate kodlarını çalıştırdıktan sonra tekrar denedim bu sefer kod çalıştı ama şu ekranda kalıyor. 1-2 saat bekledim yine de bi ilerleme olmadı.
 

Dosya Ekleri

  • Ekran görüntüsü 2023-05-28 051522.png
    Ekran görüntüsü 2023-05-28 051522.png
    33,3 KB · Görüntüleme: 43
Son düzenleme:
@38life venv adımında hata atıyorsa Python kurulumunuzda veya venv'de bir sorun var demek.
Venv klasörünü silip tekrar deneyin bir de.


Ek olarak şu anda sorun olmaması gerek ama geçen Intel'in sunucularından en son sürüm Ipex yanlışlıkla silinmişti.
Ipex paketlerini bulamıyorsa şu paketleri manuel olarak indirip kurmayı deneyin:

https://intel-extension-for-pytorch.s3.amazonaws.com/ipex_stable/xpu/torchvision-0.14.1a0+5e8e2f1-cp310-cp310-linux_x86_64.whl
 
Son düzenleme:
@Disty indirme esnasında aslında takılmamış, sadece aşırı yavaş indiriyormuş. Açık bırakıp uyumaya gittim kalkınca yüklenmişti. Ama düzgün çalışmadı, birkaç image ürettim ama sonra üretemedim. Zaten terminale baktığımda hep hatalar var. Yani düzgün bir şekilde yüklenmedi sanırım zaten. O yüzden sıfırladım her şeyi tekrardan kurdum WSL'yi. Senin tarif ettiğin adımlarla yine son aşamaya geldim ama ./webui.sh --use-ipex bu kodu girince resimdeki hatayı veriyor. Bu sefer kafama göre ilerleyip hatalı, yarım yamalak kurmayayim bari. Senin cevabına göre hareket edeceğim.
 

Dosya Ekleri

  • Screenshot 2023-05-28 154240.png
    Screenshot 2023-05-28 154240.png
    32,5 KB · Görüntüleme: 50
Son düzenleyen: Moderatör:

Technopat Haberler

Yeni konular

Geri
Yukarı