본문 바로가기
Stable Diffusion/Stable Diffusion 원리

Diffusion 모델 - 쉽게 이해하는 스테이블 디퓨전 원리1

by DesignerAllan 2023. 9. 13.
반응형

안녕하세요, Allan입니다.

 

스테이블 디퓨전이 세상에 나온지도 벌써 1년 정도의 시간이 지난 것 같습니다.

 

짧은 기간동안 많은 발전을 이루었고, 아직도 많은 사람들이 스테이블 디퓨전에 대해 관심을 가지고 있습니다.

 

사실, 스테이블 디퓨전을 사용하는 방법은 그다지 어렵지 않습니다.

 

클릭 몇 번과 파라미터들을 조작하는 것 만으로도 그림을 생성할 수 있기 때문입니다.

 

하지만, 많은 사람들이 스테이블 디퓨전이 어떠한 방식으로 작동하는지는 알고 있지 못합니다.

 

스테이블 디퓨전의 작동 원리를 대강이라도 이해하면, 다양한 파라미터들이 어떻게 작동하는지, 우리가 알고 있는 모델 별 차이점 등을 더욱 쉽게 이해할 수 있습니다.

 

무엇보다, 업데이트 과정을 거쳐 달라지더라도 금방 익숙해 질 수 있습니다.

전체적인 작동방식을 이해하고 있기 때문입니다.

 

이번 시리즈에서는 스테이블 디퓨전의 원리에 대해서 누구나 이해하기 쉽게 설명드리려 합니다.

 

저 또한 비전공자이기 때문에 전문적으로 설명해 드릴 능력도 없으며, 사실 전문가들의 영역까지는 이해할 필요도 없습니다.

 

따라서, 제가 이해하는 선에서 전문 용어들을 최대한 배제하고 설명드리도록 하겠습니다.

 

제 설명에 조금의 오류가 있을 수 있으며 이에 대한 피드백은 언제나 환영입니다.

 

 

Ⅰ. Diffusion 모델

스테이블 디퓨전이 사용하는 Latent Diffusion 모델을 이해하기 전에 우리는 Diffusion 모델을 먼저 이해해야 합니다.

 

Diffusion 모델의 작동 방식은 컵에 담긴 물에 잉크를 떨어뜨리는 것으로 비유할 수 있습니다.

 

예를 들어 보겠습니다.

 

유리 컵에 담긴 물에 잉크를 떨어뜨리면 확산이 일어나 잉크가 물 전체로 퍼지게 됩니다.

Stable Diffusion에서는 이 현상을 Forward Diffusion이라고 합니다.

Forward Diffusion
https://stable-diffusion-art.com/how-stable-diffusion-work/

Diffusion 모델에서는 원본 이미지에 노이즈를 첨가하여 끝에는 완전한 노이즈가 되도록 합니다.

 

이는 잉크가 물 안에서 서서히 퍼지다가 완전하게 퍼지게 되는 것과 동일합니다.

 

하지만 우리가 놀라게 되는 것은 이 과정이 아닌 다음 과정인 Reverse Diffusion 과정입니다.

 

Reverse Diffusion과정은 이미 물에 완전하게 퍼진 잉크를 다시 돌려 잉크를 떨어뜨린 위치를 맟추는 것과 비슷합니다.

 

이 과정에서 완전한 노이즈에서 노이즈를 한 단계씩 제거하며 원본 이미지를 복구합니다.

 

이 과정이 Diffusion 모델의 전체적인 과정입니다.

 

 

Ⅱ. noise preditor, U-Net

Reverse Diffusion 과정에서는 완전한 노이즈에서 노이즈를 제거하며 이미지를 생성합니다.

 

하지만 무작위로 노이즈를 제거한다고 해서 원본 이미지가 복구되거나 새로운 이미지를 생성하지는 않습니다.

 

 Reverse Diffusion 과정을 성공적으로 이행하기 위해서는 노이즈가 얼마나 추가되었는지 알아야 합니다.

 

이 것을 도와주는 것이 noise preditor(노이즈 예측기) 라고 하며 스테이블 디퓨전에서는 U-net 모델이라고도 불립니다.

 

우리는 Forward Diffusion 과정을 수행하며 noise predictor를 훈련시킵니다.

noise predictor 훈련
https://stable-diffusion-art.com/how-stable-diffusion-work/

 

위와 같이 이미지에 노이즈를 하나씩 추가하고 그 결과를 noise predictor에게 알려주며 훈련이 진행됩니다.

 

이 과정을 여러번 수행함으로써 noise predictor는 Reverse Diffusion을 성공적으로 수행할 수 있도록 훈련됩니다.

 

 

Ⅲ. Reverse Diffusion

우리가 관심을 가지는 것은 forward Diffusion 과정이 아닌 Reverse Diffusion 과정입니다.

 

Forward Diffusion은 단지 이미지에 노이즈를 추가하고, 그 과정을 noise predictor에게 훈련시키는 과정일 뿐이기 때문입니다.

이전의 잉크로 비유하자면 단순히 잉크가 물에 퍼져나가는 자연스러운 현상이라고 할 수 있겠습니다.

 

하지만 Reverse Diffusion 모델은 놀라운 과정입니다.

물에 완전히 퍼진 잉크를 역추적하여 잉크를 떨어뜨린 위치를 알아내는 것이기 때문입니다.

역추적을 하는 방법은 잉크가 퍼져나가는 방식을 훈련하여 이를 기반으로 이전 단계를 예측하고 그 과정을 여러번 반복합니다.

Reverse Diffusion
https://stable-diffusion-art.com/how-stable-diffusion-work/

위와 같이 완전한 노이즈에서 노이즈를 추정하고, 추정된 노이즈를 제거합니다.

 

이 과정을 원본 이미지가 복구 될 때 까지 반복합니다.

 

Ⅳ. 마무리

지금까지 설명드린 과정은 Diffusion 모델입니다.

 

하지만 스테이블 디퓨전에서 작동하는 모델은 Diffusion 모델이 아닌 Diffusion 모델을 업그레이드한 Latent Diffusion 모델입니다.

 

다음 포스팅에서는 Latent Diffusion 모델을 다뤄보도록 하겠습니다.

 

Latent Diffusion 모델 - 쉽게 이해하는 스테이블 디퓨전 원리2

 

Latent Diffusion 모델 - 쉽게 이해하는 스테이블 디퓨전 원리2

안녕하세요 Allan입니다. 지난 포스팅에 이어 스테이블 디퓨전 원리 시리즈로 돌아왔습니다. 지난 포스팅을 읽어보시지 않았다면 먼저 읽고 오시는 것을 추천드립니다. 누구나 이해하는 스테이

ai-designer-allan.tistory.com

 

반응형