Recommended Posts
- Get link
- X
- Other Apps
스테이블 디퓨젼에서 캐릭터 학습 및 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 적용 방법
- WebUI 실행 후 "txt2img" 탭으로 이동
- "Stable Diffusion checkpoint"에서 원하는 기본 모델 선택
- "Additional Networks" 확장 기능에서 학습한 LoRA 파일 선택
- 프롬프트에 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 확장 기능 설치
- WebUI 실행 후 Extensions → Available → "sd-webui-controlnet" 설치
- "Apply and Restart UI" 버튼 클릭
2단계: ControlNet 설정 방법
- Base Model 선택 (SDXL or SD 1.5)
- ControlNet 활성화 (Enable 체크)
- Control Type 선택
- Canny (윤곽선 유지)
- Depth (깊이 정보 유지)
- Pose (인체 포즈 유지)
- Reference Image 업로드
5. LoRA 적용 후 프롬프트 입력
<lora:your_character:0.7>, 1girl, anime, red hair, cheerful
3단계: ControlNet + LoRA 결과 예시
- 기존 캐릭터 포즈를 유지하면서 스타일 변경 가능
- 포즈, 윤곽선, 배경 조합하여 더 정교한 이미지 생성
Comments
Post a Comment