آموزش ساخت و آموزش مدل LoRA
LoRA چیست؟
LoRA (Low-Rank Adaptation) روشی برای Fine-tuning مدلهای Stable Diffusion است.
به کمک LoRA میتوانید بدون نیاز به آموزش کامل مدل، سبکها، شخصیتها یا مفاهیم خاص را به مدل اصلی اضافه کنید.
فایلهای LoRA معمولاً بین ۱۰ تا ۲۰۰ مگابایت حجم دارند و میتوانند کیفیت و کنترل خروجی را بهطور چشمگیری افزایش دهند.
پیشنیازها
برای آموزش یک مدل LoRA سفارشی، نیاز دارید به:
- کارت گرافیک NVIDIA با حداقل ۸ گیگابایت VRAM (۱۲ گیگابایت توصیه میشود)
- نصب Python 3.10 و CUDA Toolkit
- ۱۰ تا ۵۰ تصویر با کیفیت بالا از موضوع مورد نظر
- حداقل ۲۰ گیگابایت فضای خالی دیسک
مرحله ۱: آمادهسازی دیتاست
تصاویر خود را جمعآوری کنید. نکات مهم برای کیفیت بالای آموزش:
- ۱۵ تا ۳۰ تصویر برای یک شخصیت یا سبک خاص کافی است
- تصاویر باید زوایا، نور و حالات مختلف را پوشش دهند
- حداقل رزولوشن 512×512 پیکسل
- بدون واترمارک یا متن روی تصویر
نمونه مسیر دادهها:
training_data/my_character/
مرحله ۲: نصب ابزار Kohya_ss
Kohya_ss محبوبترین ابزار برای آموزش LoRA با رابط گرافیکی است.
نصب:
git clone https://github.com/bmaltais/kohya_ss.git
cd kohya_ss
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
اجرای رابط کاربری:
python kohya_gui.py
مرحله ۳: تنظیمات پایه
در GUI به تب LoRA بروید و فیلدهای زیر را وارد کنید:
- Model: مسیر مدل پایه (مثلاً
SD 1.5یاSDXL) - Image folder: مسیر پوشه تصاویر که آماده کردهاید
- Output folder: مسیر ذخیره نتایج آموزش
- Output name: نام مدل نهایی مثلاً
my_character_lora
مرحله ۴: پارامترهای آموزش
تنظیمات مهم برای شروع:
| پارامتر | مقدار پیشنهادی | توضیح |
|---|---|---|
| Network Rank (Dimension) | 32 | عمق شبکه، معمولاً بین 8 تا 128 تنظیم میشود |
| Network Alpha | 16 | معمولاً نصف مقدار Rank |
| Learning Rate | 0.0001 | نرخ یادگیری (1e−4 مقدار استاندارد) |
| Batch Size | 1–2 | بسته به VRAM |
| Epochs | 10–20 | تعداد دفعات آموزش کل مجموعه داده |
| Save every N epochs | 2 | ذخیره مدل در فواصل منظم |
مرحله ۵: Caption کردن تصاویر
هر تصویر باید یک توضیح متنی (caption) داشته باشد.
دو شیوه برای ایجاد caption وجود دارد:
- دستی: برای هر تصویر یک فایل
.txtبا همان نام ایجاد کنید و داخل آن توضیح بنویسید. - خودکار: استفاده از ابزارهای BLIP یا WD14 Tagger در Kohya برای تولید خودکار Captionها.
نمونه Caption:
a photo of [trigger_word], wearing red shirt, smiling, outdoor
کلمهی trigger_word همان واژهای است که بعداً هنگام تولید تصویر در Prompt استفاده میشود.
مرحله ۶: اجرای فرآیند آموزش
پس از تنظیمات، روی دکمه Start Training کلیک کنید.
فرآیند ممکن است بین ۳۰ دقیقه تا چند ساعت طول بکشد بسته به تعداد تصاویر و قدرت GPU.
در طول آموزش، پیشرفت را در ترمینال دنبال کنید.
نتیجه نهایی معمولاً در پوشهی output ذخیره میشود.
مرحله ۷: تست مدل ساختهشده
بعد از تکمیل آموزش، فایل .safetensors تولید شده را به مسیر زیر کپی کنید:
models/Lora/
سپس در Prompt از آن استفاده کنید:
<lora:my_character_lora:0.8> a photo of [trigger_word], standing in a garden
عدد ۰.۸ شدت یا قدرت LoRA را تعیین میکند. معمولاً مقدار بین ۰.۵ تا ۱.۰ بهترین نتایج را میدهد.
بهینهسازی و عیبیابی
اگر نتایج مطلوب نیست، موارد زیر را بررسی کنید:
- Overfitting: تعداد Epoch را کاهش دهید یا Learning Rate را کم کنید.
- Underfitting: Epoch یا Learning Rate را افزایش دهید.
- تصاویر مبهم: مقدار Rank را بیشتر کنید (۶۴ یا ۱۲۸).
- سبک ضعیف: قدرت LoRA (
:value) را در Prompt افزایش دهید.
نکات پیشرفته
- از Regularization images برای جلوگیری از فراموشی مفاهیم عمومی استفاده کنید.
- Optimizerهای سبکتر مثل
AdamW8bitدر Kohya باعث کاهش مصرف VRAM میشوند. - چندین نسخه با تنظیمات مختلف آموزش دهید و بهترین را با مقایسه خروجی انتخاب کنید.
- میتوانید از Noise offset و Clip skip برای تنظیم دقیقتر سبک استفاده کنید.
اشتراکگذاری مدل
پس از آزمایش و ارزیابی نتایج، LoRA خود را با دیگران به اشتراک بگذارید:
- Civitai برای انتشار و مشاهده نظرات کاربران
- HuggingFace برای انتشار رسمی و ذخیره نسخهها
پیش از انتشار، نام، توضیحات، و چند تصویر نمونه را اضافه کنید تا جامعه بهتر بتواند مدل شما را ارزیابی کند.
✅ تبریک!
اکنون شما یک مدل LoRA اختصاصی ساختهاید. با استفاده از این روش میتوانید شخصیتها، سبکها و ژانرهای دلخواه را به مدلهای Stable Diffusion خود اضافه کنید.