logo

Stable Diffusion

Stable Diffusion

Stable Diffusion은 텍스트 조건을 받아 잠재 공간에서 이미지를 생성하는 확산 모형. 앞에서 살펴본 여러 기술이 하나의 생성 파이프라인 안에서 결합됨

  • VAE: 픽셀 이미지와 압축된 잠재 표현 사이를 변환
  • 확산 모형: 무작위 잡음에서 시작하여 단계적으로 잡음을 제거
  • U-Net: 각 단계에서 현재 잠재 표현에 포함된 잡음을 예측
  • 텍스트 인코더: 프롬프트를 문맥이 반영된 토큰 임베딩으로 변환
  • 교차 어텐션: 텍스트 토큰의 의미를 U-Net의 이미지 특징에 전달

따라서 Stable Diffusion은 하나의 신경망 이름이라기보다, 여러 구성 요소가 협력하는 잠재 확산 latent diffusion 파이프라인으로 이해하는 것이 적절

픽셀 공간의 인코더와 디코더, 잠재 공간의 잡음 제거 U-Net, 텍스트 조건을 연결한 잠재 확산 모형 구조

그림의 왼쪽은 픽셀 이미지와 잠재 표현을 변환하는 인코더 E와 디코더 D, 가운데는 잠재 공간에서 반복적으로 잡음을 제거하는 U-Net, 오른쪽은 텍스트 같은 조건을 표현으로 바꾸는 조건 인코더. 조건 표현은 U-Net의 교차 어텐션에 키와 밸류로 전달됨

출처: Rombach et al., “High-Resolution Image Synthesis with Latent Diffusion Models,” Figure 3. 연구 프로젝트 페이지

왜 잠재 공간에서 확산하는가

기본적인 확산 모형은 픽셀 공간에서 직접 잡음을 추가하고 제거할 수 있음. 그러나 고해상도 이미지는 픽셀 수가 많아 각 잡음 제거 단계의 계산량과 메모리 사용량이 커짐

Stable Diffusion은 먼저 이미지의 핵심 정보를 더 작은 잠재 표현으로 압축하고, 이 잠재 공간에서 확산 과정을 수행

픽셀 이미지 ── VAE 인코더 ──→ 잠재 표현
                                  ↓
                         잡음 추가·제거 학습
                                  ↓
생성 이미지 ←─ VAE 디코더 ── 최종 잠재 표현
  • 잠재 표현은 원본 이미지보다 공간 크기가 작아 U-Net의 계산량과 메모리 사용량을 줄임
  • 의미와 형태에 필요한 정보를 압축된 표현에 남겨 이미지 생성에 활용
  • 압축 과정에서 작은 글자나 매우 미세한 질감 같은 정보가 손실될 수 있음

일반적인 텍스트-이미지 생성은 입력 이미지가 없으므로 VAE 인코더를 거치지 않음. 무작위 잠재 잡음에서 시작하고, 마지막에 VAE 디코더를 사용하여 픽셀 이미지로 변환. VAE 인코더는 학습 이미지를 잠재 표현으로 바꾸거나 이미지-이미지 생성과 인페인팅에서 입력 이미지를 처리할 때 사용

Stable Diffusion의 구성 요소

구성 요소 입력 역할
토크나이저와 텍스트 인코더 프롬프트 문장을 토큰으로 나누고 문맥적 임베딩으로 변환
VAE 인코더 픽셀 이미지 학습 이미지나 참조 이미지를 잠재 표현으로 압축
조건부 U-Net 잡음이 섞인 잠재 표현, 시점, 텍스트 조건 현재 단계에서 제거할 잡음을 예측
교차 어텐션 U-Net의 이미지 특징, 텍스트 임베딩 각 이미지 위치에 필요한 텍스트 정보를 전달
스케줄러·샘플러 잡음 예측과 현재 잠재 표현 다음 단계의 잠재 표현을 계산
VAE 디코더 최종 잠재 표현 사람이 볼 수 있는 픽셀 이미지로 복원
프롬프트 → 텍스트 인코더 → 토큰 임베딩 ─────────────┐
                                                     ↓
시드 → 무작위 잠재 잡음 → 조건부 U-Net → 잡음 예측
                           ↑                 ↓
                           └── 샘플러 반복 ──┘
                                             ↓
                                       VAE 디코더
                                             ↓
                                         생성 이미지

U-Net은 잡음을 예측하고, 스케줄러 또는 샘플러는 그 예측을 이용하여 다음 잠재 표현을 계산. 한 번의 U-Net 실행으로 완성된 이미지가 나오는 것이 아니라, 두 구성 요소의 계산을 여러 단계 반복한 뒤 VAE 디코더가 최종 이미지를 만듦

이미지 생성 과정

  1. 프롬프트를 토큰으로 나누고 텍스트 인코더로 임베딩을 생성
  2. 시드에 따라 무작위 잠재 잡음을 생성
  3. U-Net에 현재 잠재 표현, 확산 시점, 텍스트 임베딩을 입력
  4. U-Net이 현재 단계에서 제거할 잡음을 예측
  5. 샘플러가 잡음 예측을 이용하여 잡음이 조금 줄어든 다음 잠재 표현을 계산
  6. 정해진 샘플링 단계만큼 3~5를 반복
  7. 최종 잠재 표현을 VAE 디코더로 픽셀 이미지로 변환

초기 단계에서는 전체 구도와 큰 형태가 나타나고, 뒤 단계로 갈수록 경계와 질감 같은 세부 요소가 구체화되는 경향이 있음. 각 단계는 이전 단계의 결과에 의존하므로 샘플링 단계 수는 생성 시간에 직접 영향을 줌

학습과 생성의 차이

구분 학습 텍스트-이미지 생성
시작점 학습 이미지를 VAE 인코더로 압축한 잠재 표현 시드로 만든 무작위 잠재 잡음
텍스트 입력 이미지 설명 또는 캡션 사용자가 입력한 프롬프트
확산 처리 임의의 시점에 잡음을 추가하고 실제 잡음을 정답으로 사용 잡음이 많은 시점부터 적은 시점까지 반복
U-Net의 역할 추가된 잡음을 예측하도록 학습 예측한 잡음으로 다음 잠재 표현을 계산하도록 도움
VAE 디코더 일반적인 잡음 예측 손실 계산에는 필요하지 않음 마지막 잠재 표현을 이미지로 변환

Stable Diffusion의 VAE와 텍스트 인코더는 먼저 별도로 학습된 뒤 고정하여 사용할 수 있음. 이 경우 확산 모형의 핵심 학습 대상은 텍스트 조건을 반영해 잠재 잡음을 예측하는 U-Net

프롬프트와 교차 어텐션

텍스트 인코더가 만든 토큰 임베딩은 교차 어텐션을 통해 U-Net의 여러 해상도 특징에 전달됨

  • 쿼리: U-Net이 처리 중인 잠재 이미지 특징
  • 키와 밸류: 프롬프트의 토큰 임베딩
  • 결과: 이미지의 각 위치가 관련성이 높은 텍스트 토큰의 정보를 선택적으로 반영

이 연결은 한 번만 일어나는 것이 아니라 여러 U-Net 블록과 잡음 제거 단계에서 반복될 수 있음. 다만 프롬프트는 프로그램의 엄격한 명령이 아니라 생성 결과에 확률적으로 영향을 주는 조건. 사물의 정확한 개수, 글자 모양, 복잡한 위치 관계를 항상 보장하지는 않음

분류기 없는 안내 classifier-free guidance

분류기 없는 안내(Classifier-Free Guidance, CFG)는 프롬프트 조건이 생성 결과에 미치는 강도를 조절하는 방법

  1. 같은 잠재 표현에 대해 프롬프트 조건을 사용한 잡음 예측을 계산
  2. 프롬프트가 없거나 네거티브 프롬프트를 사용한 잡음 예측을 계산
  3. 두 예측의 차이를 이용하여 프롬프트가 가리키는 방향을 강화
안내 강도 일반적인 경향
낮음 프롬프트 반영이 약해질 수 있지만 결과의 변화 폭이 커질 수 있음
적절함 프롬프트 반영과 자연스러운 이미지 품질 사이의 균형
지나치게 높음 색이 과도하게 강조되거나 세부 묘사가 깨지고 다양성이 줄어들 수 있음

네거티브 프롬프트도 제거 규칙이 아니라 조건의 한 종류. 특정 요소가 절대로 나타나지 않도록 보장하지는 않음

수식으로 보는 분류기 없는 안내

프롬프트를 사용한 잡음 예측을 ϵtext, 조건이 없는 잡음 예측을 ϵuncond라고 하면 안내된 잡음 예측은 다음과 같이 표현할 수 있음

ϵguided=ϵuncond+w(ϵtextϵuncond)
  • ϵtextϵuncond: 프롬프트 조건이 잡음 예측을 바꾼 방향
  • w: 그 방향을 얼마나 강하게 반영할지 정하는 안내 강도
  • 네거티브 프롬프트를 사용하면 ϵuncond 자리에 네거티브 조건의 예측을 사용할 수 있음

텍스트-이미지, 이미지-이미지, 인페인팅

방식 시작점 핵심 설정
텍스트-이미지 무작위 잠재 잡음 프롬프트와 시드에 따라 새 이미지를 생성
이미지-이미지 입력 이미지를 VAE로 압축한 잠재 표현에 잡음을 추가 잡음 제거 강도가 원본을 얼마나 유지할지 결정
인페인팅 입력 이미지, 마스크, 텍스트 조건 마스크로 지정한 영역을 중심으로 내용을 다시 생성

이미지-이미지 생성에서 잡음을 적게 추가하면 원본의 구도와 형태를 더 많이 유지하고, 많이 추가하면 프롬프트에 따라 더 크게 변형되는 경향이 있음. 인페인팅은 마스크 바깥의 문맥을 참고하여 지정 영역을 채우지만 경계와 주변 픽셀도 영향을 받을 수 있음

주요 생성 설정

설정 의미와 판단 기준
프롬프트 원하는 대상, 속성, 구도와 스타일을 설명하는 조건
네거티브 프롬프트 피하고 싶은 특징을 나타내는 조건이지만 완전한 배제를 보장하지 않음
시드 초기 잠재 잡음을 결정. 같은 조건을 비교할 때 출발점을 통제하는 데 유용
샘플링 단계 잡음 제거 반복 횟수. 늘리면 지연과 비용이 증가하며 품질이 계속 비례해 좋아지는 것은 아님
안내 강도 프롬프트를 따르는 정도와 이미지의 자연스러움·다양성 사이를 조절
샘플러·스케줄러 각 단계에서 잠재 표현을 갱신하는 규칙. 속도와 결과의 성격에 영향
해상도 높을수록 일반적으로 계산량과 메모리 사용량이 증가
잡음 제거 강도 이미지-이미지 생성에서 원본 유지와 변형 정도를 조절

시드는 결과 재현의 중요한 조건이지만 시드 하나만 같다고 같은 이미지가 보장되지는 않음. 모델과 VAE 버전, 프롬프트, 네거티브 프롬프트, 해상도, 샘플러, 단계 수, 안내 강도, 추가 어댑터 등 전체 설정을 함께 기록해야 비교와 재현이 쉬워짐

운영 관점의 인사이트

  • 생성 지연은 반복 횟수의 비용: U-Net을 여러 번 실행하므로 샘플링 단계, 해상도, 한 번에 만드는 이미지 수가 응답 시간과 인프라 비용에 직접 영향
  • 최고 품질보다 성공률이 중요: 한 장의 인상적인 예시보다 여러 요청에서 사용 가능한 결과가 나오는 비율, 재시도 횟수와 검수 비용을 함께 측정해야 함
  • 파이프라인 전체가 버전 관리 대상: 모델 체크포인트뿐 아니라 VAE, 텍스트 인코더, 샘플러, 어댑터와 생성 설정이 결과를 바꿀 수 있음
  • 프롬프트는 소프트웨어 명세가 아님: 정확한 글자, 제품 형태, 인물 수, 공간 배치처럼 실패 비용이 큰 요구사항에는 후처리와 사람의 검수가 필요
  • 용도별 평가 기준이 다름: 아이디어 탐색에서는 다양성이, 광고 소재에서는 브랜드 일관성과 안전성이, 편집 작업에서는 원본 보존과 제어 가능성이 더 중요할 수 있음
  • 배포 전 정책 확인이 필요: 사용 모델과 데이터의 라이선스, 입력 이미지의 개인정보, 생성물 검수와 기록 보존 기준을 실제 운영 흐름에 포함해야 함

Stable Diffusion의 핵심 가치는 고품질 이미지를 만드는 능력만이 아님. 압축된 잠재 공간에서 계산하고, 텍스트 조건과 잡음 제거 과정을 모듈로 분리함으로써 비용·속도·제어 수준을 목적에 맞게 조정할 수 있다는 점에 있음

  • Rombach, Robin, et al. "High-Resolution Image Synthesis with Latent Diffusion Models." CVPR (2022).

퀴즈

문제 1 / 5맞음: 0힌트: 0틀림: 0채점중: 0남음: 5

Stable Diffusion이 픽셀 공간 대신 잠재 공간에서 확산을 수행하는 주된 이유는 무엇입니까?

  • 이미지의 압축된 표현을 사용해 계산량과 메모리 사용량을 줄이기 위해
  • 텍스트 인코더 없이 모든 프롬프트를 처리하기 위해
  • 잡음 제거 단계를 항상 한 번으로 제한하기 위해
  • VAE 디코더가 프롬프트를 직접 이해하게 만들기 위해

퀴즈를 풀려면 대화형 기능을 불러와야 합니다.

Previous
교차 어텐션