Recommended Posts

스테이블 디퓨젼 캐릭터 학습 가이드: LoRA & ControlNet 활용법 완벽 정리

스테이블 디퓨젼에서 캐릭터 학습 및 LoRA, ControlNet을 활용한 단계별 튜토리얼


1. 스테이블 디퓨젼에서 캐릭터 학습시키는 방법 (LoRA 활용)

 개요

캐릭터 학습이란 특정 스타일, 얼굴, 복장 등을 AI가 인식하도록 훈련하여 프롬프트를 입력했을 때 원하는 결과를 얻는 과정입니다. 가장 많이 사용되는 방법은 **LoRA(Low-Rank Adaptation)**을 활용한 학습이며, 이는 기존 모델을 변형하지 않고 가볍게 학습시킬 수 있는 방법입니다.


 1단계: 학습 환경 준비하기

먼저 학습을 진행할 환경을 설정합니다.

(1) 필수 도구 설치

  • Stable Diffusion WebUI (AUTOMATIC1111)
  • Python 3.10+
  • CUDA 지원 NVIDIA GPU
  • xFormers (VRAM 최적화용, 선택사항)

설치 방법은 [AUTOMATIC1111 GitHub]를 참고하세요.

(2) 필요한 라이브러리 설치

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

pip install -r requirements.txt


 2단계: 학습용 데이터셋 준비

캐릭터 학습을 위해 고품질의 이미지 데이터셋을 준비해야 합니다.

(1) 이미지 수집

  • 최소 20~50장 이상의 이미지 필요
  • 동일한 조명, 스타일, 얼굴이 잘 보이는 이미지 선택
  • 이미지 크기: 512x512 또는 768x768로 리사이징
  • 배경이 복잡한 경우 rembg (배경제거 도구) 사용 추천

(2) 태그 추가 (DeepDanbooru 활용)

AI가 특징을 학습하기 위해 **태그(Labeling)**가 필요합니다.

  • WebUI의 DeepDanbooru 확장 기능을 설치하여 자동 태깅
  • 예제 태그:

 1girl, blonde hair, blue eyes, smile, anime style, school uniform


 3단계: LoRA 학습 실행

(1) 학습 스크립트 실행

AUTOMATIC1111의 WebUI에서 kohya-ss/sd-scripts를 활용하여 학습할 수 있습니다.

  •  LoRA 학습 스크립트 다운로드

git clone https://github.com/kohya-ss/sd-scripts.git

cd sd-scripts

pip install -r requirements.txt

  •  LoRA 학습 실행 예제

accelerate launch train_network.py \

  --pretrained_model_name_or_path="your_model_path" \

  --train_data_dir="your_dataset_path" \

  --output_dir="your_lora_output_path" \

  --resolution=512,512 \

  --batch_size=2 \

  --max_train_steps=2000 \

  --learning_rate=1e-4 \

  --network_dim=8

  • --max_train_steps=2000: 학습 횟수 (너무 많으면 과적합 주의)
  • --network_dim=8: LoRA의 압축 정도 (높을수록 원본 모델 변화가 적음)

 4단계: WebUI에서 LoRA 사용 방법

(1) LoRA 적용 방법

  1. WebUI 실행 후 "txt2img" 탭으로 이동
  2. "Stable Diffusion checkpoint"에서 원하는 기본 모델 선택
  3. "Additional Networks" 확장 기능에서 학습한 LoRA 파일 선택
  4. 프롬프트에 LoRA 적용

 <lora:your_lora_model:0.8>, 1girl, blonde hair, blue eyes, smile, anime style

(2) 사용자가 흔히 하는 실수

 잘못된 프롬프트 사용 → LoRA 태그를 넣지 않으면 적용되지 않음
과적합된 LoRA 사용 → 너무 강하게 적용하면 다른 스타일이 섞이지 않음
VRAM 부족 문제 → --network_dim 값을 조정하여 가볍게 학습


2. 스테이블 디퓨젼 학습 준비 단계별 가이드

데이터셋 준비 및 구조

학습용 데이터셋은 폴더 구조를 올바르게 구성해야 합니다.

📂 your_dataset_path/
 ├── 00001.jpg
 ├── 00002.jpg
 ├── captions/
 │ ├── 00001.txt (1girl, red hair, happy face)
│ ├──
00002.txt (blonde hair, blue eyes, school uniform)

이미지명과 캡션명이 동일해야 학습이 정상적으로 진행됩니다.


3. ControlNet과 LoRA 조합 튜토리얼

ControlNet은 기본 이미지의 포즈, 구조 등을 유지하면서 스타일을 변경하는 기능입니다.

1단계: ControlNet 확장 기능 설치

  1. WebUI 실행 후 Extensions → Available → "sd-webui-controlnet" 설치
  2. "Apply and Restart UI" 버튼 클릭

 2단계: ControlNet 설정 방법

  1. Base Model 선택 (SDXL or SD 1.5)
  2. ControlNet 활성화 (Enable 체크)
  3. Control Type 선택
  • Canny (윤곽선 유지)
  • Depth (깊이 정보 유지)
  • Pose (인체 포즈 유지)
  1. Reference Image 업로드

      5.   LoRA 적용 후 프롬프트 입력


 <lora:your_character:0.7>, 1girl, anime, red hair, cheerful

 3단계: ControlNet + LoRA 결과 예시

  • 기존 캐릭터 포즈를 유지하면서 스타일 변경 가능
  • 포즈, 윤곽선, 배경 조합하여 더 정교한 이미지 생성

Comments