제 2의 네로 (AI)

스테이블 디퓨전 9편 - LoRA 만들기

Dr. 네로 2025. 9. 10. 14:02
반응형

이 글은 닥터 네로와 개조된 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 확장 기능)

WD 1.4 Tagger 설치 방법

Extension - Available - Load from 클릭 후 검색창에 WD 검색

WD 1.4 Tagger install 후 Installed 탭에서 Check for updates 클릭 후 Apply and Restart UI 클릭

새로 생긴 tagger 탭

 

학습 툴

  • Automatic1111의 Train 탭
  • 또는 Kohya SS GUI (LoRA 학습용으로 많이 씀)

Automatic1111의 Train 탭


⚡ 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 제작 시 주의점

  1. 저작권 캐릭터는 공유하지 말고 개인 사용에만 활용
  2. 데이터셋 품질이 곧 결과물 품질 → 흐릿하거나 왜곡된 이미지는 삭제
  3. 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. 확장 설치

  1. Web UI 상단 Extensions → Install from URL (위의 첫 그림처럼 안될 때)
  2. URL에 picobyte 포크를 넣고 Install
https://github.com/picobyte/stable-diffusion-webui-wd14-tagger
  1. 하단 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. 단일 이미지 태깅(빠른 역프롬프트)

  1. Tagger 탭(또는 이미지 업로더)에서 이미지 1장 업로드
  2. Interrogator: wd14 선택 → Interrogate 클릭
  3. 결과 태그를 복사해 프롬프트/캡션에 활용합니다.

B. 폴더 일괄 태깅(LoRA 데이터셋 준비 핵심)

  1. Tagger 탭에서 Batch / Directory 기능 선택
  2. Input folder: 학습용 이미지 폴더
  3. Write captions(각 이미지명과 동일한 .txt 저장) 켜기
  4. Tag thresholds 조정 후 Run
    • General threshold: 0.35 ~ 0.40 (너무 낮으면 잡태그, 너무 높으면 누락)
    • Character threshold: 0.80 ~ 0.90 (캐릭터 오탐 줄이기)
    • Exclude ratings 옵션으로 rating:safe 등은 보통 제외
    • 태그 정렬/최대개수 제한 옵션이 있으면 상위 50~80개 정도로 컷 권장
  5. 실행하면 각 이미지 옆에 이미지이름.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로 뽑은 캡션, 이렇게 쓰면 맛있다

  1. 초안은 자동 태깅으로 빠르게 만들기
  2. 불필요/중복 태그 정리(색/소품 과다 태그 제거, 핵심 특징만 남기기)
  3. 일관 태그 통일: silver hair vs white hair 처럼 표현 통일
  4. 소량 이미지 LoRA면 태그 수를 30~60개 수준으로 슬림하게(오버피팅 방지)
  5. 테스트 생성 시 <lora:mychar:0.7>로 결과 확인 → 필요시 태그 재정비

원하시면 **스크린샷 기준의 ‘한 장짜리 치트시트’**로도 정리해드릴게요.
세팅값 캡처 보내주시면, 거기에 맞춰 임계치·필터·후편집 루틴까지 최적화 팁 얹어드립니다 😼💡

(참고: WD14 Tagger 확장 및 설치/모델 자동 다운로드 안내, WD 1.4 모델 정보 문서)

반응형