paper : [2403.05139] Improving Diffusion Models for Virtual Try-on (arxiv.org)

 

Improving Diffusion Models for Virtual Try-on

This paper considers image-based virtual try-on, which renders an image of a person wearing a curated garment, given a pair of images depicting the person and the garment, respectively. Previous works adapt existing exemplar-based inpainting diffusion mode

arxiv.org

github : yisol/IDM-VTON: IDM-VTON : Improving Diffusion Models for Authentic Virtual Try-on in the Wild (github.com)

 

GitHub - yisol/IDM-VTON: IDM-VTON : Improving Diffusion Models for Authentic Virtual Try-on in the Wild

IDM-VTON : Improving Diffusion Models for Authentic Virtual Try-on in the Wild - yisol/IDM-VTON

github.com

 

 

 

현재 데모 버전으로 제공 중

IDM VTON 플레이그라운드 - IDM VTON 온라인을 무료로 사용해 보세요 | idmvton.com

 

IDM VTON 플레이그라운드 - IDM VTON 온라인을 무료로 사용해 보세요 | idmvton.com

✨ Upgrade to Premium Plan to enjoy a better unlimited wardrobe experience!

idmvton.com

 

데모 사용해서 써봄. 예시로 올라와있는 사진을 사용했는데 대략 10초 좀 오버되게 걸리는 듯 하다

 

 


 

Abstract

Image VTON = image-based virtual try-on = 이미지 기반 가상 착용

: 사람과 의상을각각 묘사한 한 쌍의 이미지가 주어지면 큐레이션된 의상을 입은 사람의 이미지를 렌더링

 

기존 연구

-  exemplar-based inpainting diffusion model을 virtual try-on(가상 착장)에 적용해 다른 방법(GAN 기반)에 비해 생성된 비주얼의 자연스러움을 개선함

-  의상의 정체성을 보존하지 못한다는 단점 존재

=> 의상의 충실도 개선(세부 사항 더 잘 보존함) & 실제와 같은 가상 착장 이미지를 생성하는 새로운 diffusion model인 'IDM-VTON' 제안

 

IDM-VTON

-  두 가지 모듈 사용해 의복 이미지의 semantics을 인코딩

-  UNet이 base로 주어지면 1) visual encoder에서 추출한 high-level의 semantics을 cross-attention layer에 융합한 다음 2) parallel UNet에서 추출한 low-level semantics을 self-attention layer에 융합함

-  생성된 visual의 사실성을 높이기 위해 의상과 인물 이미지 모두에 상세한 text prompt를 제공함

-  pair로 구성된 사람과 의상의 이미지(person-garment images)를 사용 -> 충실도와 사실성 향상시키는 커스터마이징 기법 제공

 

 

Introduction

Image-based VTON

-  주어진 특정 의상을 임의의 인물에게 입힌 이미지를 시각적으로 렌더링하는 것이 목표인 CV 작업

-  VTON의 핵심 과제 : 의상의 패턴과 질감에 왜곡을 일으키지 않으면서 다양한 포즈나 제스처를 취하는 인체에 의상을 맞추는 것

-  이때 GAN 기반의 방법은 왜곡을 발생하기 쉬움 -> 최근의 diffusion 모델은 GAN에 비해 우수한 성능 보임

 

Diffusion model

-  의상의 세부 사항을 식별하기 위해 의상의 semantics를 psedowords로 인코딩하거나 명시적 warping network를 사용함

-  그러나 이러한 방법은 패턴, 질감, 모양 또는 색상 등의 의상의 세밀한 디테일을 보존하는데 부족함

=> 논문에서는 이러한 한계를 극복하기 위해 IDM-VTON을 제안함

 

IDM-VTON의 특징

1)  의상의 high-level semantics을 인코딩하는 image prompt adapter = IP-Adapter

2)  세밀한디테일을 보존하기 위해 low-level semantics을 추출하는 UNet encoder = GarmentNet

3)  single pair of garment and person images를 사용해 모델을 커스터마이징하는 방법을 제안함 -> 이미지의 시각적 품질 향상(특히 wild scenario에서)

4)  의류 이미지에 대한 상세한 캡션 제공 -> T2I diffusion model의 prior knowledge를 유지하는 것의 중요성을 보임

  • 상세한 캡션(예: 소매 길이, 목선 모양, 아이템 종류 등). 모델이 더 정확하고 자연스러운 이미지를 생성하는 데 기여함. 

 

Method

1. Backgrounds on Diffusion Models

Diffusion models

: 데이터에 Gaussian noise를 점진적으로 추가하는 forward process & 무작위로 noise를 점진적으로 제거해 샘플을 생성하는 reverse process로 구성되는 generative model

-  x_0 : data point (예: image or output of autoencoder인 latent)

-  noise schedules

-  forward process

 

이때 충분히 큰 sigma_t와 x_t는 pure random Gaussian noise와 다르지 않다. 

-  reverse process

: data distribution에 따라 x_t에서 initialized되고 x_t에서 x_0로 denoise된다. 

 

Text-to-image (T2I) diffusion models

: pretrained text encoder (ex: T5, CLIP text encoder)를 사용해 임베딩으로 인코딩된 텍스트에 조건부 이미지의 분포를 모델링하는 diffusion model

-  diffusion model을 위해 convolutional UNet이 개발되었지만, 최근 연구에서는 UNet을 위해 transformer architectures를 융합할 수 있다는 가능성을 보여줌

-  diffusion model의 training은 perturbed data distribution의 score function과 동등(equivalent)한 것으로 나타났는데, 이는 ϵ-noise prediction loss으로 드러남

-  data x_0와 text embedding c가 주어졌을 때, T2I diffusion model의 training loss 

  • classifier-free guidance (CFG) 사용 <- unconditional과 conditional 함께 학습 

-  training 단계에서 text conditioning은 무작위로 dropped out되고(=input에 null-text를 제공), inference 단계에서 CFG는 조건부 및 무조건 noise output을 보간해 text conditioning의 강도를 제어함

 

Image prompt adapter

본 논문에서는 reference image로 T2I diffusion model을 conditioning하기 위해 image encoder(예: CLIP image encoder)에서 추출한 feature를 활용하고 text conditioning에 추가적인 cross-attention layer를 attach하는 image prompt adapter (IP-Adapter)를 제안함

cross-attention layer 삽입

  • 원본 UNet을 고정하고(freezes), image embedding의 key & value값 매트릭스의 projection layer와 CLIP image embedding을 매핑하는 linear projection layer만 fine-tuning함
  • 𝑄 : UNet의 중간 표현으로부터 추출된 쿼리 행렬
  • 𝐾𝑐𝑉𝑐 텍스트 임베딩 𝑐로부터의 키 및 값 행렬
  • IP-Adapter는 이미지 임베딩 𝑖로부터의 키 및 값 행렬 𝐾𝑖𝑉𝑖를 계산하고, 이를 cross-attention layer에 삽입함 

 

2. Proposed Method

VTON을 위한 diffusion model을 설계하는 방법

-  x_p : 사람 이미지 (image of a person)

-  x_g : 의상 이미지 (image of a garment)

-  x_tr : 사람 x_p가 의상 x_g를 입은 이미지

=> x_tr을 생성해내는 것이 목표

 

masked image를 reference image로 채우는 것을 목표로 하는 exemplarbased(예시 기반) image inpainting 문제로 VTON을 캐스팅하는 것이 일반적인 관행임

-> 의상의 정보를 추출하고 diffusion model에 conditional controls를 추가하는 것이 중요함

 

이를 위해 IDM-VTON은 아래의 세 가지로 이루어져있다. 

1) TryonNet : masked person image를 pose information으로 처리하는 기본 UNet

2) IP-Adapter : 의상의 high-level semantics을 추출하는 image prompt adapter

  • high-level semantics :이미지의 전체적인 context나 특징 설명함.
    • 예: 의류 종류(티셔츠, 바지...), 스타일(캐주얼, 정장...), 소매 길이(반소매, 긴 소매 등) 

3) GarmentNet : 의상의 low-level semantics를 추출하는 garment UNet feature encoder

  • low-level semantics : 이미지의 세부적인 텍스처, 미세한 특징
    • 예: 질감(면, 실크...), 텍스처 세부 사항(의류의 재질감, 표면 디테일)

=> GarmentNet이라는 추가 UNet 인코더로 추출된 low-level feature들은 TryonNet의 self-attention layer에서 융합되고, cross-attention layer를 통해 IP-Adapter의 feature들과 함께 처리됨

 

Overview of IDM-VTON

 

(a) Overview of IDM-VTON

x_p를 처리하는 메인 UNet인 TryonNet, x_g의 high-level semantics를 인코딩하는 IP-Adapter, x_g의 low-level features를 인코딩하는 GarmentNet으로 구성돼있음.

1) UNet에 대한 input으로 noised latent x_t를 segmentation mask m, masked image, densepose와 연결함

  • 의상에 대한 자세한 캡션(위의 [V]) 제공 (예: [V]: “short sleeve round neck t-shirts”) 

2) 그 후 GarmentNet(예: “a photo of [V]”)과 TryonNet(예: "Model is wearing [V]”)의 입력 프롬프트에 사용됨

  • GarmentNet 입력 프롬프트: "A photo of [V]"
  • TryonNet 입력 프롬프트: "Model is wearing [V]"

(b) Attention Block

1) TryonNet과 GarmentNet의 중간 피처를 연결하여 self-attention layer로 전달하고 output으로 나온 전반부(주로 TryonNet의 피처를 포함함. fist half) 피처를 IP-Adatper의 input으로 사용함

  • TryonNet의 중간 피처 : 주로 인체의 모양과 포즈 정보 포함
  • GarmentNet의 중간 피처 : 의상의 low-level detail(예: 텍스처, 패턴)을 포함
  • 연결된 중간 피처는 사람 이미지와 의상 이미지 정보를 모두 포함함 

2) cross-attention layer를 통해 text encoder과 IP-Adapter의 피처와 output을 융합함

  • IP-Adatper는 텍스트 인코더와 CLIP 이미지 인코더로부터 추출된 high-level semantics를 결합해 최종 피처를 생성함. high-level semantics과 low-level features를 효과적으로 융합함. 의류 이미지의 고수준 의미론적 특성을 추출하고 이를 모델에 융합하는 역할을 함 
  • TryonNet과 IP-Adapter 모듈을 finetuning하고 다른 components는 freeze시킴

 

TryonNet

기본 UNet 모델로서, 본 논문에서는 latent diffusion model을 고려함

-  diffusion generative modeling은 VAE의 latent space에서 수행되고, output은 디코더 D로 전달되어 이미지를 생성함. 

-  기본 UNet의 input으로 아래의 네 가지 구성 요소를 결합함

1. latent of person image (사람 이미지의 잠재 표현)

 

2. mask m that removes the garment on the person image (사람 이미지에서 의류를 제거한 크기가 조정된 마스크 m)

3. the latent of masked-out person image (마스크된 사람 이미지)

4. the latent of the Densepose [9] xpose of a person image (사람 이미지의 densepose인 x_pose의 잠재 표현)

-  그 후 잠재 표현들을 채널 축을 따라 정렬함

  • 이떄 UNet의 합성곱 층을 13 채널로 확장하고 초기값은 모두 0으로 설정함

-  기존의 VTON diffusion model과 달리 본 논문에서는 SDXL inpainting model을 활용함

 

Image prompt adapter

high-level semantics를 의상 이미지에 조건화하기 위해 image prompt adapter(IP-Adapter)를 사용함

1) CLIP image encoder(OpenCLIP ViT-H/14)로 의상 이미지의 피처 추출

2) feature projection layers와 cross-attention layers를 fine-tune -> pretrained된 IP-Adapter로 초기화됨

-> 텍스트 임베딩과 이미지 임베딩을 결합함

3) 최종적으로 결합된 이 feature는 UNet의 중간 피처와 융함되어 high-level semantics를 반영함

 

GarmentNet

-  IP-Adapter로 이미 의상 이미지를 조건화했지만, 복잡한 패턴이나 그래픽 프린트가 있는 의상의 세부 사항을 보존하는 데에는 한계가 존재함 -> 의상 이미지의 low-level feature를 추출해 모델의 정확도를 높이는 역할 = GarmentNet

  • CLIP image encoder가 의류의 low-level feature를 추출하는 데 한계가 있기 때문

=> 추가적인 UNet encoder (GarmentNet)을 사용해 의상 이미지의 세부 사항을 인코딩함

 

1)  의상 이미지의 잠재 표현 epsilon(x_g)가 주어진 상태에서 pretrained UNet encoder를 통해 중간 표현(representation)을 얻고, TryonNet의 중간 표현과 결합함

  • SDXL의 UNet을 활용해 pretrained T2I diffusion model의 prior 지식을 최대한 활용함 

2)  결합된 특징에서 self-attention을 계산함. 이과정에서 TryonNet의 첫 번째 절반 차원만을 사용해 중요한 feature를 강조함

 

Detailed captioning of garments

대부분의 diffusion-based VTON

: pretrained T2I diffusion model을 활용하지만, text prompt를 input으로 사용하지 않거나 단순한 text prompt(예: "upper garment")를 사용함

=> 본 논문에서는 T2I diffusion model의 prior 지식을 사용하기 완전히 활용하기 위해 의류의 디테일(예: 형태나 이미지)을 설명하는 포괄적인 캡션을 제공함

 

-  상세한 캡션을 제공함으로써 모델이 의류의 high-level semantics를 더 잘 이해하고, 더 정밀하고 자연스러운 이미지를 생성할 수 있도록 도움

 

Customization of IDM-VTON

본 모델이 의류의 detail을 잘 캡쳐할 수 있지만, 사람 이미지 x_p와 의류 이미지 x_g가 training distribution와 다른 새로운 데이터일 때 어려움이 발생할 수 있음

-> 한 쌍의 의류-사람 이미지를 TryonNet에서 사용해 fine-tuning함으로 IDM-VTON을 효과적으로 커스터마이징해 새로운 데이터에서도 잘 작동함을 확인함

-  한 쌍의 x_p와 x_g 이미지를 모두 가지고 있을 때 : IDM-VTON 간단히 fine-tune

-  $x_p$만 존재 : 의상 $x_g$를 segment하고 배경 하얗게 처리해 x_g 얻음(생성)

  • TryonNet의 디코더 레이어만 파인튜닝하며, 이는 실험적으로 잘 작동함

 

Experiment

dataset : VITON-HD & DressCode & In-the-Wild 데이터셋 사용

  • VITON-HD는 11,647개의 훈련 이미지 쌍과 1,224개의 테스트 이미지 쌍을 포함하고 있으며, 주로 간단한 포즈와 단색 배경을 특징으로 함
  • DressCode는 17,032개의 훈련 이미지 쌍과 2,041개의 테스트 이미지 쌍을 포함하며, 다양한 패턴과 복잡한 배경을 특징으로 함
  • In-the-Wild 데이터셋을 사용하여 다양한 패턴과 로고가 포함된 복잡한 배경에서의 성능을 평가함

정량적 평가 결과, IDM-VTON은 모든 평가 지표에서 기존 방법들보다 우수한 성능을 보였으며, 정성적 평가 결과에서도 다양한 상황에서 고품질의 가상 착용 이미지를 생성하는 데 성공함.

특히, GarmentNet과 커스터마이징 기법이 모델의 성능 향상에 크게 기여함을 확인함.


왜 내 tistory에는 LATex가 적용이 안될까....