IT News

Stable Diffusion 3.5 파인튜닝 완벽 공략

post tistory 2025. 4. 27. 11:24
반응형

 

Stable Diffusion 3.5 파인튜닝 완벽 공략

Stable Diffusion 3.5 Large Fine-tuning 완벽 가이드

Stable Diffusion 3.5 Large 모델은 텍스트-이미지 생성기술에서 가장 진보된 버전 중 하나로, 대규모 비전-언어 모델(Visual-Language Model, VLM)과 최신 훈련 기법이 적용된 대표적인 사례입니다. 이 글에서는 기본적인 튜토리얼을 넘어서, 실전에서 바로 적용할 수 있는 고급 테크닉, 실험적 최적화 기법, 그리고 최근 논문 흐름까지 모두 포함해 Stable Diffusion 3.5 Large를 완벽히 파인튜닝하는 방법을 정리했습니다.

이 가이드는 단순 재작성에 그치지 않고, 실제 최적화 연구 경험과 최신 딥러닝 트렌드를 바탕으로 보강한 버전입니다.

 


환경 구축과 필수 사전 준비

Stable Diffusion 3.5 Large를 파인튜닝하기 위해서는 세심한 환경 세팅이 필요합니다. 단순히 Python 버전이나 라이브러리 설치를 넘어, VRAM 최적화, CUDA 세팅, 라이브러리 버전 호환성까지 꼼꼼히 챙겨야 합니다.

  • Python 버전: Python 3.11.6 이상 권장
  • Poetry 설치 및 관리
  • python -m venv .venv source .venv/bin/activate pip install -U poetry pip poetry config virtualenvs.create false poetry install
  • CUDA 및 PyTorch 세팅
    • CUDA 12.2 이상을 권장하지만, 특정 상황에서는 12.1도 가능합니다.
    • 12.1 사용 예시:
    • pip install torch==2.4.1+cu121 torchvision==0.19.1+cu121 torchaudio==2.4.1+cu121 --index-url https://download.pytorch.org/whl/cu121
  • 필수 의존성
  • dependencies = [ "diffusers", "transformers==4.45.1", "accelerate==0.34.2", "bitsandbytes==0.44.1", "wandb==0.18.2" ]

보충: Memory Efficient Attention, Triton 설치 권장

  • 복잡한 모델 학습시 Triton 기반 Memory-efficient attention(Faithful memory optimization)을 적용하면 VRAM 사용량을 20~30%까지 줄일 수 있습니다.

모델 구성과 텍스트 인코더 최적화

  • 기본 모델
  • model_path = "stabilityai/stable-diffusion-3.5-large"
  • 텍스트 인코더
    • CLIP L/14
    • CLIP G/14
    • T5 XXL (4.7GB VRAM 필요)

T5 XXL을 사용할 경우 VRAM 최적화가 필수이며, Gradient Checkpointing과 Mixed Precision을 적극 적용해야 합니다.

  • VAE 설정
  • vae_settings = { "channels": 16, "downsampling_factor": 8 }

보충: LoRA Layer Fusion 기법 소개
최근 연구에서는, 텍스트 인코더에서 Layer Fusion을 통해 파인튜닝 성능을 2~3% 개선할 수 있음이 보고되었습니다. Layer Fusion은 학습 속도를 10% 가속하는 부가적 이점도 있습니다.

Stable Diffusion 3.5 Fine-tuning Concept
Stable Diffusion 3.5 Fine-tuning Concept


데이터셋 준비와 고급 데이터 증강 기법

  • 이미지 전처리
    • 기본 해상도: 1024px
    • 다양한 비율 대응:
    • aspect_ratios = [ (1024, 1024), (1152, 896), (896, 1152) ]
  • 캡션 처리
  • caption_settings = { "original_ratio": 0.5, "synthetic_ratio": 0.5, "trigger_word": "k4s4" }
  • 데이터 증강
  • augmentation_settings = { "repeats": 5, "token_shuffle": True, "keep_tokens": 2 }

보충: Textual Inversion + DreamBooth Hybrid 증강

  • 합성 캡션에 Textual Inversion 방식과 DreamBooth 강화 학습을 병행하면, 소규모 데이터셋에서도 대규모 데이터셋에 준하는 결과를 얻을 수 있습니다.

학습 설정과 고급 최적화

  • LoRA 설정
  • { "model_type": "lora", "model_family": "sd3", "learning_rate": 1.05e-3, "batch_size": 6, "lora_rank": 768, "lora_alpha": 768, "max_train_steps": 24000, "checkpointing_steps": 400, "validation_steps": 200 }
  • 메모리 최적화
    • VRAM 24GB 기준 세팅:
    • { "batch_size": 1, "lora_rank": 64, "gradient_checkpointing": True, "mixed_precision": "bf16" }
  • 스케줄러 설정
  • { "lr_scheduler": "cosine", "lr_warmup_steps": 2400, "snr_gamma": 5 }

보충: QLoRA 적용

  • QLoRA(Quantized LoRA)를 적용하면 파인튜닝 메모리를 최대 60%까지 줄일 수 있으며, 16GB VRAM 환경에서도 원활한 학습이 가능합니다.

3단계 학습 전략

  • 1단계: 저해상도 사전학습 (256px, 10,000 스텝)
  • 2단계: 고해상도 파인튜닝 (1024px, 14,000 스텝, Timestep Shift 적용)
  • 3단계: DPO(Direct Preference Optimization, 2,000 스텝)

보충: RPO(Reward Preference Optimization) 비교

  • DPO 외에도 최근 RPO 기법이 주목받고 있으며, 특히 aesthetic 품질 향상에 유리하다고 평가되고 있습니다.

고급 최적화 기술

  • 레이어별 학습 제어
    • 세부 디테일 레이어, 구도 레이어, 문맥 레이어 분리 학습
  • 마스크 손실 학습
  • { "mask_settings": { "edge_refinement": True, "min_mask_size": 2000, "mask_blur": 3 } }
  • APG 적용
    • Adaptive Projected Guidance는 Gradient Noise를 줄이는 데 탁월한 효과를 보입니다.

보충: Mask-Guided Diffusion 소개

  • 특정 마스크를 활용해 이미지 생성 품질을 강화하는 방법론으로, 특히 사람 얼굴 세부묘사에 강점을 보입니다.

검증 및 체크포인트 관리

  • 검증 프롬프트
    • 긍정: 상세한 촬영 구도와 설명
    • 부정: blurry, cropped, ugly
  • 평가 지표
    • FID Score
    • CLIP Score
    • 인간 평가(프롬프트 충실도, 심미성, 텍스트 정확성)

보충: Multi-Aspect Human Evaluation

  • 최근 트렌드는 단일 평가지표 대신, aesthetic, prompt adherence, composition 등을 다중 측면에서 평가하는 것입니다.

특수 최적화 케이스

  • 전문 사진 데이터셋: 마지막 레이어 고정 후 미세 조정
  • 해부학적 정확도 강화: Attention Layers만 학습
  • 소규모 데이터셋 대응: Context Blocks만 학습

보조 스크립트

  • 마스크 생성
  • python generate_dataset_masks.py --input_dir /images/input --output_dir /images/output --text_input "person" --edge_refinement --min_mask_size 2000 --mask_blur 3
  • 체크포인트 평가
  • python evaluate_checkpoints.py --checkpoint_dir /path/to/checkpoints --output_dir /path/to/results --batch_size 1 --validation_prompts prompts.txt

문제 해결 가이드

  • VRAM 부족시:
    • Text Encoder 고정
    • LoRA Rank 감소
    • Batch Size 감소
    • Mixed Precision 적용
  • 학습 불안정시:
    • Learning Rate 조정
    • SNR Gamma 조정
    • Gradient Clipping
  • 품질 저하시:
    • Layer Freezing
    • Caption Quality 강화
    • APG 최적화

맺음말

Stable Diffusion 3.5 Large 모델 파인튜닝은 단순한 Fine-tuning을 넘어, 최신 학습이론과 하드웨어 최적화를 총동원해야 하는 고난이도 작업입니다. 본 가이드를 기반으로 자신만의 맞춤형 최적화 루틴을 설계하고, 최고의 텍스트-이미지 생성 품질을 달성해보세요.


 

 

반응형