Rehber Intel ARC ekran kartları ile Kohya SS kurulumu

Notlar:

Parametre Ayarları:

Mixed Precision Type seçeneğini BF16 olarak seçin.
8 bit'lik Optimizer kullanmayın. 8 bit dışında herhangi bir Optimizer kullanabilirsiniz.

Paramaters -> Advanced kısmından CrossAttention seçeneğini SDPA olarak seçin.
xFormers desteği şu anlık yok.

Sadece BF16 ve FP32 destekli. FP16 için eğitim desteği tam hazır değil.
Bitsandbytes desteği yok ama Full BF16 Training desteği var.


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.


Intel PyTorch kütüphanesi sadece Linux üzerinde çalışıyor. Windows kullanıyorsanız WSL içinde Ubuntu 22.04 kullanabilirsiniz.
WSL için bu rehberi takip edebilirsiniz. Daha sonra Ubuntu adımlarını takip edin.



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 google-perftools


Arch Linux:
intel-compute-runtime level-zero-headers level-zero-loader git python-pip python-virtualenv jemalloc paketlerini normal paket listesinden ve AUR üzerinden python310 paketini kurun.
Yay kullanıyorsanız aşağıdaki komut ile hepsini kurabilirsiniz:
Bash:
yay -S python310 intel-compute-runtime level-zero-headers level-zero-loader git python-pip python-virtualenv gperftools



Kohya SS Kurulumu:

Github'dan Kohya SS'i indirelim:
Bash:
git clone https://github.com/bmaltais/kohya_ss

Daha sonra Kohya SS'in bulunduğu klasöre girelim:
Bash:
cd kohya_ss

Daha sonra sanal Python ortamı oluşturup küthüpaneleri kuralım:
Bash:
./setup.sh --use-ipex

En son olarak da aşağıdaki komut ile Kohya SS'i çalıştırabilirsiniz:
Bash:
./gui.sh --use-ipex
 
Son düzenleme:
@Disty Teşekkürler paylaşım için. Ben şuanda Stable Diffusion'ı Docker desktop ile "nuullll/ipex-arc-sd:latest" image'ı ile kullanıyorum. Kohyayı nasıl kullanabilirim hiç bilmiyorum. Kohya'nın halihazırda kullandığım Stable Diffusion ile aynı işletim sisteminde kurulu olması gerekli mi, yoksa tamamen bağımsız kullanılabilir mi? Eğer aynı işletim sisteminde olması gerekiyorsa Docker ile bunu nasıl yapabilirim? Docker ile durum biraz farklı çünkü. Kafam karışık bu konuda çok da teknik bilgim olmadığı için.
 
@38life Docker'a dokunmayın. Docker sistemden bağımsız kendi ortamında takılıyor, Kohya'yı Linux veya WSL'e kurun.


Eğer Windows Native kurmak isterseniz resmi olmayan IPEX paketleri var ama manuel kurup çalıştırmanız gerekecek.
Windows kurulu bilgisayarım olmadığı için bu konuda yardım edemeyeceğim.
 
Son düzenleme:
@38life Docker'a dokunmayın. Docker sistemden bağımsız kendi ortamında takılıyor, Kohya'yı Linux veya WSL'e kurun.


Eğer Windows Native kurmak isterseniz resmi olmayan IPEX paketleri var ama manuel kurup çalıştırmanız gerekecek.
Windows kurulu bilgisayarım olmadığı için bu konuda yardım edemeyeceğim.
Tamamdır. WSL ile kurdum ve ilk Lora'mı yaptım. Yalnız ilk önce LRqarmup ile ilgili hata verdi. 0 yapman gerekiyor yazıyordu kodlarda. Sıfır yapınca düzeldi.

LRwarmup hatası sanırım adafactor seçince oluyormuş.

Bi şey sormak istiyorum. Siz SDXL ile train edebiliyor musunuz? @Disty
 
Son düzenleme:
Tamamdır. WSL ile kurdum ve ilk Lora'mı yaptım. Yalnız ilk önce LRqarmup ile ilgili hata verdi. 0 yapman gerekiyor yazıyordu kodlarda. Sıfır yapınca düzeldi.

LRwarmup hatası sanırım adafactor seçince oluyormuş.

Bi şey sormak istiyorum. Siz SDXL ile train edebiliyor musunuz? @Disty

LyCoris kullanmanız gerek.

Eğittiğim SDXL LyCoris:

Bu da config.json dosyası:
JSON:
{
  "LoRA_type": "LyCORIS/LoCon",
  "adaptive_noise_scale": 0,
  "additional_parameters": "--network_train_unet_only",
  "block_alphas": "",
  "block_dims": "",
  "block_lr_zero_threshold": "",
  "bucket_no_upscale": true,
  "bucket_reso_steps": 32,
  "cache_latents": true,
  "cache_latents_to_disk": true,
  "caption_dropout_every_n_epochs": 0.0,
  "caption_dropout_rate": 0,
  "caption_extension": ".txt",
  "clip_skip": "1",
  "color_aug": false,
  "conv_alpha": 4,
  "conv_block_alphas": "",
  "conv_block_dims": "",
  "conv_dim": 8,
  "decompose_both": false,
  "dim_from_weights": false,
  "down_lr_weight": "",
  "enable_bucket": false,
  "epoch": 100,
  "factor": -1,
  "flip_aug": false,
  "full_bf16": false,
  "full_fp16": false,
  "gradient_accumulation_steps": 1,
  "gradient_checkpointing": true,
  "keep_tokens": "0",
  "learning_rate": 0.0004,
  "logging_dir": "/home/disty/Downloads/train/hakurei_reimu/log",
  "lora_network_weights": "",
  "lr_scheduler": "constant",
  "lr_scheduler_args": "",
  "lr_scheduler_num_cycles": "1",
  "lr_scheduler_power": "",
  "lr_warmup": 0,
  "max_bucket_reso": 2048,
  "max_data_loader_n_workers": "8",
  "max_resolution": "1024,1536",
  "max_timestep": 1000,
  "max_token_length": "75",
  "max_train_epochs": "",
  "max_train_steps": "",
  "mem_eff_attn": false,
  "mid_lr_weight": "",
  "min_bucket_reso": 256,
  "min_snr_gamma": 5,
  "min_timestep": 0,
  "mixed_precision": "bf16",
  "model_list": "custom",
  "module_dropout": 0,
  "multires_noise_discount": 0,
  "multires_noise_iterations": 0,
  "network_alpha": 32,
  "network_dim": 32,
  "network_dropout": 0,
  "no_token_padding": false,
  "noise_offset": 0,
  "noise_offset_type": "Original",
  "num_cpu_threads_per_process": 8,
  "optimizer": "AdamW",
  "optimizer_args": "",
  "output_dir": "/home/disty/Downloads/train/hakurei_reimu/model",
  "output_name": "hakurei_reimu_xl",
  "persistent_data_loader_workers": false,
  "pretrained_model_name_or_path": "/home/disty/Apps/AI/automatic/models/Stable-diffusion/SDXL/infinianimexl_v16.safetensors",
  "prior_loss_weight": 1.0,
  "random_crop": false,
  "rank_dropout": 0,
  "reg_data_dir": "",
  "resume": "",
  "sample_every_n_epochs": 0,
  "sample_every_n_steps": 0,
  "sample_prompts": "(masterpiece, best quality, highres), (1girl, solo, aoyama nanami), --n (worst quality, low quality:1.4, lowres, blurry), (zombie, comic, sketch), (interlocked fingers, loli, kid, long neck, 2girls, fat), --w 512 --h 768 --l 7 --s 20",
  "sample_sampler": "euler_a",
  "save_every_n_epochs": 1,
  "save_every_n_steps": 0,
  "save_last_n_steps": 0,
  "save_last_n_steps_state": 0,
  "save_model_as": "safetensors",
  "save_precision": "fp16",
  "save_state": false,
  "scale_v_pred_loss_like_noise_pred": false,
  "scale_weight_norms": 0,
  "sdxl": true,
  "sdxl_cache_text_encoder_outputs": true,
  "sdxl_no_half_vae": false,
  "seed": "",
  "shuffle_caption": false,
  "stop_text_encoder_training": 0,
  "text_encoder_lr": 0.0004,
  "train_batch_size": 2,
  "train_data_dir": "/home/disty/Downloads/train/hakurei_reimu/img",
  "train_on_input": true,
  "training_comment": "",
  "unet_lr": 0.0004,
  "unit": 1,
  "up_lr_weight": "",
  "use_cp": false,
  "use_wandb": false,
  "v2": false,
  "v_parameterization": false,
  "v_pred_like_loss": 0,
  "vae_batch_size": 0,
  "wandb_api_key": "",
  "weighted_captions": false,
  "xformers": "sdpa"
}
 

Yeni konular

Geri
Yukarı