KalelPark's LAB

[ Vision Language ] High-Resolution Image Synthesis with Latent Diffusion Models 본문

Data Science/Vision Language Model

[ Vision Language ] High-Resolution Image Synthesis with Latent Diffusion Models

kalelpark 2023. 4. 2. 22:25

Stable Diffusion

Stable diffusion은 다양한 구성 요소와 모델로 구성된 시스템입니다. 단일 모델이 아닙니다. 내부를 살펴보면, 텍스트 정보를 텍스트 속 아이디어에 대한 수치적 표현(numerical representation)으로 바꾸어주는 구성요소가 존재합니다.

 

이후, 입력 텍스트를 받아 텍스트의 각 단어 또는 토큰을 나타내는 일련의 숫자 목록을 출력합니다. 다음 해당 정보는 몇 가지 구성 요소로 이루어진 생성기에 제공됩니다. 

이미지 생성기는 2단계를 거칩니다. (The image generator goes through two stages.)

Image information creator

위 방법은 Stable Diffusion의 성능을 크게 개선합니다. 이전 모델보다 상당히 높은 성능을 얻게 된 계기입니다. Stable Diffusion과 library는 50 ~ 100 번의 반복을 거칩니다. Image information creator는 Image Information space (latent spaxe)에서 작동합니다. Word "diffusion" 이라는 단어는 바로 이 구성 요소에서 일어나는 일을 설명합니다. 이후, Image Decoder를 통하여 이미지가 생성됩니다.

Image Decoder는 information creator로부터 받은 정보를 가지고, 그림을 생성합니다. 최종 이미지를 생성할 때, 한번만 실행됩니다.

즉, Stable Diffusion의 3가지 구성요소는

   1. Text Encoding을 위한 Clip Text

       Input : 텍스트

       Output : 77개의 토큰 임베딩, 768개의 차원

 

   2. UNet + Scheduler (공간에서 정보를 점진적으로 확산시키는 방법입니다.)

       Input : text Embedding, 노이즈로 이뤄진, multi-dimensional array

       Output : information array

 

   3. Autoencoder Decoder (처리된 정보를 최종 이미지로 만듭니다.)

       Input : 처리된 정보 배열 (4, 64, 64)

       Output : 최종 이미지

What is Diffusion Anyway?

Diffusion이란, Image Information creator 내부에서 일어나는 일을 말합니다. 입력 텍스트를 나타내는 토큰 임베딩과 이미지 정보 배열의 무작위 초기값이 포함된 해당 Process는 초기값이 포함된 이미지 디코더가 최종 이미지를 만드는데 사용하는 정보 배열을 생성합니다.

해당 프로세스는 단계적으로 진행됩니다. 단계를 거칠 때마다 더 많은 연관 정보가 추가됩니다. 프로세스를 직관적으로 파악하기 위해, 무작위 잠재 이미지 배열을 살펴보고 그것이 시각적인 노이즈로 바뀌는지 한번 살펴보도록 하겠습니다. 입력 텍스트 그리고 모든 학습 이미지로부터 모델이 포착한 전체 적인 시각 정보와 유사하게 또 다른 잠재 이미지 배열을 생성해 냅니다.

이러한 과정을 반복했을 때, step 2에서 -> step 4로 갈 때, 상당한 정보를 얻는 것을 알 수 있습니다.

Diffusion 원리

확산 모델로 이미지를 생성하는 것의 아이디어의 핵심은 ComputerVision의 Architecture에 기반한다는 것을 알 수 있습니다.
예시로, 이미지가 있고, 약간의 노이즈를 생성하여, 이미지에 추가한다고 가정해보겠습니다. 이러한 샘플들을 동일한 방식을 사용하여 이미지 생성 모델의 핵심 구성 요소를 훈련하기 위해 수많은 훈련 샘플을 만들어낼 수 있습니다.

이 예제에서는 이미지(0부터, 노이즈 없음)부터 완벽한 노이즈에 이르까지 몇 가지 수준의 노이즈 크기를 보여줍니다. 이미지에 추가할 노이즈 크기는 쉽게 제어할 수 있으므로, 수십 단계로 나누어 훈련 데이터 세트의 모든 이미지에 대해 각 이미지당 수십 장의 훈련 샘플을 생성하는 것이 가능합니다. 이러한 데이터 세트를 사용하여, Noise Predictor를 훈련하고, 특정한 상황에서 실행하였을 때, 실제로 이미지를 생성하는 훌륭한 노이즈 예측기를 생성하는 것이 가능합니다. 

이미지를 생성하는 방법

학습된 노이즈 예측기는 노이즈가 있는 이미지와 노이즈 제거 단계의 수를 입력받아, 노이즈 슬라이스를 예측하는 것이 가능합니다.

전체적인 그림

Reference

https://medium.com/@aldente0630/그림으로-이해하는-스테이블-디퓨전-61f8ec9d5bf

 

그림으로 이해하는 스테이블 디퓨전

제이 알라마르Jay Alammar의 ‘The Illustrated Stable Diffusion’를 번역했습니다.

medium.com

 

https://arxiv.org/abs/2112.10752

 

High-Resolution Image Synthesis with Latent Diffusion Models

By decomposing the image formation process into a sequential application of denoising autoencoders, diffusion models (DMs) achieve state-of-the-art synthesis results on image data and beyond. Additionally, their formulation allows for a guiding mechanism t

arxiv.org

 

Comments