이번주에 원래 읽으려고 계획했던 논문은 아래 5편의 논문이다.
[읽음]
- SDEdit: Guided Image Synthesis and Editing with Stochastic Differential Equations
- GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models
- ILVR: Conditioning Method for Denoising Diffusion Probabilistic Models
- DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation
[못 읽음]
- Diffusion Models already have a Semantic Latent Space
바쁜 한 주 였지만, 목표했던 다섯 편의 논문들 중 그래도 네 편을 읽었다.
Diffusion Models already have a Semantic Latent Space는 이번주에도 못 읽어보았는데, DiffusionCLIP 코드를 완벽하게 보고 코드와 함께 보고 싶은 욕심이 있다. (+ 선행 연구들의 이해가 완벽해야 새로운 논문을 받아들이기에 좀 더 수월한 것 같다.)
colab pro + vscode를 활용해서 코드작업을 하는게 많이 번거로운데(git에 pre-trained model을 저장할 수 없는게 가장 불편하다), 얼른 회사나 대학원에 들어가서 좋은 gpu로 편하게 연구(공부)하고싶다는 생각도 든다.
그럼 이제 간단하게 리뷰를 해보겠다.
1. SDEdit: Guided Image Synthesis and Editing with Stochastic Differential Equations
Diffusion의 대가인 Yang Song의 논문.
사실 아래 그림이 논문의 전부이다. Image input이 들어왔을때 이를 적당히 noising하고 이를 denoising하면서 real image로 “hijack”시킨다. “hijack”이란 표현은 논문에서 나오는 표현으로 Stroke image distribution에 있는 이미지를 real image distribution으로 옮기는 것을 의미한다.
조금만 더 자세히 과정을 말해보면 아래와 같다.
우선 위 Input 이미지와 같은 적당히 image의 정보를 갖고있는 "guide image"를 준비한다.
SDEdit의 목표는 이 guide image를 이용하여 높은 Realism과 guide image와의 Faithfulness를 만족시키는 새로운 이미지 output을 생성해내는 것이다. 당연히 Realism과 Faithfulness는 positive correlated하지 않고 둘 중 하나만 만족시키는 이미지도 생성될 수 있다.
(어떠한 관점에서는 당연하지 않을수도 있는데, real world에 없는 guide image를 준비한 다음 이를 이용해 sampling을 하면 당연히 둘 다 만족시키기는 어렵다고 생각한다.)
또한 본 논문에서는 reverse SDE를 푸는 과정에서 t의 값이 반드시 1일 필요하고 없고 0과 1의 중간 시점인 어느 t_0에서나 reverse SDE를 풀 수 있다는 사실을 이용한다. 즉 완벽한 gaussian noise가 아닌 아래 붉은색 네모 그림과 같은 부분이여도 reverse SDE를 solve 할 수 있는 것이다.
guidance image x^{g}가 들어왔을때 이를 time step t_0로 perturb(noising)하고, 그렇게 만들어진 x^{g}(t_0)를 활용해서 x_0를 sampling 할 수 있다.
t_0를 적절하게 선택하는 것이 중요한데, 일반적으로 [0.3,0.6] 사이에서 선택하는 것이 좋다고 한다. (너무 크면 너무 많이 noise를 줘서 fidelity가 낮아지고, 너무 작으면 image의 quality가 낮아진다.)
알고리즘은 다음과 같다.
2. GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models
다음 논문은 OpenAI의 GLIDE이다.
SDEdit보다 더 뭐가 없는 논문인 느낌이다.
무려 35억개의 파라미터를 이용해 대규모 text-to-image diffusion model을 학습시켰고, 악용 및 남용을 막기 위해 그 중 일부만 사용해서 작게 만든 것이 GLIDE(filtered)이다. (-> 35억개가 되게 많다고 생각했는데 DALL-E는 120억개라고 한다..)
(35억개의 파라미터의 모델과 별개로 15억개의 파라미터로 text-conditional upsampling model을 학습시켜 64x64로 생성된 이미지를 256x256으로 upsampling 시켰다.)
아이디어에서는 별 거 없지만, 그 결과들을 보면 상당히 놀라운데 확실히 (좋은)데이터를 많이 쓰는게 중요하다는 생각이 든다.
본 논문에서는 Classifier-free guidance 및 Classifier guidance에 대한 비교도 많이 하고 있는데 두 논문을 읽었다면 쉽게 이해할 수 있을 것이다.
추가로 (noised)CLIP guidance를 새롭게 제시하는데, noisy(흐릿한) image로 ViT-B CLIP 모델을 학습시키고 이를 이용해 guidance를 주는 것이다. 그냥 공개되어있는 CLIP model을 사용하지 않은 이유는 CLIP은 noisy image가 아닌 clean image로만 학습되었기 때문에, diffusion sampling process에서 nnoisy image를 잘 인식할 수 없기 때문이다.(Appendix D 참고)
결과를 보면 전체적으로 Classifier Free GLIDE가 이미지 생성 성능이 제일 좋아보이는데, 붉은 네모 부분을 보면 text와 잘 align되는 것은 CLIP GLIDE인 것을 볼 수 있다. 아마 CLIP model이 text와 image의 cosine similarity가 높아지도록 학습되기 때문에 이러한 결과가 나타나는 것 같다.
3. ILVR: Conditioning Method for Denoising Diffusion Probabilistic Models
SDEdit과 비슷한 시기에 나왔고, 서울대 윤성로 교수님 연구실에서 나온 ILVR이다. 이상윤님의 diffusion seminar 유튜브에 비공개 처리 되어있어서 한국어로 된 자료로 복습을 못해본게 아쉽다.
ILVR은 diffusion model의 latent를 조작하여 하나의 reference image와 유사한 여러 이미지들을 생성하거나, image-to-image translation 등의 task를 할 수 있게 하는 논문이다.
기존의 DDPM은 generative process에서의 stochastic한 성질 때문에 원하는 semantic한 정보를 담는 이미지를 생성하기가 어려웠고, 추가적인 training 없이 generative process를 conditioning 해 보자는 것이 이 논문의 핵심 contribution이다.
핵심 아이디어는 ϕ라는 resizer를 활용해 reference 이미지(y)의 ϕ(y_{t-1})를 ϕ(x_{t-1})과 sampling 과정에서 일치시켜 주는 것이다. 알고리즘으로 보면 편한데, 다음과 같다.
핵심은 y를 reference image라고 했을때, gaussian noise인 x_T로 부터 sampling을 하는 과정에서, y_{t-1}과 x_{t-1}이 같아지게 latent를 조금씩 조작하는 것이다. 쉽게 말해서 아래 그림에서 붉은색 x_{t-1} 이미지를 나오게 하고 싶은데 이때 y를 ϕ에 넣어서 나온 결과값과 x_{t-1}'를 ϕ에 넣어서 나온 결과값이 둘 다 붉은색 박스가 되도록 하는 것이다. (이렇게 하면 low-frequency contents를 공유할 수 있다고 논문에서 주장하고 있다.)
코드도 DDPM 및 I-DDPM 논문을 base로 사용하였고, 비교적 구현은 간단한 것 같다.
4. DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation
부스트캠프 할 때 한번 보긴 했었는데, 이번에 다시 제대로 읽어보았다.
논문에서 가장 흥미로웠던 점은, image-to-image translation을 할 때 목표로 하는 target subject가 바뀌는 현상(예를 들어, 내가 찍은 강아지를 custom 하고 싶은데, dog라는 prompt를 입력하면 그 강아지가 아닌 다른 강아지가 나오는 경우)을 [identifier] token을 잘 활용해서 해결했다는 것이다.
(fine-tuning시) input으로는 3~5장의 object이미지와 이에 해당하는 text prompt가 "A [V] dog" 형태로 들어간다.
이때 dog는 사용자가 직접 제공하거나, classifier를 활용한다.(prompts의 subject를 30개만 사용한다.(개, 고양이 등등))
이때 Class-Specific Prior Preservation Loss가 사용되는데, 이는 dog subject에 해당하는 더 다양한 이미지를 생성해내기 위해 사용되는 것이다.
읽으면서 프로젝트 아이디어가 몇가지 떠올랐고, 아마 소프트웨어 실습 수업 개인 프로젝트때는 DreamBooth를 사용하지 않을까 싶다.
(dreambooth finetuning에는 데이터가 많이 필요없기 때문, 시간이 난다면 fastapi + flutter로 배포까지 해보는게 목표다)
다음주는 코드 공부를 메인으로 할 계획이라, 또 학교 수업 밀린 공부를 해야해서 얼마나 읽을 수 있을지는 모르겠지만 목표는 아래와 같다.
[To Read LIST] (bold : 다음주 목표)
- DIFFUSION MODELS ALREADY HAVE A SEMANTIC LATENT SPACE
- IP-Adapter: Text Compatible Image Prompt Adapter for Text-to-Image Diffusion Models
- In-Context Learning Unlocked for Diffusion Models
- Hierarchical Text-Conditional Image Generation with CLIP Latents (DALL-E 2)
- Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding (Imagen)
- Image Super-Resolution via Iterative Refinement
- Soft Truncation: A Universal Training Technique of Score-based Diffusion Model for High Precision Score Estimation
- Elucidating the Design Space of Diffusion-Based Generative Models
- Adding Conditional Control to Text-to-Image Diffusion Models
- Boundary Guided Mixing Trajectory for Semantic Control with Diffusion Models
- P+: Extended Textual Conditioning in Text-to-Image Generation
- More Control for Free! Image Synthesis with Semantic Diffusion Guidance
- Prompt-to-Prompt Image Editing with Cross Attention Control
- An Image is Worth One Word: Personalizing Text-to-Image Generation using Textual Inversion
- SINE: SINgle Image Editing with Text-to-Image Diffusion Models
- PRIORGRAD: IMPROVING CONDITIONAL DENOISING DIFFUSION MODELS WITH DATA-DEPENDENT ADAPTIVE PRIOR
- Diffusion-Stego: Training-free Diffusion Generative Steganography via Message Projection
- Custom-Edit: Text-Guided Image Editing with Customized Diffusion Models
- Dense Text-to-Image Generation with Attention Modulation
- ArtFusion: Controllable Arbitrary Style Transfer using Dual Conditional Latent Diffusion Models
- Diffusion-based Image Translation using Disentangled Style and Content Representation
- Perception Prioritized Training of Diffusion Models
댓글