Hướng dẫn huấn luyện Stable Diffusion LoRA với lora-scripts từ tập dữ liệu nhỏ

Việc tạo ra các tác phẩm nghệ thuật AI mang phong cách cá nhân hoặc nhân vật cụ thể thường đòi hỏi các mô hình được tinh chỉnh kỹ lưỡng. Thay vì sử dụng các mô hình có sẵn không hoàn toàn ưng ý, bạn có thể tự huấn luyện một mô hình LoRA (Low-Rank Adaptation) riêng. lora-scripts là một bộ công cụ mạnh mẽ, giúp đơn giản hóa toàn bộ quy trình này, cho phép bắt đầu chỉ với khoảng 50 hình ảnh mẫu mà không cần kiến thức lập trình chuyên sâu.

1. Tại sao nên sử dụng lora-scripts?

lora-scripts đóng gói các quy trình phức tạp như chuẩn bị dữ liệu, gán nhãn, cấu hình tham số và huấn luyện vào các kịch bản thực thi dễ dàng. Những ưu điểm chính bao gồm:

  • Thân thiện với người dùng: Không cần hiểu sâu về toán học đằng sau LoRA, công cụ đã thiết lập sẵn các cấu hình tối ưu.
  • Yêu cầu phần cứng thấp: Hỗ trợ huấn luyện trên các dòng card đồ họa phổ thông như RTX 3060 (12GB VRAM).
  • Hiệu quả với dữ liệu ít: Chỉ cần từ 50 đến 200 ảnh chất lượng cao để đạt được kết quả nhận diện tốt.
  • Đa năng: Ngoài Stable Diffusion cho hình ảnh, công cụ còn hỗ trợ tinh chỉnh các mô hình ngôn ngữ lớn (LLM).

2. Chuẩn bị môi trường hệ thống

Trước khi bắt đầu, hãy đảm bảo máy tính của bạn đã cài đặt Python 3.10, Git và trình điều khiển NVIDIA mới nhất.

# Tải mã nguồn lora-scripts
git clone https://github.com/akfamily/lora-scripts.git
cd lora-scripts

# Khởi tạo môi trường ảo để tránh xung đột thư viện
python -m venv venv_lora
# Kích hoạt trên Windows:
venv_lora\Scripts\activate
# Kích hoạt trên Linux:
source venv_lora/bin/activate

# Cài đặt các gói phụ trợ cần thiết
pip install --upgrade pip
pip install -r requirements.txt

3. Chuẩn bị tập dữ liệu huấn luyện

Chất lượng của mô hình phụ thuộc trực tiếp vào dữ liệu đầu vào. Đối với việc huấn luyện một nhân vật hoặc phong cách cụ thể:

  • Số lượng: 50-200 ảnh chất lượng cao (HD trở lên).
  • Đa dạng: Bao gồm nhiều góc độ, biểu cảm, trang phục và hậu cảnh khác nhau.
  • Định dạng: Ưu tiên ảnh vuông (512x512 hoặc 768x768) ở định dạng PNG hoặc JPG.

Tạo thư mục chứa dữ liệu bên trong dự án:

mkdir -p training_data/my_character

4. Quy trình huấn luyện 5 bước

Bước 1: Tự động gán nhãn (Tagging)

Mô hình cần hiểu nội dung trong ảnh thông qua các từ khóa (tags). Bạn có thể sử dụng công cụ có sẵn để quét và tạo mô tả tự động.

python tools/tagger.py --src_dir training_data/my_character --out_file metadata.json

Sau khi chạy, hãy kiểm tra tệp metadata.json. Bạn nên thêm từ khóa nhận diện đặc trưng (ví dụ: tên nhân vật) vào đầu mỗi mô tả để AI dễ dàng liên kết đặc điểm với từ khóa đó.

Bước 2: Thiết lập tham số cấu hình

Sử dụng tệp YAML để quản lý các thông số huấn luyện. Bạn nên tạo một bản sao từ tệp mặc định.

cp configs/default_config.yaml configs/custom_train.yaml

Các thông số quan trọng cần lưu ý trong tệp custom_train.yaml:

  • train_data_dir: Đường dẫn tới thư mục ảnh.
  • base_model: Đường dẫn tới mô hình nền (như SD 1.5 hoặc SDXL).
  • lora_rank (Network Rank): Thường đặt từ 8 đến 32. Rank cao hơn cho phép học nhiều chi tiết nhưng dễ gây nặng mô hình.
  • batch_size: Số ảnh xử lý cùng lúc. Card 8GB VRAM nên đặt là 1 hoặc 2.
  • learning_rate: Tốc độ học, khởi đầu tốt nhất là 1e-4.

Bước 3: Thực thi quá trình huấn luyện

Chạy lệnh sau để bắt đầu quá trình tính toán:

python train_network.py --config configs/custom_train.yaml

Trong quá trình này, hãy theo dõi giá trị Loss. Nếu Loss giảm dần và ổn định ở mức thấp, mô hình đang học tốt. Nếu Loss biến động mạnh hoặc tăng cao, bạn cần xem lại dữ liệu hoặc giảm tốc độ học.

Bước 4: Kiểm tra mô hình trong Stable Diffusion

Sau khi hoàn tất, tệp mô hình .safetensors sẽ xuất hiện trong thư mục đầu ra. Để sử dụng:

  1. Copy tệp vào thư mục models/Lora của Stable Diffusion WebUI.
  2. Trong giao diện WebUI, thêm cú pháp <lora:ten_file:0.75> vào prompt.
  3. Thử nghiệm với các mức Weight (trọng số) từ 0.5 đến 1.0 để tìm điểm cân bằng giữa phong cách mới và tính linh hoạt của mô hình gốc.

Bước 5: Tối ưu hóa và khắc phục lỗi

Nếu kết quả không như mong đợi, hãy tham khảo bảng điều chỉnh sau:

Hiện tượng Nguyên nhân phổ biến Giải pháp
Ảnh tạo ra không giống mẫu Dữ liệu quá ít hoặc thiếu đặc trưng Bổ sung thêm ảnh rõ nét, gán nhãn chi tiết hơn.
Ảnh bị biến dạng (Overfitting) Huấn luyện quá nhiều vòng (Epochs) Giảm số lượng Epochs hoặc giảm Learning Rate.
Lỗi tràn bộ nhớ (Out of Memory) Batch size quá lớn Giảm Batch size xuống 1 và bật Gradient Checkpointing.

5. Kết luận

Việc tự huấn luyện LoRA bằng lora-scripts mở ra khả năng tùy biến vô hạn cho các nhà sáng tạo nội dung AI. Bằng cách làm chủ quy trình từ chuẩn bị dữ liệu đến điều chỉnh tham số, bạn có thể tạo ra các trợ lý vẽ tranh hiểu rõ ý tưởng và phong cách riêng của mình.

Thẻ: stable-diffusion lora machine-learning python AI-Generation

Đăng vào ngày 30 tháng 8 lúc 18:38