웹사이트 검색

접지된 세그먼트를 통해 IDM-VTON의 다양성 확장


소개

우리는 지난 몇 년 동안 텍스트를 이미지로 변환하는 황금시대에 살고 있습니다. 오픈 소스 커뮤니티에 Stable Diffusion이 처음 출시된 이후 혁신적인 컴퓨터 비전 모델을 활용하기 위해 더욱 광범위하고 다양한 파이프라인에 통합되면서 기술의 역량이 폭발적으로 증가했습니다. ControlNets에서 LoRA, Gaussian Splatting, 즉각적인 스타일 캡처에 이르기까지 이 혁신의 범위는 계속해서 폭발적으로 확대될 것임이 분명합니다.

이 기사에서는 흥미로운 새 프로젝트인 "진정한 가상 체험을 위한 확산 모델 개선"(IDM-VTON)을 살펴보겠습니다. 이 프로젝트는 창의적인 모델을 위한 실제 유틸리티(의상 입어보기)를 만들기 위한 최신 및 최고의 Stable Diffusion 기반 파이프라인 중 하나입니다. 놀라운 파이프라인을 통해 이제 상상할 수 있는 거의 모든 옷으로 인간의 모습을 장식하는 것이 가능해졌습니다. 가까운 미래에는 놀라운 AI로 쇼핑이 진화함에 따라 모든 소매 웹사이트에서 이 기술을 볼 수 있을 것으로 예상됩니다.

좀 더 나아가 파이프라인을 대대적으로 도입한 후 Grounded Segment Anything을 마스킹 파이프라인에 추가하여 파이프라인에 적용한 새로운 개선 사항도 소개하고 싶습니다.

전제 조건

  • 기본 ML 지식: 분할 및 경계 상자와 같은 컴퓨터 비전 개념에 대한 이해
  • Python 및 PyTorch: 모델 구현을 위한 Python 프로그래밍 및 PyTorch에 대한 지식
  • 종속성: torch, torchvisionsegment-anything(제공된 경우)과 같은 라이브러리를 설치합니다.
  • 데이터세트 준비: 분할 작업을 위해 라벨이 지정되거나 라벨이 지정되지 않은 이미지 데이터세트에 액세스합니다.
  • 하드웨어: 효율적인 훈련 및 추론을 위한 GPU 지원 시스템입니다.

IDM-VTON이란 무엇입니까?

IDM-VTON의 핵심은 두 개의 이미지를 사용하여 인물에게 의류를 입히는 파이프라인입니다. 그들 자신의 말에 따르면, 가상 시착은 "각각 사람과 의복을 묘사하는 한 쌍의 이미지가 주어지면 엄선된 의류를 입고 있는 사람의 이미지를 렌더링합니다"(출처).

위 그림에서 모델 아키텍처를 볼 수 있습니다. 이는 두 개의 맞춤형 Diffusion UNet인 TyonNet 및 GarmentNet과 이미지 프롬프트 어댑터(IP-Adapter) 모듈의 병렬 파이프라인으로 구성됩니다. TryonNet은 사람 이미지를 처리하는 주요 UNet입니다. 한편, IP 어댑터는 나중에 TryonNet에서 사용할 의류 이미지의 높은 수준의 의미를 인코딩합니다. 또한 동시에 GarmentNet은 의류 이미지의 하위 수준 기능을 인코딩합니다.

TryonNet UNet의 입력으로 모델은 인간 모델의 노이즈 잠재성을 의류에서 추출된 마스크 및 DensePose 표현과 연결합니다. TryonNet은 사용자가 제공한 세부 의류 캡션 [V]와 연결된 잠재성을 TryonNet의 입력으로 사용합니다. 동시에 GarmentNet은 자세한 캡션만 입력으로 사용합니다.

TryonNet의 확산 단계 중간에 최종 출력을 얻기 위해 파이프라인은 TryonNet과 GarmentNet의 중간 기능을 연결하여 self-attention 레이어에 전달합니다. 그런 다음 텍스트 인코더 및 IP 어댑터의 기능을 교차 주의 계층과 융합한 후 최종 출력이 수신됩니다.

IDM-VTON을 사용하면 무엇을 할 수 있나요?

간단히 말해서, IDM-VTON은 가상으로 옷을 입어보겠습니다. 이 프로세스는 믿을 수 없을 정도로 강력하고 다재다능하며 본질적으로 모든 상반신 의류(셔츠, 블라우스 등)를 모든 체형에 적용할 수 있습니다. 위에서 설명한 복잡한 파이프라인 덕분에 입력 대상의 원래 포즈와 일반적인 특징이 새 의상 아래에 유지됩니다. 확산 모델링의 계산 요구 사항으로 인해 이 프로세스는 여전히 상당히 느리지만, 이는 여전히 물리적으로 옷을 입어보는 것에 대한 인상적인 대안을 제공합니다. 시간이 지남에 따라 운영 비용이 낮아지기 때문에 이 기술이 소매 문화에서 확산되는 것을 볼 수 있을 것으로 예상됩니다.

IDM-VTON 개선

이 데모에서는 IDM-VTON Gradio 애플리케이션에 추가한 몇 가지 작은 개선 사항을 보여 드리고자 합니다. 특히, 배우에게 옷을 입힐 수 있는 모델의 능력을 신발과 모자를 제외하고 상체를 넘어 몸 전체로 확장했습니다.

이를 가능하게 하기 위해 우리는 IDM-VTON을 놀라운 Grounded Segment Anything 프로젝트와 통합했습니다. 이 프로젝트에서는 Segment Anything과 함께 GroundingDINO를 사용하여 텍스트 프롬프트만으로 모든 이미지의 모든 항목을 분할, 마스크 및 감지할 수 있습니다.

실제로 Grounded Segment Anything에서는 자동 마스킹 범위를 신체의 모든 옷으로 확장하여 사람들의 하체에 자동으로 옷을 입히도록 하겠습니다. IDM-VTON에서 사용되는 원래 마스킹 방법은 상체만 마스크하고 그림의 윤곽선과 얼마나 일치하는지에 관해서는 상당히 손실이 많습니다. Grounded Segment Anything 마스킹은 신체에 대한 충실도가 훨씬 높고 정확합니다.

데모에서는 원래 마스킹 방법을 사용하기 위해 Grounded Segment Anything을 추가했습니다. 데모를 실행할 때 애플리케이션 왼쪽 하단에 있는 Grounded Segment Anything 토글을 사용하여 켜세요.

IDM-VTON 데모

설정

머신이 가동되면 환경 설정을 시작할 수 있습니다. 먼저 다음 셀의 각 줄을 개별적으로 복사하여 터미널에 붙여넣습니다. 이는 환경 변수를 설정하는 데 필요합니다.

export AM_I_DOCKER=False
export BUILD_WITH_CUDA=True
export CUDA_HOME=/usr/local/cuda-11.6/

그런 다음 다음 코드 블록 전체를 복사하여 터미널에 붙여 넣을 수 있습니다. 그러면 이 애플리케이션을 실행하는 데 필요한 모든 라이브러리가 설치되고 필요한 체크포인트 중 일부가 다운로드됩니다.

## Install packages
pip uninstall -y jax jaxlib tensorflow
git clone https://github.com/IDEA-Research/Grounded-Segment-Anything
cp -r Grounded-Segment-Anything/segment_anything ./
cp -r Grounded-Segment-Anything/GroundingDino ./
python -m pip install -e segment_anything
pip install --no-build-isolation -e GroundingDINO
pip install -r requirements.txt

## Get models
wget https://huggingface.co/spaces/abhishek/StableSAM/resolve/main/sam_vit_h_4b8939.pth
wget -qq -O ckpt/densepose/model_final_162be9.pkl https://huggingface.co/spaces/yisol/IDM-VTON/resolve/main/ckpt/densepose/model_final_162be9.pkl
wget -qq -O ckpt/humanparsing/parsing_atr.onnx https://huggingface.co/spaces/yisol/IDM-VTON/resolve/main/ckpt/humanparsing/parsing_atr.onnx
wget -qq -O ckpt/humanparsing/parsing_lip.onnx https://huggingface.co/spaces/yisol/IDM-VTON/resolve/main/ckpt/humanparsing/parsing_lip.onnx
wget -O ckpt/openpose/ckpts/body_pose_model.pth https://huggingface.co/spaces/yisol/IDM-VTON/resolve/main/ckpt/openpose/ckpts/body_pose_model.pth

실행이 완료되면 애플리케이션 실행을 시작할 수 있습니다.

IDM-VTON 애플리케이션 데모

데모 실행은 코드 셀이나 우리가 사용했던 것과 동일한 터미널에서 다음 호출을 사용하여 수행할 수 있습니다. 노트북의 코드 셀은 이미 채워져 있으므로 이를 실행하여 계속할 수 있습니다.

!python app.py

웹페이지에서 애플리케이션을 열려면 공유된 Gradio 링크를 클릭하세요. 여기에서 이제 의류 및 인물 이미지를 페이지에 업로드하여 IDM-VTON을 실행할 수 있습니다! 한 가지 주목해야 할 점은 기본 설정을 원래 릴리스에서 약간 변경했다는 것입니다. 특히 추론 단계를 낮추고 Grounded Segment Anything에 대한 옵션을 추가하고 신체에서 그릴 추가 위치를 찾도록 했습니다. Grounded Segment Anything은 모델의 기능을 대상의 몸 전체로 확장하고 더 다양한 옷을 입힐 수 있게 해줍니다. 다음은 원본 데모에서 제공한 샘플 이미지와 터무니없는 의상 선택을 찾기 위한 노력의 일환으로 광대 의상을 사용하여 만든 예입니다.

IDM-VTON 및 Grounded Segment Anything으로 만든 예시 갤러리

다양한 포즈와 체형으로 꼭 시험해 보세요! 믿을 수 없을 정도로 다재다능합니다.

마무리 생각

IDM-VTON의 엄청난 잠재력은 즉시 명백해집니다. 어떤 옷이든 구매하기 전에 가상으로 입어볼 수 있는 시대가 빠르게 다가오고 있으며, 이 기술은 그러한 발전을 향한 주목할만한 진전을 의미합니다. 앞으로도 유사한 프로젝트에서 더 많은 작업이 수행되기를 기대합니다!

관련기사: