CV
[2025-2] 주서영 - Paint by Example: Exemplar-based Image Editing with Diffusion Model
영써
2025. 12. 5. 11:10
요약
- 예시 기반 이미지 편집에 관한 논문
- self-supervised training을 활용하여 원본과 참조 이미를 분리시켜 학습을 구성
- 원본 이미지(source image, $s$): 편집하고자 하는 이미지
- 참조 이미지(reference image, $r$): 데이터베이스에서 검색 or 사용자가 제공하는 이미지
- arifact를 피하고 단순 복-붙 방지
- Content bottleneck
- Strong augmentations
- Arbitrary shape mask
- Classifier-free guidance
- 학습은 반복없이 단일 forward로 진행

1. Introduction
- 참조 이미지를 조건으로 하는 Diffusion Model을 훈련하기
- 하지만 학습 데이터 쌍을 수집하기 힘들기 때문에 이를 위해 입력 이미지에서 개체를 잘라내어 학습하도록 한다.
- 또 다른 문제가 있는데 위 방법으로 하면 모델의 일반화 능력이 떨어져 단순 복-붙으로만 학습할 수 있다.
이를 위해,
- 사전학습된 text-to-image 모델을 사용
- 공간 토큰(spatial token)을 삭제하고 글로벌 임베딩만을 조건으로 간주하는 Content bottleneck을 도입
- 참조 이미지에 대한 Strong augmentation
- 학습 시 Arbitrary shape mask를 사용
- Classifier-free Guidance
2. Method

- 원본 이미지 $x_s$, 마스크 $m$, 참조 이미지 $x_r$, 결과 이미지 $y$
- 목표는 ${x_s,x_r,m}$으로부터 $y$를 생성하는 것
- 이미지 맥락에 맞게
$m=0$인 부분은 원본 이미지 $x_s$와 동일하게 유지되어야 하고,
$m=1$인 부분은 참조 이미지 $x_r$와 동일해야 한다.
💡 예시 기반의 이미지 편집이 어려운 이유
- 참조 이미지의 배경 노이즈를 무시하고 객체의 형태와 텍스처를 이해해야 한다.
- 객체가 원본 이미지에 대해 자연스러워야 한다.
- 마스킹된 객체 주변 영역을 인페인팅하여 현실적인 사진을 생성해야 한다.
- 참조 이미지의 해상도가 편집하려는 영역보다 낮을 수 있어 초해상화(super-resolution) 기능이 과정에 포함되어야 한다.
3.1 Preliminaries
Self-supervised training
- 원본 이미지 $x_s$에 있는 객체의 bounding box를 $x_r$로 간주하고 학습한다.
$$
{(\bar{\mathbf{m}} \odot \mathbf{x}_s, \mathbf{x}_r, \mathbf{m}), \mathbf{x}_s}
$$- $\bar{\mathbf{m}}=1-\mathbf{m}$, $1$은 1로 채워진 행렬
A naive solution
$$
\mathcal{L} = \mathbb{E}_{t, \mathbf{y}_0, \epsilon} \left| \epsilon_\theta(\mathbf{y}_t, \bar{\mathbf{m}} \odot \mathbf{x}_s, \mathbf{c}, t) - \epsilon \right|_2^2
$$
- $\mathbf{c}=\mathrm{CLIP}$
- 이 방법은 copy-and-paste arifacts가 존재한다.

3.2 Model Designs

- StableDiffusion 같이 text-to-image 모델에서 텍스트에서 이미지로 재구성하려면 자연스럽게 문맥에 대해 학습한다. 이미지는 기억하기 쉬워 의미론을 배우지 않아 일반화 실패로 이어진다.
3.2.1 Content bottleneck, 이미지 재구성 학습 난이도 올리는 방법
- CLIP의 Image Encoder에서 클래스 토큰만을 조건으로 사용
- 참조 이미지인 $x_r$을 1024차원의 1차원 벡터로 시퀀스하게 처리함
- 이후 diffusion process에 cross attention 하기 위해서 FC층을 추가함
⇒ 이미지의 압축된 의미론적 정보를 유지하면서 고주파 디테일을 무시하지 않도록 한다.
또한 사전학습된 모델(Stable Diffusion, CLIP)을 사용하여 참조 이미지를 직접 기억하지 않도록 한다.
3.2.2 Strong Augmentation
- Reference image augmentation
- 학습 시 $x_r$은 $x_s$의 일부인데 테스트 시에는 전혀 다른 이미지여서 부자연스러운 결과를 초래한다.
- $x_r$에 여러 데이터 증강 기법(flip, rotation, blur 등)을 적용해 자연스러운 이미지가 생성되도록 한다. ($\mathcal{A}$ = Augmentation)
$$
c = \operatorname{MLP}(\operatorname{CLIP}(\mathcal{A}(x_r)))
$$
- Mask Shape augmentation
- 경계 상자를 기반으로 무작위 왜곡 $\mathcal{D}$로 학습과 테스트 간의 격차를 줄이도록 한다.
$$
\bar{\mathbf{m}} = 1 - \mathcal{D}(\mathbf{m})
$$
- 경계 상자를 기반으로 무작위 왜곡 $\mathcal{D}$로 학습과 테스트 간의 격차를 줄이도록 한다.
3.2.3 Control the mask shape
- 임의의(arbitrarily shaped) 불규칙한 마스크를 생성하여 사용

3.2.4 Control the similarity degree
- Classifier-free Guidance
- 조건 $c$가 주어진 상태 와 조건이 없는 상태에서의 예측을 결합하여 최종 노이즈 예측을 조정하는 것
$$
\log p(\mathbf{y}_t|\mathbf{c}) + (s - 1) \log p(\mathbf{c}|\mathbf{y}_t) \propto \log p(\mathbf{y}_t) + s(\log p(\mathbf{y}_t|\mathbf{c}) - \log p(\mathbf{y}_t))
$$- $p(\mathbf{c}|\mathbf{y}_t)$: 노이즈가 추가된 이미지 $y_t$가 주어졌을 때 조건 $c$가 나타날 확률의 로그 값이며 생성된 이미지가 조건 $c$를 얼마나 잘 따르는지를 나타내는 일종의 분류기(classifier) 역할이다.
- $s$: 'Classifier-Free Guidance Scale'이며 커질수록 생성된 이미지가 조건에 더 강하게 맞춰진다. (참조 이미지와의 유사성)
- VQ-Diffusion에서 개선한 Guidance를 사용하고, 학습 가능한 벡터 $\mathbf{v}$를 추가
$$
\tilde{\epsilon}{\theta}(\mathbf{y}_t, \mathbf{c}) = \epsilon{\theta}(\mathbf{y}_t, \mathbf{v}) + s(\epsilon{\theta}(\mathbf{y}_t, \mathbf{c}) - \epsilon{\theta}(\mathbf{y}_t, \mathbf{v}))
$$
- 조건 $c$가 주어진 상태 와 조건이 없는 상태에서의 예측을 결합하여 최종 노이즈 예측을 조정하는 것
4. Experiments
4.1 Implementation Details
- 학습 데이터셋은 바운딩 박스를 포함한 OpenImages 사용
- 이미지 해상도는 $512\times512$로 전처리
Test Benchmark
- 저자들이 직접 COCO Exemplar-based image Editing (COCOEE)이라는 새로운 벤치마크를 구축했다.
- MSCOCO 학습 데이터셋에 수동으로 참조 이미지 패치를 구성했다.
4.3 평가 지표 (Evaluation Metrics)


- FID (Fréchet Inception Distance): 생성된 이미지의 품질을 평가하는 데 널리 사용되는 지표
- QS (Quality Score): 생성된 이미지의 전반적인 품질을 측정하기 위해 평균값을 사용
- CLIP Score: 편집된 영역과 참조 이미지 간의 유사성을 코사인 유사도로 평가합니다.
4.4 From Language to Image Condition

- 텍스트와 이미지 조건 비교
- 이미지를 조건으로 사용하는 것이 디테일을 더 유지한다.


