:)

[Gen AI] Stable Diffusion 본문

AI

[Gen AI] Stable Diffusion

andre99 2025. 9. 7. 10:50

Stable Diffusion

Stable Diffusion은 Latent Diffusion Model(LDM) 기반의 Text-to-Image 생성 모델.

일반적인 Diffusion 모델은 고해상도 이미지 픽셀 공간에서 노이즈를 주고 제거하는 과정을 학습함. 하지만 이 방식은 메모리와 연산량이 매우 크다는 단점이 존재함.

이를 해결하기 위해 Stable Diffusion은 이미지를 latent space로 압축 → 더 작은 차원에서 노이즈 제거 학습. 다시 디코딩해 고해상도 이미지 복원. 픽셀 공간이 아닌 latent space에서 diffusion을 수행하기 때문에 더 효율적.

모델 구조

 

  • Text Encoder (CLIP / OpenCLIP)
    • 사용자의 텍스트 프롬프트를 임베딩 벡터로 변환
    • 이미지 생성 시 의미적으로 반영됨
  • UNet 기반 Diffusion Model
    • 잠재공간의 노이즈 제거 역할 수행
    • 텍스트 임베딩을 Cross-Attention으로 주입
  • Variational Autoencoder (VAE)
    • 이미지 ↔ 잠재공간 변환
    • 학습 시 이미지를 latent로 압축, 생성 시 latent를 다시 이미지로 복원

 

Stable Diffusion 3

  • 모델 규모: SD3 Medium ≈ 2B 파라미터.
  • 텍스트 인코더
    • 3개 고정 인코더: CLIPs: OpenCLIP-ViT/G, CLIP-ViT/L, T5: T5-v1.1-XXL.
  • VAE
    • 16-채널 AutoEncoder(SDXL 계열과 유사) 사용.
  • 디퓨전(트랜스포머)
    • MMDiT(멀티모달 디퓨전 트랜스포머**)** 구조 + flow-matching 학습 목표. 규모는 위 파라미터 수에 해당.

Stable Diffusion 3.5

  • 모델 규모: Large = 8.1B 파라미터, Medium = 2.5B 파라미터, Large Turbo: Large의 속도 최적화 버전.
  • 텍스트 인코더
    • 3개 고정 인코더: CLIPs: OpenCLIP-ViT/G, CLIP-ViT/L, T5: T5-v1.1-XXL.
      • 컨텍스트 길이: CLIP 계열은 77 토큰, T5는 77 또는 256 토큰 지원로 명시.
      • OpenCLIP-ViT/G: 모델 크기가 커서 여러 언어, 스타일까지 커버 가능하지만 데이터가 덜 정제됨
      • CLIP-ViT/L: 작고 안정적, 영어 태그, 짧은 프롬프트에 강함
      • T5-v1.1-XXL: 긴 문장, 구체적인 묘사, 관계에 강함
  • VAE
    • 16-채널 사용 (= SD3 계열 특성).
  • 디퓨전(트랜스포머)
    • MMDiT-X (eXtended MMDiT)
      • 초기 층에 Self-Attention 추가 → 입력 신호 안정화.
      • QK Normalization 적용 → attention 계산을 안정화하고 학습 효율 높임.
      • multi-resolution training→ 다양한 출력 크기에 더 잘 대응.
      • 파라미터 수는 8.1B, 2.5B 모델 크기에 따라 달라짐.

FLUX.1

  • 모델 규모: FLUX.1-dev = 12B, FLUX.1-schnell = 12B 파라미터 (둘 다 rectified flow transformer).
  • 텍스트 인코더
    • 2개 인코더: CLIP ViT-L/14 + T5-v1.1-XXL (듀얼 인코더).
  • VAE
    • 16-채널 사용 (Flux 계열 전반).
  • 디퓨전(트랜스포머)
    • Rectified Flow 기반 트랜스포머. dev/schnell 모두 12B급 트랜스포머.
  SD3.5 Large FLUX.1-dev
파라미터 8.1B 12B
텍스트 인코더 CLIP×2 + T5 CLIP-L + T5-XXL (듀얼)
VAE/잠재 채널 16-채널 16-채널
트랜스포머 특징 MMDiT Rectified Flow Transformer

 

  MMDiT (SD3/3.5) Rectified Flow Transformer (FLUX.1)
방식 확산(스코어 매칭) 플로우 매칭
텍스트 처리 텍스트+이미지 토큰 동시 트랜스포머 유사하지만 구조 단순화
강점 프롬프트 충실도, 디테일 묘사 빠름, 효율적
약점 느림, 계산량 큼 디테일한 속성 반영은 약할 수 있음

Prompt Adherence: SD 3.5 Large > FLUX.1 dev

Aesthetic Quality: SD 3.5 Large < FLUX.1 dev

yaml 설정

두 부분말고는 모두 동일.

datasets → resolution

  • SD3.5: resolution: [1024] (단일)
  • Flux: resolution: [512, 768, 1024] (멀티)

train 블록

  • SD3.5만 timestep_type: "linear" 지정. (timestep_type: 학습 시 시간 t∈[0,1] 을 어떤 분포로 샘플링할지를 지정하는 옵션)
  • Flux 쪽엔 없음.→ Flux는 rectified flow 특성상 timestep 샘플링 설정이 필요 없음.

'AI' 카테고리의 다른 글

[LLM] LLM Fine-tuning: Unsloth 개요  (1) 2025.10.04
[MCP] Introduction to Model Context Protocol  (0) 2025.06.30
[BE] ElasticSearch 개념 정리  (0) 2025.02.07
[CV] YOLO v3  (0) 2025.02.07
[Gen AI] Diffusion-based Video Generative Models  (2) 2025.01.09