EAS üzerinde Kohya_ss kullanarak LoRA modelleri eğitin ve görüntü oluşturma için Stable Diffusion'a uygulayın.
Önkoşullar
EAS hizmetini etkinleştirin ve varsayılan bir çalışma alanı oluşturun. PAI'yi etkinleştirin ve varsayılan bir çalışma alanı oluşturun.
Modeli bir RAM kullanıcısı dağıtıyorsa, EAS yönetim izinlerini verin. Cloud ürün bağımlılıkları ve izinleri: EAS.
Eğitim materyallerini, model dosyalarını ve günlükleri depolamak için aynı bölgede bir OSS paketi ve klasörler oluşturun. Dosyaları yükleyin.
OSS depolamayı ayarlayın
OSS konsolu oturumunu açın ve aynı bölgedeki bir paket yoluna gidin. Örneğin,
oss://kohya-demo/kohya/.-
Üç alt klasör içeren bir proje klasörü (örnek:
KaraDetroit_loar) oluşturun:Image,LogveModel. İsteğe bağlı olarak bu klasöre bir JSON yapılandırma dosyası yükleyin.Image: Eğitim materyalleri için kaynak dosyalar.
Model: Eğitim tamamlandıktan sonraki model dosyaları.
Log: Eğitim günlükleri.
SS_config.json: Toplu iş parametre yapılandırması için JSON dosyası (isteğe bağlı). Klasör yollarını, çıktı model adlarını ve diğer parametreleri yapılandırın. GitHub. Örnek: SS_config.json.
-
Hazırlanan görüntüleri
Imageklasörüne yükleyin. Bu örnekte bir örnek paket kullanılmaktadır: 100_pic.zip. Paketi indirin, sıkıştırmasını açın ve klasörü OSS'e yükleyin.ÖnemliDesteklenen görüntü formatları şunlardır:
.png,.jpg,.jpeg,.webpve.bmp.Her görüntünün aynı ada sahip ve
.txtuzantılı bir açıklama dosyası olması gerekir. Açıklama ilk satırda yer almalıdır. Bir görüntünün birden fazla açıklaması varsa bunları virgülle ayırın.-
Görüntü klasörü adları şu formatı izlemelidir: sayı_ad (örnek: 100_pic). Sayı, eğitim sırasında görüntü başına tekrar sayısını belirler (genellikle 100+). Toplam eğitim yineleme sayısı 1.500'ü aşmalıdır.
Klasörde 10 görüntü varsa, her biri
1500/10=150kez eğitilir. Klasör adı numarasını "150" olarak ayarlayın.Klasörde 20 görüntü varsa, her biri
1500/20=75 (<100)kez eğitilir. Klasör adı numarasını "100" olarak ayarlayın.
Kohya_ss hizmetini dağıtın
PAI konsolu oturumunu açın. Sayfanın üst kısmından bir bölge seçin. Ardından istediğiniz çalışma alanını seçin ve Enter Elastic Algorithm Service (EAS) seçeneğine tıklayın.
Deploy Service seçeneğine tıklayın. Inference Service bölümünde, Custom Model Deployment bölümündeki Custom Deployment seçeneğine tıklayın.
-
Custom Deployment sayfasında, formu kullanarak veya JSON yapılandırmalarını belirterek parametreleri yapılandırın.
Form yapılandırması
Parametre
Açıklama
Basic Information
Service Name
Özel ad. Örnek: kohya_ss_demo.
Environment Information
Deployment Method
Image-based Deployment seçeneğini belirleyin ve Enable Web App seçeneğini belirleyin.
Image Configuration
Alibaba Cloud Image listesinde kohya_ss > kohya_ss:2.2 seçeneğini belirleyin.
NotDağıtım sırasında en son sürümü seçin.
Storage Mount
Bağlama türü olarak OSS'i seçin ve aşağıdaki parametreleri yapılandırın:
-
Uri: Aynı bölgedeki OSS yolu. Örnek:
oss://kohya-demo/kohya/. -
Bağlama Yolu: Özel yol. Örnek:
/workspace.ÖnemliRead-Only anahtarını kapatın. Aksi takdirde model dosyaları OSS'e yazılamaz.
Command to Run
Görüntü seçildikten sonra otomatik olarak yapılandırılır. Örnek:
python -u kohya_gui.py --listen=0.0.0.0 --server_port=8000 --headless.-
--listen: Harici istekler için belirtilen IP adresine bağlanır. -
--server_port: Dinleme bağlantı noktası numarası.
Resource Information
Resource Type
Public Resources seçeneğini belirleyin.
Deployment
Maliyet etkinliği açısından ml.gu7i.c16m60,1-gu30 önerilir. Bu örnekte ml.gu7i.c8m30,1-gu30 kullanılmaktadır.
JSON yapılandırması
Service Configurations bölümünde Edit seçeneğine tıklayın ve yapılandırmayı JSON formatında girin.
Örnek JSON yapılandırması:
ÖnemliAşağıdaki örnekte, gereksinimlerinize göre 4. satırdaki ("name") ve 18. satırdaki ("oss") yapılandırmaları değiştirin.
{ "metadata": { "name": "kohya_ss_demo", "instance": 1, "enable_webservice": true }, "cloud": { "computing": { "instance_type": "ecs.gn6e-c12g1.12xlarge", "instances": null } }, "storage": [ { "oss": { "path": "oss://kohya-demo/kohya/", "readOnly": false }, "properties": { "resource_type": "model" }, "mount_path": "/workspace" }], "containers": [ { "image": "eas-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai-eas/kohya_ss:1.2", "script": "python -u kohya_gui.py --listen=0.0.0.0 --server_port=8000 --headless", "port": 8000 }] } -
Yapılandırmayı gözden geçirin ve Deploy seçeneğine tıklayın. Dağıtım birkaç dakika sürer. Service Status durumu Running olarak değiştiğinde hizmet hazır hale gelir.
LoRA modelini eğitin
Hizmetin Overview sayfasında, Kohya_ss hizmet sayfasını açmak için Web applications seçeneğine tıklayın.
LoRA (LoRA) seçeneğini belirleyin.
-
(İsteğe bağlı) Configuration file ayarını yapın.
SS_config.jsondosyası yoksa bu adımı atlayın.NotYol, Form yapılandırması bölümündeki Mount Path değeri, OSS klasör yolu ve dosya adının birleşimidir. Örnek:
/workspace/KaraDetroit_loar/SS_config.json. -
SourceModel ayarını yapın. Daha iyi güvenlik için checkpoint yerine safetensors önerilir.
Source model sekmesinde, Model Quick Pick değerini
runwayml/stable-diffusion-v1-5olarak ayarlayın ve Save trained model as değerinisafetensorsolarak ayarlayın. -
Folders ayarını yapın. OSS'deki
Image,LogveModelyollarını girin ve çıktı dosyası adını belirtin.
Parametre
Açıklama
Image folder
Eğitim görüntüleri klasörü. Form yapılandırması bölümündeki Mount Path değerini OSSImageyoluyla birleştirin. Örnek:/workspace/KaraDetroit_loar/Image.
Logging folder
Günlük çıktı klasörü. Form yapılandırması bölümündeki Mount Path değerini OSSLogyoluyla birleştirin. Örnek:/workspace/KaraDetroit_loar/Log.
Output folder
Model çıktı klasörü. Form yapılandırması bölümündeki Mount Path değerini OSSModelyoluyla birleştirin. Örnek:/workspace/KaraDetroit_loar/Model.
Model output name
Model çıktı adı. Örneğin, my_model. -
Parameters ayarını yapın. Örnek değerler için OSS depolama yapısını hazırlayın adımındaki
SS_config.jsondosya içeriğine bakın.Parametre
Açıklama
LoRA Type
LoRA türü. Seçenekler:
-
LoCON:Res,BlockveTransformergibi SD'nin her katmanını ayarlar. -
LoHA: Aynı boyutla daha fazla bilgiyi işler.
LoRA network weights
LoRA ağırlıkları. Eğitime devam etmek için önceki LoRA çıktısını seçin (isteğe bağlı).
Train batch size
Eğitim toplu iş boyutu. Daha büyük değerler daha fazla VRAM gerektirir.
Epoch
Epoch sayısı (tüm eğitim verilerinden geçen tam tur). Manuel hesaplama:
-
Kohya'daki toplam eğitim yinelemeleri = Eğitim görüntüsü sayısı × Tekrarlar × Epoch sayısı / Eğitim toplu iş boyutu. -
WebUI'daki toplam eğitim yinelemeleri = Eğitim görüntüsü sayısı × Tekrarlar.
Sınıf görüntüleriyle birlikte, hem Kohya hem de WebUI'de toplam yinelemeler iki katına çıkar ve Kohya'daki model kayıtları yarıya iner.
Save every N epochs
Modeli her N epoch'ta bir kaydeder. Örnek: Her 2 epoch'ta bir kaydetmek için 2 olarak ayarlayın.
Caption Extension
Altyazı dosyalarının dosya uzantısı, örneğin .txt (isteğe bağlı).
Mixed precision
Karma hassasiyet. Seçenekler: no, fp16, bf16. 30 GB+ VRAM'e sahip GPU'lar için bf16 kullanın.
Save precision
Kaydetme hassasiyeti. Yukarıdakiyle aynı.
Number of CPU threads per core
Çekirdek başına CPU iş parçacığı sayısı. VRAM kullanımını etkiler. Örnek teknik özelliklerinize göre ayarlayın.
Learning rate
Öğrenme oranı. Varsayılan: 0,0001.
LR Scheduler
Öğrenme oranı zamanlayıcısı. Gerektiğinde
cosineveyacosine with restartgibi bir işlev seçin.LR Warmup (% of steps)
Isınma adımları. Varsayılan: 10. Isınmayı atlamak için 0 olarak ayarlayın.
Optimizer
Optimize edici. Varsayılan:
AdamW8bit.DAdaptationotomatik ayarlama sağlar.Max Resolution
Maksimum çözünürlük. Görüntü özelliklerine göre ayarlayın.
Network Rank (Dimension)
Model karmaşıklığı. Çoğu senaryo için 128 değeri yeterlidir.
Network Alpha
Network Rank (Dimension) değerini aşmamalıdır. Yaygın ayar: Rank 128, Alpha 64.
Convolution Rank (Dimension)
& Convolution Alpha
Evrişim derecesi. İnce ayar kapsamını kontrol eder. LoRA Type'a göre ayarlayın.
Kohya resmi önerileri:
-
LoCon:dim <= 64,alpha = 1(veya daha düşük). -
LoHA:dim <= 32,alpha = 1.
clip skip
CLIP atlama sayısı. Aralık: 1 ila 12. Daha düşük değerler, girdi istemine daha yakın görüntüler üretir.
-
Gerçekçi modeller için 1 seçin.
-
Anime tarzı modeller için 2 seçin.
Sample every n epoch
Her N epoch'ta bir örnek görüntü oluşturur.
Sample Prompts
Örnek istemler. Parametreli bir komut kullanın:
-
--n: İstem, negatif istem. -
--w: Görüntü genişliği. -
--h: Görüntü yüksekliği. -
--d: Görüntü tohumu (seed). -
--l: İstem alakası (cfg). -
--s: Yineleme adımları (steps).
-
Sayfanın alt kısmında Start training seçeneğine tıklayın.
-
EAS hizmet listesinde hizmet adına tıklayarak ayrıntılar sayfasını açın, ardından eğitim ilerlemesini görüntülemek için Log seçeneğine tıklayın.
Günlük sayfası, model çıkarım görevinin ilerleme çubuğu çıktısını görüntüler; buna tamamlanma yüzdesi, işlenen öğe sayısı ve işleme hızı dahildir.
Günlükte
model savedifadesi göründüğünde eğitim tamamlanmış demektir.steps: 100%|██████████| 2998/3000 [11:39<00:00, 4.29it/s, loss=0.16] steps: 100%|██████████| 2998/3000 [11:39<00:00, 4.29it/s, loss=0.16] steps: 100%|██████████| 2999/3000 [11:39<00:00, 4.29it/s, loss=0.16] steps: 100%|██████████| 2999/3000 [11:39<00:00, 4.29it/s, loss=0.16] steps: 100%|██████████| 3000/3000 [11:39<00:00, 4.29it/s, loss=0.16] steps: 100%|██████████| 3000/3000 [11:39<00:00, 4.29it/s, loss=0.16] steps: 100%|██████████| 3000/3000 [11:39<00:00, 4.29it/s, loss=0.16] [2023-08-07 20:34:01] epoch 1/1 [2023-08-07 20:34:01] saving checkpoint: /workspace/KaraDetroit_loar/Model/my_model.safetensors [2023-08-07 20:34:01] model saved. Eğitilen LoRA modelini
Modelklasöründen alın. Örnek:my_model.safetensors.
Eğitilen LoRA modeliyle görüntü oluşturun
Görüntü oluşturma için eğitilen LoRA modelini SD WebUI LoRA dizinine yükleyin. Metinden görüntüye oluşturmayı etkinleştirmek için EAS ile 5 dakikada bir Stable Diffusion hizmeti dağıtın.
LoRA model dosyasını SD WebUI LoRA dizinine aşağıdaki yöntemlerden birini kullanarak yükleyin.
Stable Diffusion WebUI Cluster Edition
Bir küme çalışma zamanı görüntüsü seçin (örnek: stable-diffusion-webui:4.2-cluster-webui). Hizmet başladıktan sonra, bağlanan OSS yolunda
/data-{current_user_ID}/models/Loraotomatik olarak oluşturulur.-
Command to Run bölümüne aşağıdaki parametreleri ekleyin:
-
--lora-dir: İsteğe bağlı parametre.--lora-dirparametresi belirtilmezse, tüm kullanıcıların model dosyaları yalıtılır. Yalnızca{OSS_path}/data-{current_user_ID}/models/Loraiçindeki model dosyaları yüklenir.--lora-dirparametresi belirtilirse, tüm kullanıcılar model dosyalarını belirtilen dizinden ve{OSS_path}/data-{current_user_ID}/models/Lorakonumundan yükler. Örneğin,--lora-dir /code/stable-diffusion-webui/data-oss/models/Lora.
--data-dir {OSS_mount_path}, örneğin,--data-dir /code/stable-diffusion-webui/data-oss.
-
-
LoRA model dosyasını
{OSS_path}/data-{current_user_ID}/models/Lorakonumuna yükleyin. Örneğin,oss://bucket-test/data-oss/data-1596******100/models/Lora.Not/data-{current_user_ID}/models/Lorayolu, hizmet başladıktan sonra otomatik olarak oluşturulur. LoRA model dosyasını daha sonra yükleyin.Sağ üst köşedeki profil resminize tıklayarak
{current_user_ID}değerini bulun.
Stable Diffusion WebUI Basic Edition
-clusterolmayan bir çalışma zamanı görüntüsü seçin (örnek: stable-diffusion-webui:4.2-standard). Hizmet başladıktan sonra, bağlanan OSS yolunda/models/Loraotomatik olarak oluşturulur.Command to Run bölümüne
--data-dir {OSS_mount_path}parametresini ekleyin. Örneğin,--data-dir /code/stable-diffusion-webui/data-oss.-
LoRA model dosyasını
{OSS_path}/models/Lorakonumuna yükleyin. Örneğin,oss://bucket-test/data-oss/models/Lora.Not/models/Lorayolu, hizmet başladıktan sonra otomatik olarak oluşturulur. LoRA model dosyasını daha sonra yükleyin.