آموزش ساخت و آموزش مدل 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 Alpha16معمولاً نصف مقدار Rank
Learning Rate0.0001نرخ یادگیری (1e−4 مقدار استاندارد)
Batch Size1–2بسته به VRAM
Epochs10–20تعداد دفعات آموزش کل مجموعه داده
Save every N epochs2ذخیره مدل در فواصل منظم

مرحله ۵: 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 خود اضافه کنید.

اگر نمی‌خواهی وقتت را صرف نصب و تنظیمات سرور کنی، می‌توانی یک سرور کاملاً آماده و از قبل پیاده‌سازی‌شده تهیه کنی و بلافاصله کار با GPU را شروع کنی.