kimyongtae.com
홈 / 강의 / AI 이미지·애니메이션 생성, 원리부터 / 4단계. 파인튜닝

4-4. 도구와 실습: LoRA 세 개 만들기

4단계에서 배운 것을 실제로 한다. 캐릭터, 화풍, 개념 LoRA를 하나씩 만든다. 이번 수업은 학습 도구를 고르는 법과, 세 실습의 절차를 정리한다. 명령어는 도구와 판에 따라 바뀌므로 무엇을 왜 하는지만 적는다.

학습 도구

LoRA 학습은 전용 도구로 한다. 0-6처럼 직접 짤 필요는 없다. 안에서 하는 일은 같다. 노이즈를 섞고, 방향을 맞히게 하고, A와 B를 움직인다.

도구형태강점
kohya sd-scripts명령줄 스크립트오래된 표준. SD 1.5, SDXL 계열의 자료와 설정 예시가 가장 많다
OneTrainer화면이 있는 프로그램설정을 눈으로 보며 고른다. 입문에 좋다
ai-toolkit설정 파일 + 화면새 모델을 빨리 지원한다. Flux 이후의 DiT 계열에 강하다
musubi-tuner명령줄 스크립트영상 모델과 최신 이미지 모델. 메모리를 아끼는 기능이 많다

고르는 기준은 하나다. 내가 쓸 기반 모델을 지원하는가. 새 모델이 나오면 어느 도구가 먼저 지원하는지 각 도구의 설명서에서 확인한다.

도구가 달라도 설정의 이름과 뜻은 거의 같다. 학습률, 랭크, alpha, 에폭, 해상도. 4-3에서 배운 그것이다.

필요한 장비

학습은 추론보다 메모리를 훨씬 많이 쓴다. 가중치 말고도 기울기와 계산 중간값을 들고 있어야 하기 때문이다.

기반 모델학습에 필요한 그래픽카드 메모리(대략)
SDXL 계열12~16GB
수십억~백억 대 DiT16~24GB, 설정에 따라 그 이상
영상 모델24GB 이상. 큰 메모리일수록 편하다

메모리가 모자랄 때 쓰는 방법들이 있다.

공통 절차

세 실습 모두 같은 순서다.

1. 목표를 정한다        무엇을 가르치고, 무엇은 프롬프트로 조절할 것인가
2. 그림을 모은다        4-2 의 원칙대로
3. 캡션을 단다          자동으로 만들고 손으로 고친다
4. 설정을 정한다        도구의 모델별 기본값에서 출발한다
5. 학습한다             중간 저장과 표본 생성을 켠다
6. 고른다               표본을 보고 알맞은 시점의 저장본을 고른다
7. 시험한다             강도를 바꿔 가며, 데이터에 없던 상황을 시킨다
8. 고친다               문제가 있으면 한 가지만 바꿔 다시 한다

1번을 건너뛰면 2번부터 전부 흔들린다. "이 LoRA를 켜면 무엇이 항상 나오고, 무엇은 내가 프롬프트로 바꿀 수 있어야 하는가"를 먼저 글로 적는다.

실습 1: 캐릭터 LoRA

목표: 내 캐릭터를 트리거 단어 하나로 불러내고, 자세, 표정, 배경, 옷은 프롬프트로 조절한다.

데이터 만들기

캐릭터 그림이 한두 장뿐이어도 된다. 3-4의 편집 모델로 불린다.

  1. 기준이 되는 캐릭터 그림을 정한다.
  2. 편집 모델로 여러 각도(정면, 옆, 반측면, 뒤), 여러 자세(서기, 앉기, 걷기), 여러 표정, 여러 배경을 만든다.
  3. 얼굴이 흔들린 것, 세부가 틀린 것을 버린다. 이 단계가 가장 중요하다. 틀린 그림이 섞이면 틀린 것을 배운다.
  4. 얼굴 클로즈업, 상반신, 전신을 골고루 20~30장 남긴다.

캡션

확인할 것

시험통과 기준
트리거 단어만캐릭터가 닮았다
데이터에 없던 자세시킨 자세로 그린다
다른 옷옷이 바뀌고 얼굴은 그대로다
ControlNet 포즈와 함께지정한 뼈대대로, 캐릭터가 유지된다
트리거 단어 없이그 캐릭터가 나오지 않는다

실습 2: 화풍 LoRA

목표: 켜기만 하면 그 화풍으로 그린다. 무엇을 그릴지는 프롬프트가 정한다.

데이터

캡션

설정에서 다른 점

확인할 것

시험통과 기준
데이터에 없던 대상 (동물, 건물)그 화풍으로 그려진다
강도 0.5, 1.0강도에 따라 화풍이 약하게, 강하게 들어간다
캐릭터 LoRA와 함께캐릭터는 유지되고 화풍만 바뀐다
데이터에 자주 나온 인물이 튀어나오나나오지 않는다

실습 3: 개념 LoRA

목표: 기반 모델이 모르거나 서툰 개념 하나를 가르친다. 특정 자세, 특정 의상, 특정 소품, 특정 구도.

데이터

캡션

확인할 것

시험통과 기준
트리거 단어 + 데이터에 없던 인물그 인물이 그 개념을 한다
캐릭터 LoRA와 함께내 캐릭터에 그 개념이 적용된다
트리거 단어 없이개념이 나타나지 않는다
화풍이 데이터 쪽으로 끌려가나끌려가지 않는다

개념 LoRA는 5단계와 바로 이어진다. 학습 데이터에서 걸러져 모델이 모르는 개념을 가르치는 방법이 이것이다.

설정을 찾는 실험

같은 데이터로 설정만 바꿔 여러 번 학습해 본다. 이 실험을 한 번 해 두면 감이 생긴다.

학습률 낮음학습률 기본학습률 높음
랭크 낮음
랭크 기본
랭크 높음

아홉 칸을 각각 학습하고, 같은 표본 프롬프트와 시드로 그림을 뽑아 표에 채운다. 어느 쪽으로 가면 미적합이고 어느 쪽으로 가면 과적합인지가 한눈에 보인다.

그래픽카드가 여러 장이면 칸마다 따로 돌린다. 한 장이면 며칠에 나눠 한다.

결과물 관리

LoRA 파일만 남기면 나중에 아무것도 알 수 없다. 함께 남긴다.

기반 모델이 바뀌면 LoRA를 다시 학습해야 한다. 데이터셋과 설정이 남아 있으면 다시 돌리기만 하면 된다. 데이터셋이 진짜 자산이다.

4단계에서 얻은 것

모델이 모르는 것을 가르칠 수 있게 됐다.

둘을 합치면 "내 캐릭터가, 내가 원하는 화풍으로, 내가 지정한 자세로" 그려진다. 여기까지가 이미지다. 이 그림을 움직이는 것은 6단계에서 다룬다.

확인 문제

  1. 개념 LoRA의 데이터에서 "개념 외의 나머지를 전부 다르게" 해야 하는 이유는?
  2. 캐릭터 그림이 한 장뿐일 때 학습 데이터를 어떻게 만드나?
  3. LoRA 파일과 함께 데이터셋을 남겨야 하는 이유는?

풀이

  1. LoRA는 데이터 전체에 공통인 것을 배운다. 개념만 공통이어야 개념만 분리된다. 인물이나 화풍이 같으면 그것까지 함께 굳는다.
  2. 편집 모델로 여러 각도, 자세, 표정, 배경의 그림을 만든다. 얼굴이 흔들리거나 세부가 틀린 것을 버리고 잘 나온 것만 남긴다.
  3. 기반 모델이 바뀌면 LoRA를 다시 학습해야 하기 때문이다. 데이터셋과 설정이 있으면 다시 돌리기만 하면 된다.
← 4-3 학습 설정과 진단 커리큘럼 →