[논문 리뷰] InstructPix2Pix: Learning to Follow Image Editing Instructions

2025. 7. 18. 20:48PRO

반응형
SMALL
SMALL

CVPR2023

 

ip2p만약 editing 한다면 그대로 사용하는 경우도 많으니 한 번 읽어보는 것도 좋을 듯 하다. 

 

 

 

Abstract

GPT-3, Stable Diffusion을 이용하여 대규모 이미지 편집 예제 데이터셋을 생성.

이 생성된 예제 데이터로 InstructPix2Pix 학습하며 실제 이미지와 사람이 쓴 지시문에도 적용 가능하다.

노벨티: 별도의 fine-tuning이나 inversion 없이 forward pass로 editing 수행 가능(몇 초 내에)

 

1. Introduction

사람이 작성한 지시문을 따라 이미지 편집을 수행하도록 생성 모델을 학습시키는 방법을 제안

대규모 학습 데이터를 확보하는 것이 어렵기 때문에 GPT-3와 Stable Diffusion 사용해서 학습 데이터를 생성한다.

이 데이터로 diffusion-based 이미지 생성 모델을 학습.

이 모델은 입력 이미지와 해당 이미지에 적용할 편집 지시문을 입력받아 편집된 결과 이미지를 직접 생성

제로샷(zero-shot) 달성. 직관적인 이미지 편집을 가능.

 

2. Prior work

Composing large pretrained models

우리는 GPT-3와 Stable Diffusion 사용해서 멀티모달 학습 데이터를 생성하는 데 초점 둠

 

Diffusion-based generative models

다양한 곳에서 많이 쓰고있다.(이미지 생성, 영상, 오디오, 텍스트 등)

 

Generative models for image editing

기존 편집은 style transfer, image-to-image translation 등 단일 편집 함. 

또는 CLIP 유사도 목표 함수를 최대화하는 additive image layer를 최적화하여 편집을 수행.

우리는 이러한 기법인 Text2Live 와 비교.

 

text-to-image diffusion models은 대부분의 경우 유사한 텍스트 프롬프트라도 전혀 다른 이미지를 생성하기 때문에 신뢰하기 어렵

이를 해결하기 위해 Hertz et al.는 Prompt-to-Prompt라는 기법을 제안

이 방법은 유사한 텍스트 프롬프트로부터 생성된 이미지들을 유사하게 유지하면서, localized edit 가능. -> 훈련 데이터 생성 과정에서 사용

 

이미지를 편집하기 위해서는 SDEdit 이 사용. 입력 이미지에 노이즈를 추가하고 그 후 새로운 텍스트 프롬프트로 디노이징을 수행.

SDEdit을 baseline으로 사용

 

 

Learning to follow instructions

 

기존 방법들은 입력/출력 이미지의 설명, 캡션, 또는 텍스트 라벨을 활용한 반면
우리 방법은 모델이 어떤 작업을 수행해야 하는지를 지시하는 '명령어(instruction)' 기반의 편집을 가능.

 

편집 명령어를 따르는 방식의 주요 장점은 사용자가 자연어로 모델에게 해야 할 작업을 직접적으로 말할 수 있다는 점(현재 gpt 이미지 생성 및 편집처럼.)

 

Training data generation with generative models

딥러닝 모델은 일반적으로 대규모 학습 데이터를 필요 하지만 

supervision을 위한 적절한 형태(예: 특정 모달리티 간의 짝 지어진 데이터) 찾는건 어렵다.

 

이 논문에서는 language, text-toimage를 통해 학습 데이터를 생성

 

3. 방법 (Method)

1.  편집 전/후 이미지와 텍스트 지시어가 짝지어진 학습 데이터셋을 생성

2. 생성된 데이터셋을 사용하여 이미지 편집용 diffusion model을 학습

 

 

그림 2. 우리의 방법은 두 부분으로 구성됩니다:

  1. Training Data Generation
  2. Instruction-following Diffusion Model

(a) 먼저, 파인튜닝된 GPT-3를 사용하여 편집 지시어편집 후 캡션을 생성합니다.
(b) 그런 다음, Stable Diffusion과 Prompt-to-Prompt  기법을 결합하여 캡션 쌍으로부터 이미지 쌍을 생성합니다.
(c) 이 절차를 통해 45만 개 이상의 학습 예시로 구성된 데이터셋을 만듭니다.
(d) 마지막으로, InstructPix2Pix 확산 모델을 이 생성된 데이터로 학습시켜, 지시어를 기반으로 이미지를 편집할 수 있게 합니다.

 

3.1.1 Generating Instructions and Paired Captions

 

large language model을  image captions으로 받아서 editing instructions과 text captions을 생성. 

예시: 입력 캡션이 “말을 타는 소녀의 사진”

편집 지시문: “용을 타게 해줘”

출력 캡션: “용을 타는 소녀의 사진”을 생성

 

이 논문은 GPT-3를 파인튜닝하여 이 작업을 수행하는 모델을 학습. 

이 데이터셋을 만들기 위해 LAION-Aesthetics V2 6.5+, 700개의 입력 캡션을 샘플링, 편집 지시문과 출력 캡션을 작성

 

이 데이터를 기반으로 우리는 GPT-3 Davinci 모델을 단 한 번의 에폭(epoch) 동안 기본 설정으로 파인튜닝

 

다만 LAION은 노이즈가 많고 무의미한 캡션도 포함되어 있다는 단점 이를 해결하기 위해

 

  • 데이터 필터링 (3.1.2절),
  • Classifier-Free Guidance (3.2.1절)

=> 품질개선

 

작은 텍스트 데이터셋에 라벨로 GPT-3를 파인튜닝한 뒤, 그 파인튜닝된 모델을 이용해 대규모 텍스트 triplet 데이터셋을 생성

 

  • 입력 캡션 (input caption),
  • 편집 지시문 (edit instruction),
  • 출력 캡션 (output caption)

 

3.1.2 Generating Paired Images from Paired Captions

텍스트-투-이미지 모델은 조건이 되는 프롬프트(prompt)에 아주 작은 변화만 주어져도 완전히 다른 이미지를 생성할 수 있으므로, 캡션 쌍을 일관성 있는 이미지 쌍으로 만드는 데 어려움이 있음. => 해결책 Prompt-to-Prompt 사용

 

 

Prompt-to-Prompt 기법을 적용한 경우와 적용하지 않은 경우의 이미지 쌍.

 

 

Prompt-to-Prompt는 생성된 이미지 간의 유사성을 높이는 데 큰 도움이 되지만, 편집 종류에 따라 이미지 상에서 요구되는 변화량은 달라짐. Prompt-to-Prompt에는 이미지 유사도를 제어할 수 있는 하이퍼파라미터인 p가 존재.

 

최적의 p 값 찾기 위해 캡션 쌍마다 p 값을 [0.1, 0.9] 구간에서 무작위로 샘플링하여 100개의 이미지 쌍을 생성.

Gal et al. [14]이 제안한 CLIP 기반 방향 유사도(Directional Similarity) 메트릭을 사용해 이 샘플들을 필터링.

 

 

 

3.2. InstructPix2Pix

 

Latent Diffusion【52】은 사전학습된 VAE의 latent space에서 작업함으로써
모델의 효율성과 품질을 개선.

 

쉽게 설명하면 기존 SD는 Text->image

이 논문은 image+지시문->  editing된 image 

따라서 첨부터 학습 안해도 되고 일부만 파인튜닝해서 사용가능.

S_I: 입력이미지와 유사성

S_T: 편집 지시문과 일치도

 

 

3.2.1 Classifier-free Guidance for Two Conditionings

지시문, 원본 이미지를 얼마나 다른지 결정하기 위해 그림4.

훈련할 떄 일부러 이미지조건 5% 제거, 텍스트 조건 5%제거, 둘 다 5%제거 해서 학습.

 

4. Results

SDEdit , Text2Live랑 정성적으로 비교.

SDEdit과의 정량적 비교

 

 

 

 

반응형
LIST