logo

Stable Diffusion

스테이블 디퓨전

스테이블 디퓨전(Stable Diffusion)은 텍스트 조건에 따라 잠재 공간에서 이미지를 생성하는 확산 모형. 여러 기술을 하나의 생성 파이프라인으로 결합

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

하나의 신경망보다 여러 구성 요소가 함께 작동하는 잠재 확산(latent diffusion) 파이프라인

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

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

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

  • 기본 확산 모형은 픽셀 공간에서 직접 잡음을 추가하고 제거. 고해상도 이미지는 픽셀 수가 많아 잡음 제거 단계마다 많은 계산량과 메모리가 필요
  • 스테이블 디퓨전은 이미지의 핵심 정보를 작은 잠재 표현으로 압축한 뒤 잠재 공간에서 확산을 수행
    • 계산 효율: 원본 이미지보다 작은 잠재 표현으로 U-Net의 계산량과 메모리 사용량을 절감
    • 정보 보존: 의미와 형태에 필요한 정보를 압축된 표현에 유지
    • 압축 손실: 작은 글자나 매우 미세한 질감의 손실 가능

스테이블 디퓨전의 구성 요소

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

이미지 생성 과정

  1. 프롬프트를 토큰으로 나누고 텍스트 인코더로 임베딩 생성
  2. 시드에 따라 무작위 잠재 잡음을 생성
  3. U-Net에 현재 잠재 표현, 확산 시점, 텍스트 임베딩을 입력
  4. U-Net이 현재 단계에서 제거할 잡음을 예측
  5. 샘플러가 잡음 예측을 이용하여 잡음이 조금 줄어든 다음 잠재 표현을 계산
  6. 정해진 샘플링 단계만큼 3~5단계를 반복
  7. 최종 잠재 표현을 VAE 디코더로 픽셀 이미지로 변환
  • 초기 단계: 전체 구도와 큰 형태가 나타나는 경향
  • 후기 단계: 경계와 질감 등의 세부 요소가 구체화되는 경향
  • 샘플링 단계 수: U-Net 실행 횟수와 생성 시간에 직접 영향

학습과 생성의 차이

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

프롬프트와 교차 어텐션

  • 텍스트 인코더가 만든 토큰 임베딩을 교차 어텐션을 통해 U-Net의 여러 해상도 특징에 전달
    • 쿼리: U-Net이 처리 중인 잠재 이미지 특징
    • 키와 밸류: 프롬프트의 토큰 임베딩
    • 결과: 이미지의 각 위치에 관련성이 높은 텍스트 토큰 정보를 선택적으로 반영
  • 반복 적용: 여러 U-Net 블록과 잡음 제거 단계에서 교차 어텐션을 수행 가능
  • 프롬프트의 한계: 생성 결과에 확률적으로 영향을 주는 조건
    • 사물의 정확한 개수, 글자 모양, 복잡한 위치 관계를 보장하지 않음

분류기 없는 안내 classifier-free guidance

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

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

네거티브 프롬프트도 제거 규칙이 아닌 조건의 한 종류. 특정 요소의 완전한 배제를 보장하지 않음

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

프롬프트를 사용한 잡음 예측을 ϵtext​, 조건이 없는 잡음 예측을 ϵuncond​라고 할 때의 안내된 잡음 예측

ϵguided​=ϵuncond​+w(ϵtext​−ϵuncond​)
  • ϵtext​−ϵuncond​: 프롬프트 조건이 잡음 예측을 바꾼 방향
  • w: 해당 방향의 반영 정도를 정하는 안내 강도
  • 네거티브 프롬프트: ϵuncond​ 자리에 네거티브 조건의 예측을 사용 가능

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

방식 시작점 핵심 설정
텍스트-이미지 무작위 잠재 잡음 프롬프트와 시드에 따라 새 이미지를 생성
이미지-이미지 입력 이미지를 VAE로 압축한 잠재 표현에 잡음을 추가 잡음 제거 강도가 원본을 얼마나 유지할지 결정
인페인팅 입력 이미지, 마스크, 텍스트 조건 마스크로 지정한 영역을 중심으로 내용을 다시 생성
  • 이미지-이미지 생성: 잡음을 적게 추가할수록 원본의 구도와 형태를 더 많이 유지
    • 잡음을 많이 추가하면 프롬프트에 따른 변형이 커지는 경향
  • 인페인팅: 마스크 바깥의 문맥을 참고하여 지정 영역을 생성
    • 경계와 주변 픽셀까지 영향 가능

퀴즈

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

스테이블 디퓨전이 잠재 공간에서 이미지를 생성하는 주된 이유는 무엇인가요?

  • ○압축된 표현에서 계산하여 계산량과 메모리 사용량을 줄이기 위해
  • ○픽셀 수를 늘려 이미지 정보를 더 많이 저장하기 위해
  • ○잡음 제거 과정을 한 번만 수행하기 위해

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

Previous
교차 어텐션