Dreambooth Stable Diffusion 파인‑튜닝 가이드 with Diffusers
TL;DR
Hugging Face의 Dreambooth 가이드는 Stable Diffusion 파인‑튜닝이 낮은 학습률, 충분한 학습 단계(얼굴은 800‑1200, 객체는 400‑600), 인간 피사체에 대한 prior‑preservation, 그리고 선택적인 텍스트‑인코더 파인‑튜닝과 함께 가장 잘 작동한다는 것을 보여준다; 이러한 설정은 과적합을 방지하고 이미지 충실도를 향상시킨다.
권장 하이퍼‑파라미터
- Learning rate: 낮은 LR을 사용하세요(e.g., 1e‑6 to 2e‑6). 높은 LR은 빠른 과적합을 일으킵니다.
- Training steps: 품질이 안정될 때까지 단계 수를 늘리세요. 객체는 약 400‑600 단계에서 수렴하고, 얼굴은 800‑1200 단계가 필요합니다.
- Batch size: GPU당 2개(두 개의 40 GB A100에서 batch‑size 4) 는 객체에 잘 작동합니다; 얼굴에는 batch‑size 2를 사용하세요.
- Prior preservation: 얼굴에 필수이며, 모델이 몇 장의 학습 사진으로 붕괴되는 것을 방지하기 위해 클래스 수준 이미지들을 생성하거나 제공하세요.
- Scheduler choice: 추론 시 DDIM 스케줄러가 PNDM 및 LMSDiscrete보다 뛰어나며, 특히 모델이 과적합 징후를 보일 때 그렇습니다. 약 100개의 추론 단계를 실행하면 잡음이 있는 패치를 더 깨끗하게 합니다.
- Text encoder: UNet과 함께 CLIP 텍스트 인코더를 파인‑튜닝하면 사실감과 프롬프트 해석이 크게 향상되지만, ≥24 GB GPU 메모리가 필요합니다. 8‑bit Adam,
fp16, 또는 gradient accumulation을 사용하면 메모리를 16 GB로 줄일 수 있습니다. - EMA: 지수 이동 평균(EMA)은 결과에 눈에 띄는 영향을 주지 않았습니다.
- Token selection: 특수 토큰
sks는 불필요합니다; 대상을 설명하는 자연스러운 토큰이면 됩니다.
학습률 영향
네 개의 데이터셋(고양이 장난감, 돼지머리, Mr. Potato Head, 인간 얼굴)에서 낮은 학습률은 일관되게 더 높은 품질의 생성물을 만들었습니다. 높은 학습률(5e‑6)은 잡음이 많은 아티팩트를 만들고 빠른 과적합을 일으키는 반면, 낮은 학습률(2e‑6)은 디테일을 보존하고 모델이 학습 이미지 외에도 일반화하도록 허용했습니다.
실험 세부 사항
모든 실험은 Diffusers 저장소의 train_dreambooth.py 스크립트와 AdamW 옵티마이저, 두 개의 40 GB A100 GPU를 사용했습니다. 시드와 모든 하이퍼‑파라미터는 학습률, 단계 수, prior preservation을 제외하고는 일정하게 유지되었습니다.
객체 파인‑튜닝 (Cat Toy, Pighead, Mr. Potato Head)
- Batch size: 4 (GPU당 2)
- Steps: 400
- Learning rates: 5e‑6 (높음) vs. 2e‑6 (낮음)
- Prior preservation: 사용 안 함
인간 얼굴 파인‑튜닝 (Kramer 캐릭터)
- Batch size: 2 (GPU당 1)
- Steps: 800 – 1200
- Learning rates: 5e‑6 (높음) vs. 2e‑6 (낮음)
- Prior preservation: 사용 여부 모두 테스트
Memory‑saving tricks such as 8‑bit Adam, fp16 훈련, 또는 gradient accumulation과 같은 메모리 절약 트릭을 사용하면 16 GB GPU(예: Google Colab, Kaggle)에서도 실행할 수 있습니다.
얼굴에 대한 Prior Preservation
Prior preservation은 훈련 중에 대상 피사체의 이미지와 클래스 수준 이미지(예: 다른 사람)를 혼합합니다. 스크립트는 Stable Diffusion을 사용해 클래스 이미지를 자동으로 생성할 수 있습니다.
- Prior preservation 사용 (1200 단계, LR = 2e‑6): 이미지가 대상의 정체성을 유지하면서 배경 다양성을 보존합니다.
- Prior preservation 미사용 (동일 단계 및 LR): 결과에 더 많은 잡음이 섞인 반점이 나타나고 과적합이 더 강하게 나타납니다.
추론 시 스케줄러 효과
| Scheduler | Observation |
|---|---|
| PNDM | 훈련이 잘 균형 잡혔을 때는 허용 가능한 이미지를 생성하지만, 과적합된 모델에서는 어려움을 겪습니다. |
| LMSDiscrete | 과적합된 경우 심각한 아티팩트와 낮은 품질을 생성합니다. |
| DDIM | 일관되게 더 깨끗한 출력을 제공하며, 추가 추론 단계(~100)로 남은 잡음을 해결합니다. |
같은 패턴이 피사체(얼굴, 객체) 전반에 나타나지만, 차이는 특히 얼굴에서 가장 두드러집니다.
텍스트 인코더 파인‑튜닝
원래 Dreambooth 논문은 CLIP 텍스트 인코더를 고정했지만, Hugging Face의 실험은 이를 해제하면 결과가 크게 개선된다는 것을 보여주며, 특히 얼굴 피사체에서 그렇습니다.
- Frozen encoder: 그럴듯한 이미지를 생성하지만 종종 과적합 아티팩트를 유지합니다.
- Fine‑tuned encoder: 더 현실적인 얼굴, 프롬프트 준수도 향상, 과적합 감소를 제공합니다.
인코더 파인‑튜닝은 메모리 오버헤드를 추가합니다; 최소 24 GB VRAM을 가진 GPU를 권장하지만, mixed‑precision과 옵티마이저 트릭을 사용하면 16 GB도 충분할 수 있습니다.
텍스트 인버전과 Dreambooth 결합
하이브리드 실험에서는 Textual Inversion을 2000 단계, 그 뒤에 Dreambooth을 500 단계(LR = 1e‑6) 수행했습니다. 결과 이미지가 일반 Dreambooth보다 좋았지만 전체 텍스트‑인코더 파인‑튜닝 수준의 품질에는 미치지 못했습니다. 이 접근법은 스타일 디테일에 과적합되는 경향이 있지만 16 GB GPU에서도 실행 가능했습니다.
실용적인 요점
- 낮은 학습률(1e‑6 – 2e‑6)로 시작하고 단계 수를 점진적으로 늘리세요. 이는 과소‑과다 적합을 균형 있게 맞춥니다.
- 인간 피사체에는 prior preservation을 사용하세요. 과적합을 완화하고 사실감을 향상시킵니다.
- 최종 샘플링에는 DDIM 스케줄러와 약 100개의 추론 단계를 선호하세요. 추가 훈련 없이 잡음을 정리합니다.
- 가능하면 텍스트 인코더를 파인‑튜닝하세요. 품질 향상이 추가 메모리 비용을 정당화합니다.
- 메모리 절약 기법(8‑bit Adam,
fp16, gradient accumulation)을 활용해 일반 소비자용 GPU에서도 실행하세요.
윤리적 주의사항
Dreambooth는 악의적인 목적, 유해한 콘텐츠 생성, 혹은 동의 없이 개인을 사칭하는 데 절대 사용해서는 안 됩니다. 모든 파인‑튜닝 모델은 Stable Diffusion 배포를 규정하는 CreativeML Open RAIL‑M 라이선스의 적용을 받습니다.
SUMMARY: Hugging Face는 Diffusers 라이브러리를 사용한 Dreambooth로 Stable Diffusion을 학습하기 위한 상세 권장 사항을 발표했으며, 낮은 학습률, 충분한 단계, 얼굴에 대한 prior preservation, 텍스트‑인코더 파인‑튜닝이 가장 높은 품질의 결과를 제공한다는 것을 보여줍니다.
TITLE: Dreambooth Stable Diffusion 파인‑튜닝 가이드 with Diffusers