스테이블 디퓨전 9편 - LoRA 만들기
이 글은 닥터 네로와 개조된 GPT가 작성했습니다.🐾
이번 편은 드디어 AI에게 ‘진짜 기억’을 심는 방법을 다룹니다.
실전 가이드 중심으로 준비했습니다.
9편 – LoRA 제작: 내 캐릭터를 AI에게 가르치기
“AI의 뇌에 캐릭터를 심는 기술”
지난 편까지는 Seed, img2img, FaceSwapper 등을 활용해 AI가 기억 못 하는 캐릭터를 흉내 내게 만드는 방법을 배웠습니다.
하지만 그건 어디까지나 임시방편입니다.
이번에는 다릅니다.
이제는 AI의 뇌 속에 내가 원하는 캐릭터를 직접 학습시켜 심어주는 기술, 바로 LoRA 제작을 다룹니다.
🧠 LoRA란 무엇인가?
- Low-Rank Adaptation의 약자
- 기존 모델에 “추가 기억”을 심어주는 작은 학습 모듈
- 크기는 수 MB~수백 MB로 가볍고, 모델 위에 얹어서 사용할 수 있음
👉 즉, 내가 원하는 캐릭터나 스타일을 LoRA로 학습시키면,
어떤 씬에서든 <lora:내캐릭터:0.7> 한 줄로 소환 가능!
🛠️ LoRA 제작을 위한 준비물
기본 모델 (Checkpoint)
- 실사 캐릭터 따로 애니 캐릭터 따로 추천드립니다
학습용 이미지 (Dataset)
- 최소 10장~30장
- 얼굴, 전신, 다양한 포즈가 고르게 포함되면 좋음
- 배경은 단순하거나 크롭해서 캐릭터가 잘 보이도록 정리
라벨링(Tagging)
- 이미지마다 태그를 붙여줘야 AI가 학습 가능
- 예: 1girl, white hair, red eyes, black armor
- 자동 라벨링 툴: WD 1.4 Tagger (Automatic1111 확장 기능)
Extension - Available - Load from 클릭 후 검색창에 WD 검색
WD 1.4 Tagger install 후 Installed 탭에서 Check for updates 클릭 후 Apply and Restart UI 클릭
학습 툴
- Automatic1111의 Train 탭
- 또는 Kohya SS GUI (LoRA 학습용으로 많이 씀)
⚡ LoRA 학습 핵심 개념 (간단 버전)
- Epoch: 데이터셋을 몇 번 반복 학습할지 (보통 5~10)
- Batch size: 한 번에 학습하는 이미지 수 (2~4 권장)
- Learning rate: 학습 속도 (기본 1e-4~1e-5)
- Resolution: 학습 이미지 크기 (512 또는 768)
👉 처음엔 기본값 그대로 두고, 데이터셋 퀄리티에 집중하는 게 더 중요합니다.
🧪 실전 워크플로우 예시
목표: “흰 머리, 붉은 눈, 검은 갑옷을 입은 여전사 LoRA 제작”
Step 1. 데이터셋 준비
- 15장의 일러스트 수집
- 포토샵/AI 툴로 크롭 → 캐릭터 중심
- WD Tagger로 자동 태깅 후 필요 없는 태그 삭제
Step 2. 학습 세팅
- Base model: anything-v5.safetensors
- Epoch: 8
- Batch size: 2
- Resolution: 512
- Output dir: /models/Lora/
Step 3. 학습 시작
- Automatic1111의 Train 탭 → LoRA 선택
- 데이터셋 경로 지정 후 Start
- 수 시간 후 .safetensors 파일 생성
Step 4. 테스트
- 생성된 LoRA를 models/Lora 폴더에 넣기
- 프롬프트에 다음 입력:
masterpiece, best quality, 1girl, <lora:whiteHairKnight_v1:0.7>
✨ 결과: Seed가 달라도 같은 캐릭터가 일관되게 생성됨!
🧭 LoRA 제작 시 유용한 팁
- 이미지 10장으로도 가능 → 다만 다양성이 부족할 수 있음
- 중복 태그 줄이기 → 예: 모든 이미지에 “long hair”가 있으면 LoRA가 머리 길이를 고정해버림
- 여러 버전 학습 → LoRA 강도(0.6, 0.8, 1.0)에 따라 테스트
⚠️ LoRA 제작 시 주의점
- 저작권 캐릭터는 공유하지 말고 개인 사용에만 활용
- 데이터셋 품질이 곧 결과물 품질 → 흐릿하거나 왜곡된 이미지는 삭제
- LoRA는 어디까지나 ‘추가 기억’ → 기본 모델과 궁합이 안 맞으면 결과가 이상할 수 있음
🪞 닥터 네로의 마무리
Seed는 기억을 흉내 내는 방법이었고,
img2img는 기억을 유지하는 장치였습니다.
하지만 LoRA는 다릅니다.
그건 곧 AI의 뇌 속에 캐릭터를 직접 심는 일입니다.
AI는 망각하지만,
LoRA를 학습시키는 순간,
AI는 비로소 당신이 원하는 캐릭터를 “기억”하게 됩니다.
근데 독자들 중엔 “내 PC 사양이 부족해서 못 돌려요…” 하는 분들이 꼭 있습니다.
👉 Colab은 그런 분들에게 클라우드에서 무료(또는 저렴하게) GPU로 AI 그림을 돌리는 대안이 되죠.
📘 마지막 편 – Google Colab에서 Automatic1111 실행하기
- Colab이란 무엇인가? (구글 클라우드에서 GPU 빌려쓰기)
- 무료 vs Pro 차이 (세션 시간, GPU 종류)
- A1111 Colab 노트북 실행법 (AUTOMATIC1111 전용 Colab 배포본)
- 모델 불러오기 (HuggingFace/Civitai에서 다운 → Google Drive 연동)
- 프롬프트 입력 & 이미지 생성 실습
- Colab 활용 시 주의사항 (세션 끊김, VRAM 제한, Pro 업그레이드 고려)
추가적으로 WD1.4 tagger에 대해 더 말씀드릴게요!
WD 1.4(= SmilingWolf wd-v1-4 tagger)는 데이터셋 자동 태깅용으로 가장 널리 쓰이는 도구예요. Automatic1111에서 “활성화 → 단일 이미지 태깅 → 폴더 일괄 태깅 → LoRA 학습용 캡션 저장”까지 한 번에 정리해드릴게요.
WD 1.4 태거가 뭐죠?
- 애니/일러스트 계열 이미지에 대해 **booru 스타일 태그(쉼표 구분)**를 자동으로 뽑아주는 모델입니다. 모델 본체는 SmilingWolf가 공개했고(ONNX 모델 + 태그 CSV), 일반 태그/캐릭터/등급까지 뽑을 수 있어요.
1) 설치 & 활성화 (Automatic1111)
A. 확장 설치
- Web UI 상단 Extensions → Install from URL (위의 첫 그림처럼 안될 때)
- URL에 picobyte 포크를 넣고 Install
https://github.com/picobyte/stable-diffusion-webui-wd14-tagger
- 하단 Apply and restart UI로 재시작
→ 이 포크는 원조(toriato)가 아카이브된 뒤 유지보수되는 분기라 최신 WebUI와 호환이 좋아요.
B. 모델(가중치) 준비
- 처음 실행 시 Hugging Face에서 WD 1.4 태거 모델을 자동 다운로드합니다. 별도 수동 배치는 보통 필요 없어요.
- 네트워크/권한 문제로 자동 다운로드가 막히면, SmilingWolf/wd-v1-4-swinv2-tagger-v2의 model.onnx와 selected_tags.csv를 받아 확장 폴더의 모델 디렉터리에 넣어주세요(동일 베이스파일명으로).
2) 어디서 쓰나요? (UI 위치)
- 재시작 후 상단 탭에 “Tagger”(혹은 WD14 관련 탭)가 생깁니다.
- 단일 이미지는 이미지 업로더 옆 Interrogate(탐색) 버튼에서 Interrogator: wd14를 선택해도 됩니다.
3) 가장 많이 쓰는 두 가지 모드
A. 단일 이미지 태깅(빠른 역프롬프트)
- Tagger 탭(또는 이미지 업로더)에서 이미지 1장 업로드
- Interrogator: wd14 선택 → Interrogate 클릭
- 결과 태그를 복사해 프롬프트/캡션에 활용합니다.
B. 폴더 일괄 태깅(LoRA 데이터셋 준비 핵심)
- Tagger 탭에서 Batch / Directory 기능 선택
- Input folder: 학습용 이미지 폴더
- Write captions(각 이미지명과 동일한 .txt 저장) 켜기
- Tag thresholds 조정 후 Run
- General threshold: 0.35 ~ 0.40 (너무 낮으면 잡태그, 너무 높으면 누락)
- Character threshold: 0.80 ~ 0.90 (캐릭터 오탐 줄이기)
- Exclude ratings 옵션으로 rating:safe 등은 보통 제외
- 태그 정렬/최대개수 제한 옵션이 있으면 상위 50~80개 정도로 컷 권장
- 실행하면 각 이미지 옆에 이미지이름.jpg.txt 같은 쉼표 구분 캡션 파일이 생성됩니다. 이 포맷은 A1111/Kohya 학습에서 그대로 읽힙니다. (Tagger 확장 기능 전반)
팁: 대량 태그 후엔 Dataset Tag Editor 확장으로 불필요 태그를 한꺼번에 정리하면 시간을 크게 절약합니다.
4) 권장 설정(현실적인 스타트)
- GPU 사용(onnxruntime-gpu): 가능하면 켜기(속도↑). onnx 설치 문제가 나면 확장 재설치/의존성 재설치를 먼저 시도.
- Threshold: 위 권장치로 시작해서 결과 보고 ±0.05씩 미세조정
- Underscore 유지: booru 태그(long_hair)는 언더스코어 유지가 관리에 유리
- 불필요 단어 필터: worst quality, lowres 같은 부정태그가 섞이면 학습 시 혼란 → 사전 필터/후편집으로 제거
- 캐릭터 이름 자동 태그는 편하지만, 오탐이 잦으니 높은 임계치(0.85↑)로 시작
5) 에러/자주 묻는 것 (빠른 체크리스트)
- Interrogate가 회색이거나 탭이 안 보임 → 확장 설치 후 UI 완전 재시작 필요. (확장 Readme 권고)
- wrap_gradio_gpu_call ImportError 같은 스크립트 로딩 에러 → 아카이브된 구버전(toriato 원본) 대신 picobyte 포크 사용 권장. 이미 깔았다면 삭제 후 포크 재설치.
- 모델 자동 다운로드 실패 → SmilingWolf 모델 페이지에서 model.onnx/selected_tags.csv 수동 배치(동일 파일명 규칙).
- 속도 너무 느림 → 해상도 큰 이미지 일괄 태깅 시 배치 크기 낮추고, 필요하면 T4/V100 Colab으로 태깅만 돌려도 OK.
6) WD 1.4로 뽑은 캡션, 이렇게 쓰면 맛있다
- 초안은 자동 태깅으로 빠르게 만들기
- 불필요/중복 태그 정리(색/소품 과다 태그 제거, 핵심 특징만 남기기)
- 일관 태그 통일: silver hair vs white hair 처럼 표현 통일
- 소량 이미지 LoRA면 태그 수를 30~60개 수준으로 슬림하게(오버피팅 방지)
- 테스트 생성 시 <lora:mychar:0.7>로 결과 확인 → 필요시 태그 재정비
원하시면 **스크린샷 기준의 ‘한 장짜리 치트시트’**로도 정리해드릴게요.
세팅값 캡처 보내주시면, 거기에 맞춰 임계치·필터·후편집 루틴까지 최적화 팁 얹어드립니다 😼💡
(참고: WD14 Tagger 확장 및 설치/모델 자동 다운로드 안내, WD 1.4 모델 정보 문서)