Lakukan pelatihan model LoRA menggunakan Kohya_ss di EAS dan terapkan pada Stable Diffusion untuk pembuatan gambar.
Prasyarat
-
Aktifkan EAS dan buat ruang kerja default. Aktifkan PAI dan buat ruang kerja default.
-
Jika Pengguna RAM melakukan penyebaran model, berikan izin manajemen EAS. Ketergantungan dan izin produk cloud: EAS.
-
Buat bucket OSS dan folder dalam wilayah yang sama untuk menyimpan materi pelatihan, file model, dan log. Unggah file.
Siapkan penyimpanan OSS
-
Masuk ke Konsol OSS dan navigasi ke path bucket dalam wilayah yang sama. Contohnya,
oss://kohya-demo/kohya/. -
Buat folder proyek (contoh:
KaraDetroit_loar) dengan tiga subfolder:Image,Log, danModel. Secara opsional, unggah file konfigurasi JSON ke folder ini.-
Image: File sumber untuk materi pelatihan.
-
Model: File model setelah pelatihan selesai.
-
Log: Log pelatihan.
-
SS_config.json: File JSON untuk konfigurasi parameter batch (opsional). Konfigurasikan path folder, nama model output, dan parameter lainnya. GitHub. Contoh: SS_config.json.
-
-
Unggah gambar yang telah disiapkan ke folder
Image. Contoh ini menggunakan paket sampel: 100_pic.zip. Unduh, ekstrak, lalu unggah folder tersebut ke OSS.Penting-
Format gambar yang didukung adalah
.png,.jpg,.jpeg,.webp, dan.bmp. -
Setiap gambar harus memiliki file deskripsi dengan nama yang sama dan ekstensi file
.txt. Deskripsi harus berada di baris pertama. Jika sebuah gambar memiliki beberapa deskripsi, pisahkan dengan koma. -
Nama folder gambar harus mengikuti format: angka_nama (contoh: 100_pic). Angka tersebut menentukan jumlah pengulangan per gambar selama pelatihan (biasanya 100+). Total iterasi pelatihan harus melebihi 1.500.
-
Jika folder berisi 10 gambar, masing-masing dilatih sebanyak
1500/10=150kali. Atur angka pada nama folder menjadi "150". -
Jika folder berisi 20 gambar, masing-masing dilatih sebanyak
1500/20=75 (<100)kali. Atur angka pada nama folder menjadi "100".
-
-
Terapkan layanan Kohya_ss
Masuk ke Konsol PAI. Pilih wilayah di bagian atas halaman. Kemudian, pilih ruang kerja yang diinginkan dan klik Elastic Algorithm Service (EAS).
Klik Deploy Service. Di bagian Custom Model Deployment, klik Custom Deployment.
-
Di halaman Custom Deployment, konfigurasikan parameter menggunakan formulir atau dengan menentukan konfigurasi JSON.
Konfigurasi formulir
Parameter
Deskripsi
Basic Information
Service Name
Nama kustom. Contoh: kohya_ss_demo.
Environment Information
Deployment Method
Pilih Image-based Deployment dan pilih Enable Web App.
Image Configuration
Dalam daftar Alibaba Cloud Image, pilih kohya_ss > kohya_ss:2.2.
CatatanPilih versi terbaru saat deployment.
Storage Mount
Pilih OSS sebagai tipe mount dan konfigurasikan parameter berikut:
-
Uri: Path OSS dalam wilayah yang sama. Contoh:
oss://kohya-demo/kohya/. -
Mount Path: Path kustom. Contoh:
/workspace.PentingMatikan sakelar Read-Only. Jika tidak, file model tidak dapat ditulis ke OSS.
Command to Run
Otomatis dikonfigurasi setelah pemilihan image. Contoh:
python -u kohya_gui.py --listen=0.0.0.0 --server_port=8000 --headless.-
--listen: Mengikat ke alamat IP tertentu untuk permintaan eksternal. -
--server_port: Nomor port pendengar.
Resource Information
Resource Type
Pilih Public Resources.
Deployment
Disarankan: ml.gu7i.c16m60.1-gu30 untuk efisiensi biaya. Contoh ini menggunakan ml.gu7i.c8m30.1-gu30.
Konfigurasi JSON
Di bagian Service Configurations, klik Edit dan masukkan konfigurasi dalam format JSON.
Contoh konfigurasi JSON:
PentingPada contoh berikut, ubah konfigurasi pada baris 4 ("name") dan baris 18 ("oss") sesuai kebutuhan Anda.
{ "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 }] } -
-
Tinjau konfigurasi dan klik Deploy. Proses deployment memerlukan beberapa menit. Layanan siap digunakan ketika Service Status berubah menjadi Running.
Lakukan pelatihan model LoRA
-
Di halaman Overview layanan, klik Web applications untuk membuka halaman layanan Kohya_ss.
-
Pilih LoRA (LoRA).
-
(Opsional) Atur Configuration file. Lewati jika file
SS_config.jsontidak tersedia.CatatanPath-nya merupakan gabungan dari Mount Path pada Form configuration, path folder OSS, dan nama file. Contoh:
/workspace/KaraDetroit_loar/SS_config.json. -
Atur SourceModel. Format safetensors lebih direkomendasikan daripada checkpoint karena keamanannya yang lebih baik.
Di tab Source model, atur Model Quick Pick menjadi
runwayml/stable-diffusion-v1-5dan atur Save trained model as menjadisafetensors. -
Atur Folders. Masukkan path
Image,Log, danModeldari OSS, serta tentukan nama file output.Parameter
Deskripsi
Image folder
Folder gambar pelatihan. Gabungkan Mount Path dari Form configuration dengan path OSS
Image. Contoh:/workspace/KaraDetroit_loar/Image.Logging folder
Folder output log. Gabungkan Mount Path dari Form configuration dengan path OSS
Log. Contoh:/workspace/KaraDetroit_loar/Log.Output folder
Folder output model. Gabungkan Mount Path dari Form configuration dengan path OSS
Model. Contoh:/workspace/KaraDetroit_loar/Model.Model output name
Nama output model. Contohnya, my_model.
-
Atur Parameters. Untuk nilai contoh, lihat isi file
SS_config.jsonpada langkah Prepare OSS storage structure.Parameter
Deskripsi
LoRA Type
Jenis LoRA. Opsi:
-
LoCON: Menyesuaikan setiap layer SD, sepertiRes,Block, danTransformer. -
LoHA: Memproses informasi lebih banyak dengan ukuran yang sama.
LoRA network weights
Bobot jaringan LoRA. Untuk melanjutkan pelatihan, pilih output LoRA sebelumnya (opsional).
Train batch size
Ukuran batch pelatihan. Nilai yang lebih besar memerlukan VRAM lebih banyak.
Epoch
Jumlah epoch (satu kali melewati seluruh data pelatihan). Hitung secara manual:
-
Total iterasi pelatihan di Kohya = Jumlah gambar pelatihan × Pengulangan × Jumlah epoch / Ukuran batch pelatihan. -
Total iterasi pelatihan di WebUI = Jumlah gambar pelatihan × Pengulangan.
Dengan class images, total iterasi menjadi dua kali lipat baik di Kohya maupun WebUI, dan penyimpanan model di Kohya menjadi separuhnya.
Save every N epochs
Menyimpan model setiap N epoch. Contoh: atur ke 2 untuk menyimpan setiap 2 epoch.
Caption Extension
Ekstensi file untuk file caption, misalnya .txt (opsional).
Mixed precision
Precision campuran. Opsi: no, fp16, bf16. Gunakan bf16 untuk GPU dengan VRAM 30+ GB.
Save precision
Precision penyimpanan. Sama seperti di atas.
Number of CPU threads per core
Thread CPU per core. Mempengaruhi penggunaan VRAM. Sesuaikan berdasarkan spesifikasi instans Anda.
Learning rate
Laju pembelajaran. Default: 0,0001.
LR Scheduler
Penjadwal laju pembelajaran. Pilih fungsi seperti
cosineataucosine with restartsesuai kebutuhan.LR Warmup (% of steps)
Langkah warmup. Default: 10. Atur ke 0 untuk melewati warmup.
Optimizer
Optimizer. Default:
AdamW8bit.DAdaptationmemungkinkan penyetelan otomatis.Max Resolution
Resolusi maksimum. Atur berdasarkan properti gambar.
Network Rank (Dimension)
Kompleksitas model. Nilai 128 sudah cukup untuk sebagian besar skenario.
Network Alpha
Tidak boleh melebihi Network Rank (Dimension). Pengaturan umum: Rank 128, Alpha 64.
Convolution Rank (Dimension)
& Convolution Alpha
Tingkat konvolusi. Mengontrol cakupan fine-tuning. Sesuaikan berdasarkan LoRA Type.
Rekomendasi resmi Kohya:
-
LoCon:dim <= 64,alpha = 1(atau lebih rendah). -
LoHA:dim <= 32,alpha = 1.
clip skip
Jumlah skip CLIP. Rentang: 1 hingga 12. Nilai lebih rendah menghasilkan gambar yang lebih mirip prompt input.
-
Untuk model realistis, pilih 1.
-
Untuk model bergaya anime, pilih 2.
Sample every n epoch
Menghasilkan contoh gambar setiap N epoch.
Sample Prompts
Prompt sampel. Gunakan perintah dengan parameter:
-
--n: Prompt, Prompt negatif. -
--w: Lebar gambar. -
--h: Tinggi gambar. -
--d: Seed gambar. -
--l: Relevansi prompt (cfg). -
--s: Langkah iterasi (steps).
-
-
Di bagian bawah halaman, klik Start training.
-
Klik nama layanan di daftar layanan EAS untuk membuka halaman detail, lalu klik Log untuk melihat progres pelatihan.
Halaman log menampilkan output progress bar dari tugas inferensi model, termasuk persentase penyelesaian, jumlah item yang diproses dari total keseluruhan, dan kecepatan pemrosesan.
Saat
model savedmuncul di log, pelatihan telah selesai.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. -
Ambil model LoRA yang telah dilatih dari folder
Model. Contoh:my_model.safetensors.
Hasilkan gambar dengan model LoRA yang telah dilatih
Unggah model LoRA yang telah dilatih ke direktori LoRA SD WebUI untuk pembuatan gambar. Terapkan layanan Stable Diffusion dengan EAS dalam 5 menit untuk mengaktifkan pembuatan gambar teks-ke-gambar.
Unggah file model LoRA ke direktori LoRA SD WebUI menggunakan salah satu metode berikut.
Stable Diffusion WebUI Edisi Kluster
-
Pilih citra runtime kluster (contoh: stable-diffusion-webui:4.2-cluster-webui). Setelah layanan dimulai,
/data-{current_user_ID}/models/Loraakan dibuat otomatis di path OSS yang dimount. -
Di bagian Command to Run, tambahkan parameter berikut:
-
--lora-dir: Parameter opsional.-
Jika parameter
--lora-dirtidak ditentukan, file model untuk semua pengguna diisolasi. Hanya file model di{OSS_path}/data-{current_user_ID}/models/Lorayang dimuat. -
Jika parameter
--lora-dirditentukan, semua pengguna memuat file model dari direktori yang ditentukan dan{OSS_path}/data-{current_user_ID}/models/Lora. Contohnya,--lora-dir /code/stable-diffusion-webui/data-oss/models/Lora.
-
-
--data-dir {OSS_mount_path}, contohnya,--data-dir /code/stable-diffusion-webui/data-oss.
-
-
Unggah file model LoRA ke
{OSS_path}/data-{current_user_ID}/models/Lora. Contohnya,oss://bucket-test/data-oss/data-1596******100/models/Lora.CatatanPath
/data-{current_user_ID}/models/Loradibuat otomatis setelah layanan dimulai. Unggah file model LoRA setelah itu.Temukan
{current_user_ID}dengan mengklik foto profil Anda di pojok kanan atas.
Stable Diffusion WebUI Edisi Dasar
-
Pilih citra runtime non-
-cluster(contoh: stable-diffusion-webui:4.2-standard). Setelah layanan dimulai,/models/Loraakan dibuat otomatis di path OSS yang dimount. -
Di bagian Command to Run, tambahkan parameter
--data-dir {OSS_mount_path}. Contohnya,--data-dir /code/stable-diffusion-webui/data-oss. -
Unggah file model LoRA ke
{OSS_path}/models/Lora. Contohnya,oss://bucket-test/data-oss/models/Lora.CatatanPath
/models/Loradibuat otomatis setelah layanan dimulai. Unggah file model LoRA setelah itu.