[22′ ICLR] SDEDIT: GUIDED IMAGE SYNTHESIS AND EDITING WITH STOCHASTIC DIFFERENTIAL EQUATIONS

This entry is part 14 of 15 in the series Image Generative Model

1. 들어가며

최근 몇 년간 인공지능 분야에서 이미지 생성 기술이 눈부신 발전을 이뤄왔습니다. 특히, 딥러닝 모델을 활용한 이미지 생성 방법은 다양한 응용 가능성을 제시하며 많은 주목을 받고 있습니다. 그 중에서도 확산 모델(Diffusion Model)은 이미지 생성의 새로운 패러다임을 제시하며, 고화질 이미지 생성, 조건부 이미지 생성 등 다양한 분야에서 뛰어난 성능을 보여주고 있습니다. 이러한 기술들은 예술, 디자인, 영화, 광고 등 다양한 산업 분야에서 창의적인 작업을 혁신적으로 변화시키고 있습니다.

하지만 단순히 이미지를 생성하는 것을 넘어서, 생성된 이미지를 사용자의 요구에 맞게 편집하는 기능은 실질적인 응용에서 매우 중요합니다. 사용자는 단 한 번의 시도로 완벽한 이미지를 생성하기 어렵기 때문에, 생성된 이미지를 편집하여 원하는 결과물을 얻는 것이 필수적입니다. 예를 들어, 디자이너는 특정 제품의 이미지를 여러 버전으로 편집하거나, 광고 이미지를 사용자의 피드백에 따라 수정해야 할 때가 많습니다. 이러한 요구에 부응하여, 최근에는 이미지 편집 기능이 추가된 확산 모델들이 활발히 연구되고 있습니다.

이번 글에서는 이미지 생성 및 편집을 위한 새로운 접근법인 SDEdit에 대해 다룹니다. SDEdit은 확산 모델의 일종으로, 확률적 미분 방정식(Stochastic Differential Equation, SDE)을 활용하여 이미지를 생성하고 편집하는 방법입니다. SDEdit은 사용자가 대충 그린 그림이나 기존 이미지에 일부 편집을 가한 입력을 받아들여, 이를 고화질의 사실적인 이미지로 변환할 수 있습니다. 이는 기존의 GAN 기반 모델들과는 달리, 추가적인 학습이나 데이터 수집 없이도 다양한 작업에 적용할 수 있다는 큰 장점을 가지고 있습니다. 이러한 특성은 SDEdit이 다양한 환경에서 유연하게 적용될 수 있음을 의미합니다.

확률적 미분 방정식(SDE)은 기존의 확산 모델을 확장하여, 노이즈를 주입하고 이를 점진적으로 제거하는 과정을 통해 이미지를 생성합니다. 이는 마치 매우 복잡한 퍼즐을 하나씩 맞춰가는 과정과 유사합니다. SDE는 이미지 공간을 탐색하면서 가장 자연스러운 경로를 따라가므로, 생성된 이미지는 매우 현실적이고 고화질의 특성을 갖게 됩니다. SDEdit은 이러한 SDE의 장점을 활용하여, 사용자가 제공한 초기 입력을 기반으로 이미지 편집 작업을 수행합니다.

이 글에서는 SDEdit의 핵심 원리와 다양한 응용 방법을 자세히 살펴볼 것입니다. 먼저 SDE를 사용한 확산 모델의 기본 원리를 이해하고, 이를 바탕으로 SDEdit이 어떻게 이미지를 생성하고 편집하는지 알아보겠습니다. SDE는 이미지 생성 과정에서 각 픽셀이 이동하는 방향과 크기를 결정하여, 노이즈가 제거될수록 점점 더 현실적인 이미지를 만들어냅니다. SDEdit은 이러한 과정을 통해 사용자의 입력을 최대한 충실히 반영하면서도 고화질의 이미지를 생성할 수 있습니다.

이후, SDEdit의 실제 실험 결과와 장단점을 분석하여, 이 기술이 가진 가능성과 한계를 명확히 짚어보겠습니다. 예를 들어, SDEdit이 다양한 데이터셋에서 어떻게 성능을 발휘하는지, 기존의 GAN 기반 모델들과 비교하여 어떤 장단점을 가지는지 등을 상세히 다룰 것입니다. 또한, SDEdit의 연산 비용이나 실행 시간, 초기 입력의 품질에 따른 성능 변동 등 실제 적용 시 고려해야 할 사항들도 함께 논의할 것입니다.

SDEdit은 이미지 생성과 편집의 새로운 가능성을 열어주는 강력한 도구입니다. 이 글을 통해 SDEdit의 원리와 응용 방법을 이해하고, 이를 바탕으로 다양한 창작 활동에 활용할 수 있기를 기대합니다. SDEdit은 연구자와 개발자뿐만 아니라, 예술가, 디자이너, 콘텐츠 제작자 등 다양한 분야의 전문가들에게 큰 도움이 될 것입니다. 이 글이 SDEdit을 활용하여 창의적인 프로젝트를 성공적으로 수행하는 데 유용한 가이드가 되기를 바랍니다.

2. 목표

본격적으로 SDEdit 내용에 대해 파고들기 전에, SEDit이 하고자 하는 목표가 무엇인지 살펴보겠습니다. 최근들어 이미지 생성을 위한 Diffusion Model이 급속도로 발전하고 있는데요. Diffusion Model을 사용하여 이미지를 생성할 수 있다는 초창기 논문 이후로 고화질 이미지 생성, 조건부 이미지 생성 등 다양한 응용 버전의 Diffusion Model이 쏟아져 나오고 있습니다.

하지만 이러한 Diffusion Model의 이미지 생성 기능을 활용하여 실제 어플리케이션에 적용하기 위해서는 꼭 탑재되어야 하는 기능이 하나 있는데요. 바로 Edit(편집) 기능입니다. 어플리케이션 관점에서 생각해보면 단순히 이미지만을 생성하고 끝나는 경우는 많지 않습니다. 이미지 생성 어플리케이션을 사용했다는건 사용자에게 특정 이미지가 필요했다는 뜻이고, 단 한번의 시도로 정확히 사용자가 원하는 이미지를 생성할 수는 없기 때문이죠.

이러한 이유로 최근들어 ‘편집’ 기능이 추가된 Diffusion Model들이 활발히 연구되고 있습니다. 이미지 편집은 다양한 방법을 포함하는데요.

그림1. Stroke Painting to Image
그림1. Stroke Painting to Image

예를 들어 위 그림에서와 같이 ‘대충 그린 그림’으로 부터 고화질 이미지를 생성하는 방법이 있습니다. 이러한 방법을 이번 글에서는 ‘Stroke Painting to Image’라고 부르겠습니다. 보통 이미지 생성을 위한 Description은 Text를 사용하는데요. 생각해보면 Text만으로는 내가 원하는 내용을 명확하게 표현하기 쉽지 않습니다. 100줄에 걸쳐 내가 상상한 이미지를 글로 묘사하는 것 보다, 완벽하지 않더라도 그림으로 그려 표현하는 방법이 더 명확할 수 있죠.

그림2. Stroke Based Editing
그림2. Stroke Based Editing

또는 이미 있는 이미지에서 특정 부분만 편집할 수도 있습니다. 이때도 마찬가지로 말로 Description을 서술하는 것이 아닌, 이미 있는 이미지의 특정 부분에 ‘대충 그린 그림’을 추가해주는 것이죠. 이러한 방법을 이번 글에서는 ‘Stroke Based Editing’이라고 부르겠습니다.

그림3. Image Compositing
그림3. Image Compositing

또는 위 그림처럼 이미지에 특정 이미지를 합성하고 싶을 때도 있을겁니다. 위 예시들과는 달리, ‘대충 그린 그림’이 아니라 실제 이미지까지 합성해주는 것이죠. 이때 그냥 붙여넣기 하면 어색한 그림이 되니까, 최대한 자연스러우면서도 원본 이미지를 살리는 방향으로 합성해주는 것이죠. 이러한 편집 방법을 이번 글에서는 ‘Image Compositing’이라고 부르겠습니다.

SDEdit에서는 위와 같은 다양한 이미지 편집 기능을 Diffusion Model을 사용하여 구현하였는데요. 다음 챕터부터는 어떠한 방법을 사용하여 이렇게 이미지 편집 기능을 추가할 수 있었는지 핵심 컨셉을 살펴보겠습니다.

3. SDEdit

이번에는 SDEdit 논문의 핵심이라고 할 수 있는 이미지 편집을 가능하게 한 방법을 살펴보겠습니다. 본격적으로 SDEdit 방법을 파고들기 전에, Stochastic Differential Equation(SDE)을 사용한 Diffusion Model의 핵심 원리를 짚고 넘어가겠습니다.

우선 Diffusion Model은 매 Iteration마다 픽셀 값을 움직여 Noise로부터 이미지를 생성하는 모델을 말합니다. 이때 모든 픽셀들이 랜덤하게 움직이는 모습이 마치 분자들의 확산과 비슷하다고 해서 ‘Diffusion Model’이라는 이름이 붙여졌죠. 각 픽셀들이 매 Iteration 마다 어느 방향으로 얼마큼 움직여야 하는지는 생성하고자 하는 이미지 데이터를 통해 학습되는데요. 보통 U-Net을 Backbone으로 하는 네트워크를 학습해줍니다.

반면 SDE을 사용한 Diffusion Model은 핵심 원리가 조금 다른데요. 기존 Diffusion Model이 U-Net이 학습한 대로 픽셀을 움직였다면, SDE방법은 ‘기울기’를 사용하여 움직일 방향과 정도를 정해줍니다.

그림4. Stochastic Differential Diffusion Model
그림4. Stochastic Differential Diffusion Model

그림으로 생각해보면 이해하기 쉬운데요. 위 그림을 이미지 공간에서의 학습할 이미지 데이터와 Noise 데이터의 분포라고 가정해보겠습니다. 기존 Diffusion Model은 학습 이미지로부터 학습된 U-Net이 현재 픽셀이 변경해야 하는 값을 알려주는 구조인데요. SDE는 위 그림과 같이 Gradient를 사용하여 움직일 방향과 정도를 결정합니다. Diffusion Model의 학습이 완료되면 이미지 공간에는 Loss 분포가 생기게 됩니다. 실제 이미지에 가까울수록 작은 Loss 값을 갖고요, 실제 이미지와 멀어질 수록 큰 Loss값을 갖는 공간이 되겠죠. 즉 각 공간의 점은 Loss에 대한 Gradient를 갖게 되는데요. 이 Gradient를 따라 낮은 방향을 찾아가면 실제 이미지와 가까운 점을 찾아갈 수 있습니다. 마치 Backpropagation을 통해 가중치를 변경하는 딥러닝 모델과 유사한 모습이죠.

SDE를 사용한 Diffusion Model은 이렇게 Gradient를 활용하여 이미지를 생성하는 방법인데요. 이러한 SDE 방법을 기반으로 하여 어떻게 ‘이미지 편집’ 기능을 추가했을까요?

그림5. SDEdit 원리
그림5. SDEdit 원리

핵심 아이디어는 간단합니다. 위 그림은 기존 Diffusion Model 설명 그림에 Target Image와 Stoke 분포를 추가한 그림인데요. Target Image, 즉 빨간색 점이 우리가 생성하고 싶은 이미지라고 가정해보겠습니다. 이제 Stroke 방식으로 이미지를 생성하려면, 생성하고자 하는 이미지와 비슷한 이미지를 ‘대충’ 그려준다고 했죠. 이렇게 ‘대충 그려준 이미지’를 Stroke (노란점) 이라고 가정하겠습니다. 이제 노란점에서 SDE 방법을 사용하여 이미지를 생성한다면 어떻게 될까요? SDE는 Gradient를 따라 내려가기 때문에, 노란 점에서 가장 가까운, 또는 Gradient를 따라 이어지는 이미지를 찾아갈겁니다. 즉 가장 비슷하게 생긴 고화질 이미지를 찾아간다는 말이죠. 따라서 Stroke를 실제 이미지와 가깝게 그려줄 수록 내가 원하는 이미지를 잘 생성할 수 있게 됩니다.

그림6. SDEdit의 이미지 생성 과정
그림6. SDEdit의 이미지 생성 과정

지금까지 설명한 내용을 SDEdit 저자들은 위와 같이 표현하고 있는데요. 가장 왼쪽부터 차례대로 살펴보겠습니다. 먼저 Input으로는 ‘대충 그린 이미지’가 들어간 모습입니다. 위쪽은 하늘이고 아래쪽은 땅과 건축물을 표현한듯 보이는데요. 이는 위의 이미지 공간상에서 Stroke에 해당합니다. 이 Stroke를 실제 이미지 (초록색 공간)로 이동시키려면 어떻게 해야할까요? 앞서 설명한대로 Gradient를 따라 가면 될텐데요. 위 그림에서는 Stroke와 Image가 이미지 공간상에서 매우 가깝게 위치한 것으로 표현되었지만, 실제 무한에 가까운 이미지 공간상에서 두 점은 매우 멀리 떨어져 있을겁니다. 따라서 두 점을 이어주는 Gradient는 없거나 매우 약하게 이어져 있을 가능성이 크죠. 따라서 이 두 점을 Gradient로 연결해주는 과정이 필요합니다. 이를 위 그림의 두번째 이미지에서 표현해주고 있는데요. Perturb 과정, 즉 Noise를 추가해주는 작업을 통해 이미지를 뭉개주고 있습니다. 이렇게 뭉개진 이미지는 Stroke에서 벗어나 점차 옆으로 이동하게 되겠죠. 이렇게 Noise가 더해진 이미지들은 Gradient를 옆으로 밀어주는 효과를 주고 되고, 이렇게 만들어진 길을 통해 Stroke와 Image를 연결할 수 있습니다. 비로소 SDE 방법을 따라 Gradient를 따라 내려가면 원하는 실제 이미지를 생성할 수 있습니다.

이렇게 Noise를 추가하여 Gradient 길을 만들어주는 과정, 즉 Perturb 과정이 SDEdit의 핵심 과정이라고 할 수 있는데요. 수식으로는 다음과 같이 표현됩니다.

그림7. SDEdit 이미지 생성 과정 수식
그림7. SDEdit 이미지 생성 과정 수식

이렇게 추가 되는 Noise가 생성하고자 하는 이미지까지의 길을 만들어주는 역할을 하기에, 추가되는 Noise의 정도가 생성되는 이미지의 방향을 결정해주는데요.

그림8. 추가되는 Noise에 따른 생성 이미지 조절
그림8. 추가되는 Noise에 따른 생성 이미지 조절

위 그림에서는 추가되는 Noise 정도에 따른 생성 이미지의 특징을 볼 수 있습니다. t0가 0일때, 즉 온전히 Stroke에 가중치를 줬을때는 ‘대충 그린 그림’에서 벗어나지 못하는 모습을, 즉 Faithful이 가장 강한 모습을 보입니다. 반대로 t0가 1일때, 즉 Stroke를 완전히 무시했을때는 가장 사실적인 이미지, 즉 Realistic한 이미지를 생성하는 모습을 볼 수 있습니다.

4. 실험 결과

지금까지 SDEdit 방법의 핵심 컨셉을 살펴봤는데요. 이번에는 SDEdit을 사용한 실제 이미지 편집 실험 결과를 살펴보겠습니다. 크게 두가지 방향으로 나누어 살펴볼건데요.
첫 번째는 ‘대충 그린 그림’으로 부터 실제 이미지를 생성하는 ‘Stroke Based Image Synthesis’ 실험을 살펴보겠습니다.
두 번째는 실제 이미지로부터 이미지를 편집하는 Flexible Image Editing 실험을 살펴보겠습니다.

4-1. Stroke Based Image Synthesis

먼저 ‘대충 그린 그림’으로부터 이미지를 생성하는 실험을 살펴보겠습니다.

그림9. Stroke Based 이미지 생성 결과
그림9. Stroke Based 이미지 생성 결과

위 그림은 입력된 Stroke로부터 실제 이미지를 생성하는 다양한 모델의 결과를 비교하고 있는 그림입니다. SDEdit 결과를 보면 납득 Stroke와 비슷한, 납득 가능한 이미지를 생성해주는 모습을 볼 수 있습니다.

그림10. 다양한 데이터셋 실험 결과
그림10. 다양한 데이터셋 실험 결과

이번에는 다양한 데이터셋에 대해 다양하게 생성된 이미지를 보여주고 있는데요. t0 값에 따라 미묘하게 다르면서 사실적인 고화질 이미지를 생성해주는 모습을 볼 수 있습니다.

4-2. Flexible Image Editing

다음은 이미지 편집 실험 결과를 살펴보겠습니다. 먼저 실제 이미지에 Stroke를 추가하여 편집하는 ‘Stroke Based Image Editing’ 실험 결과인데요.

그림11. Image Editing 결과
그림11. Image Editing 결과

다양한 모델들을 사용하여 생성된 이미지들을 비교하고 있습니다. GAN과 SDEdit 모두 관점에 따라 그럴듯한 이미지를 생성하는 모습을 보여줍니다.

다음은 이미지를 합성하는 ‘Image Compositing’ 실험 결과를 살펴보겠습니다.

그림12. Image Compositing 결과
그림12. Image Compositing 결과

마찬가지로 GAN 방식들과 비교하고 있는데요. 마찬가지로 GAN 방식들과 SDEdit 모두 관점에 따라 그럴듯한 이미지를 잘 생성해주는 모습을 볼 수 있습니다.

5. 장단점

다음은 지금까지 살펴본 내용을 바탕으로 SDEDit의 장단점을 정리해보겠습니다.

5-1. 장점

SDEdit의 주요 장점 중 하나는 일관된 현실감입니다. SDE 기반 모델은 기존 GAN 기반 모델보다 훨씬 더 현실적인 이미지를 생성하는 데 탁월합니다. 실제로 SDEdit은 다양한 테스트에서 최대 98.09% 더 현실적인 이미지를 생성하는 데 성공했으며, 이는 사용자들이 더욱 자연스러운 이미지를 경험할 수 있게 합니다.

또한, SDEdit은 사용의 용이성에서 큰 장점을 가지고 있습니다. 기존의 GAN 기반 모델은 특정 작업에 맞춘 추가적인 학습이나 데이터 수집이 필요하지만, SDEdit은 이러한 추가 작업 없이도 다양한 이미지 편집 작업에 적용될 수 있습니다. 이는 사용자가 단순한 입력만으로도 자연스러운 이미지를 생성할 수 있게 하여, 비전문가도 손쉽게 사용할 수 있게 합니다.

SDEdit의 또 다른 장점은 다양한 응용 가능성입니다. 이 모델은 Stroke 기반 이미지 생성, 이미지 편집, 이미지 합성 등 다양한 작업에 활용될 수 있습니다. 단일 프레임워크로 여러 작업을 수행할 수 있다는 것은 실용적인 면에서 큰 장점을 제공합니다.

사용자 만족도 또한 SDEdit의 강점 중 하나입니다. 인간 인식 연구에서 SDEdit은 높은 만족도를 보였습니다. 이는 현실감과 사용자 입력의 충실도를 동시에 만족시키기 때문에 사용자 경험이 매우 우수하다는 것을 의미합니다. 이러한 특성은 다양한 사용자들에게 긍정적인 피드백을 받을 수 있게 합니다.

마지막으로, SDEdit은 비교적 단순한 구현이 가능합니다. GAN 기반 모델처럼 복잡한 손실 함수나 추가적인 모델 학습이 필요하지 않기 때문에, 상대적으로 더 쉽게 구현하고 사용할 수 있습니다. 이는 연구자들과 개발자들에게 큰 장점으로 작용합니다.

5-2. 단점

그러나 SDEdit에는 몇 가지 단점도 존재합니다. 먼저, SDE 기반 모델은 연산 비용이 높다는 문제가 있습니다. 이미지 생성 과정에서 여러 단계의 반복적인 계산이 필요하기 때문에 자원 소모가 상당합니다. 이는 고성능 하드웨어가 필요할 수 있음을 의미합니다.

또한, SDEdit은 이미지 생성 시간이 다소 오래 걸릴 수 있습니다. 모델의 반복적인 denoising 과정을 통해 이미지를 생성하므로, GAN 기반 모델보다 시간이 더 소요될 수 있습니다. 이는 실시간 응용에는 다소 부적합할 수 있습니다.

초기 가이드의 질에 따라 생성되는 이미지의 질이 크게 좌우된다는 점도 단점 중 하나입니다. 초기 입력이 충분히 정교하지 않으면 원하는 결과를 얻기 어려울 수 있습니다. 이는 사용자가 입력의 품질에 신경 써야 한다는 것을 의미합니다.

SDE 기반 모델의 학습 과정은 상대적으로 복잡하며, 이를 위해서는 고도의 수학적 이해와 구현 능력이 필요합니다. 이는 연구 및 개발 과정에서의 진입 장벽이 될 수 있습니다. 특히, 딥러닝 모델에 익숙하지 않은 사용자에게는 어려움이 있을 수 있습니다.

마지막으로, 특정한 유형의 편집 작업에서는 SDEdit의 성능이 GAN 기반 모델에 비해 떨어질 수 있습니다. 예를 들어, 매우 세밀한 편집이나 특정 조건부 생성 작업에서는 한계가 있을 수 있습니다. 이는 특정 작업에서 다른 모델의 사용을 고려해야 할 수도 있다는 것을 의미합니다.

종합적으로, SDEdit은 기술적 우수성과 응용의 다양성 측면에서 매우 뛰어난 도구이지만, 연산 비용과 시간 소요, 초기 가이드의 품질에 따른 성능 변동 등의 단점이 존재합니다. 이러한 점들을 고려하여 사용 목적에 맞는 적절한 도구로 활용하는 것이 중요합니다.

6. 마치며

SDEdit은 확률적 미분 방정식(Stochastic Differential Equation, SDE)을 활용하여 이미지 생성과 편집을 혁신적으로 구현한 모델입니다. 기존의 GAN 기반 이미지 생성 및 편집 방법들이 가지고 있는 한계를 극복하고, 보다 현실적이고 충실한 이미지를 생성할 수 있도록 돕습니다. 이를 통해 사용자는 간단한 입력으로도 고품질의 이미지를 생성하고, 다양한 편집 작업을 수행할 수 있게 됩니다.

SDEdit의 가장 큰 강점 중 하나는 추가적인 학습 없이도 다양한 작업에 적용할 수 있다는 점입니다. 이는 실용적인 관점에서 매우 유용하며, 시간과 자원을 절약할 수 있게 해줍니다. 또한, SDE를 기반으로 한 이미지 생성 과정은 매우 직관적이며, 사용자가 원하는 이미지를 정확히 반영할 수 있는 가능성을 높여줍니다. 이러한 특성은 SDEdit을 다양한 산업 분야에서 활용할 수 있게 하며, 창의적인 작업을 더욱 효과적으로 수행할 수 있게 해줍니다.

하지만 SDEdit에도 몇 가지 단점이 존재합니다. 높은 연산 비용과 긴 처리 시간은 실시간 응용에는 다소 부적합할 수 있습니다. 또한, 초기 입력의 질에 따라 결과물이 크게 좌우될 수 있어, 사용자에게는 일정 수준의 입력 품질이 요구됩니다. 이러한 단점에도 불구하고, SDEdit은 이미지 생성 및 편집 분야에서 중요한 도구로 자리잡을 가능성이 큽니다.

SDEdit의 개발과 응용은 앞으로도 계속 발전해 나갈 것입니다. 더 나은 알고리즘과 최적화 방법이 개발됨에 따라, SDE 기반 모델의 성능은 더욱 향상될 것입니다. 또한, 다양한 응용 분야에서 SDEdit을 활용한 새로운 사례들이 등장하면서, 이 기술의 가능성과 유용성은 더욱 확장될 것입니다.

마지막으로, SDEdit은 연구자와 개발자뿐만 아니라, 예술가, 디자이너, 콘텐츠 제작자 등 다양한 분야의 전문가들에게 큰 도움이 될 것입니다. 이 글이 SDEdit을 이해하고 활용하는 데 있어 유용한 가이드가 되기를 바랍니다. 앞으로도 SDE 기반 이미지 생성 및 편집 기술이 다양한 분야에서 혁신을 이끌어 나가기를 기대합니다. SDEdit이 제공하는 새로운 가능성을 통해, 더욱 창의적이고 다양한 이미지 생성 및 편집 작업이 이루어지기를 바랍니다.

7. 참고 자료

  1. Diffusion Model 설명
Series Navigation<< [18′ NIPS] Glow: Generative Flow with Invertible 1×1 Convolutions 핵심 리뷰[23′ ICCV] ControlNet : Adding Conditional Control to Text-to-Image Diffusion Models >>
0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Scroll to Top