Wardrobe: 옷 사진에서 옷만 오려내 카탈로그와 착용 컷으로 정리하는 AI 옷장 프로젝트

Wardrobe 소개

옷장에 무엇이 있는지 목록으로 만들어 두려고 하면 첫 단계에서 막힙니다. 손에 있는 것은 옷을 입고 찍은 사진이거나 옷걸이에 걸린 채로 찍은 사진인데, 목록에 쓰려면 배경과 착용자를 지우고 옷 하나만 남긴 그림이 필요하기 때문입니다. 사진 한 장에 상의와 하의와 신발이 같이 찍혀 있으면 그 한 장을 세 장으로 쪼개는 일부터 해야 합니다. 이 작업을 손으로 하면 옷 한 벌마다 몇 분씩 걸리고, 그렇게 몇 시간을 쓰고 나면 처음의 의욕이 남아 있지 않습니다.

이번에 소개할 Wardrobe는 이 오려내기 작업을 OpenAI API에 맡기는 로컬 옷장 갤러리입니다. 사진을 넣으면 사진 안의 옷을 한 벌씩 찾아내고, 착용자와 배경을 지운 깨끗한 컷아웃(Cutout)을 만들고, 원하면 그 옷을 입은 착용 컷까지 만들어 냅니다. tandpfun이 공개했고, 원본과 작업 기록, 생성된 이미지, JSON 데이터베이스를 전부 프로젝트 폴더 안의 data/에 남깁니다. 계정을 만들거나 사진을 어딘가에 올려 둘 필요가 없습니다. 다만 검출과 생성은 OpenAI 서버에서 이뤄지므로, 사진 자체는 API 호출로 외부에 전송됩니다.

Wardrobe는 React 19와 Vite 6로 만든 단일 페이지 앱에 이미지 처리를 담당하는 Node 스크립트를 얹은 구조입니다. 이미지 리사이즈에는 sharpipx를 쓰고, 화면 쪽에서는 @unpic/react로 반응형 이미지를 그립니다. 실행에는 Node 22 이상이 필요하고, 서버를 따로 두지 않으므로 데이터베이스 설치 과정도 없습니다. 저장소는 MIT 라이선스로 공개되어 있고, 유료 요금제나 관리형 서비스는 따로 없습니다. 비용은 사용자가 자기 OpenAI 키로 부담하는 API 사용료뿐입니다.

Wardrobe가 옷 사진을 처리하는 과정

Wardrobe의 처리 과정은 네 단계로 나뉩니다. 먼저 OpenAI Responses API가 사진 한 장에서 옷을 하나씩 검출합니다. 그다음 OpenAI Images API가 검출된 옷마다 배경과 착용자를 지운 컷아웃을 만듭니다. 여기까지가 카탈로그를 채우는 데 필요한 최소 단계이고, 그 뒤에 사용자가 넣어 둔 본인 사진을 참조해 그 옷을 입은 편집 화보풍 착용 컷을 만드는 단계를 선택적으로 실행할 수 있습니다. 마지막으로 원본과 작업 기록, 생성 이미지, JSON 데이터베이스가 모두 data/ 아래에 저장됩니다.

각 단계에 쓰이는 모델과 경로는 환경 변수로 지정합니다:

환경 변수 기본값 역할
OPENAI_API_KEY 없음 (필수) OpenAI API 인증
OPENAI_VISION_MODEL gpt-5.4-mini 사진에서 옷 검출
OPENAI_IMAGE_MODEL gpt-image-2 컷아웃과 착용 컷 생성
OPENAI_IMAGE_QUALITY high 이미지 생성 품질
WARDROBE_MODEL_REFERENCE data/model-reference.png 착용 컷에 쓸 본인 참조 사진
WARDROBE_DATA_DIR data 데이터 저장 폴더

기본 이미지 모델인 gpt-image-2는 PyTorchKR에도 프롬프트와 API 워크플로우를 모아 둔 저장소가 소개된 적이 있는 모델입니다. Wardrobe에서 이 모델이 맡는 일은 새 이미지를 상상해 그리는 쪽이 아니라, 원본 사진에 있는 옷을 배경 없이 다시 그려 내는 쪽에 가깝습니다.

웹 화면에서는 드래그와 드롭, 붙여넣기로 사진을 넣고, 만들어진 결과를 편집하고 검토한 뒤 다시 생성하거나 승인할 수 있습니다. 검토와 재생성, 승인이 흐름 안에 들어 있어서 잘못 잘린 컷아웃을 그 자리에서 다시 만들 수 있습니다.

Wardrobe에 딸려 오는 두 개의 Codex 스킬

Wardrobe에서 눈여겨볼 부분은 웹 화면이 아니라 저장소에 함께 들어 있는 Codex 스킬 두 개입니다. 사진이 수십 장이면 웹 화면에서 한 장씩 넣는 것보다 폴더를 통째로 넘기는 쪽이 빠르기 때문입니다. 저장소를 Codex에서 열고 다음처럼 요청하면 됩니다:

$import-clothes Import the clothes from ~/Pictures/outfits, create modeled photos, and add them to this wardrobe.
$generate-outfits Create modeled outfit ideas from my wardrobe.

import-clothes 스킬은 소스 폴더를 훑어 옷 목록을 만들고, 아이템마다 슬러그와 이름, 대표 색, 태그, 분류를 담은 매니페스트를 작성한 뒤 컷아웃과 착용 컷을 생성하고, 최종 검수를 통과한 것만 data/library.jsondata/imported/에 씁니다. 분류값은 상의, 아우터, 하의, 액세서리, 신발의 다섯 가지로 고정되어 있습니다.

이 스킬에서 흥미로운 것은 생성 규칙입니다. 원본 사진에서 확인되는 색과 재질, 실루엣, 구조, 패턴, 읽을 수 있는 표시만 남기고, 원본에 없는 로고나 글자, 주머니, 솔기, 잠금장치, 부자재는 지어내지 말고 차라리 생략하라고 못 박혀 있습니다. 옷 두 벌이 같은 물건인지 애매하면 합치지 않고, 지어내지 않고서는 구조를 복원할 수 없는 아이템은 아예 보류 상태로 남깁니다. 생성 모델이 그럴듯한 디테일을 채워 넣어 원본에 없던 옷을 만들어 내는 것을 막기 위한 장치입니다.

generate-outfits 스킬은 이미 들어와 있는 옷으로 코디를 짭니다. 먼저 몇 벌을 만들지 물어보고, 계절이나 상황, 드레스 코드 같은 조건을 받은 뒤, data/library.json에서 조합을 골라 코디마다 정사각형 착용 컷을 한 장씩 생성합니다. 요청한 개수만큼 서로 다른 조합을 만들고 각 조합에 승인된 사진이 정확히 하나씩 붙도록 되어 있으며, 여덟 벌을 넘어가면 서브에이전트를 나눠 쓰되 조합의 중복 확인과 최종 검수는 메인 에이전트가 맡습니다.

Wardrobe 설치 및 실행

설치는 저장소를 받아 의존성을 설치하고 개발 서버를 띄우는 순서입니다:

git clone https://github.com/tandpfun/wardrobe.git
cd wardrobe
npm install
cp .env.example .env
npm run dev

서버가 뜨면 localhost:5173으로 접속합니다. 다만 .envOPENAI_API_KEY를 넣고 본인 참조 사진을 data/model-reference.png에 두기 전까지 가져오기 기능은 비활성 상태입니다. 참조 사진은 착용 컷에서 인물의 동일성을 유지하는 데 쓰이며, 두 스킬 모두 이 파일을 Git에 올리지 말라고 명시합니다. 저장소의 CONTRIBUTING.md.envdata/, 개인 사진, 생성된 이미지, API 키를 커밋하지 말라고 적어 두었습니다.

Wardrobe는 누구에게 유용한가

OpenAI API 키가 이미 있고 옷을 아이템 단위로 정리해 두고 싶다면 Wardrobe는 바로 쓸 수 있는 출발점입니다. 계정도 서버도 필요 없고 결과물이 프로젝트 폴더에 남으므로, 마음에 들지 않으면 폴더째 지우면 됩니다. Codex를 이미 쓰고 있다면 이득이 더 큽니다. 폴더 경로 하나만 넘기면 검출과 컷아웃, 착용 컷 생성, 검수, 데이터베이스 기록까지 한 번에 끝나기 때문입니다.

반대로 사진을 외부로 보내고 싶지 않다면 맞지 않습니다. 이름은 로컬 갤러리이지만 검출과 이미지 생성은 모두 OpenAI 서버에서 이뤄지고, 여기에는 착용 컷의 참조로 쓰이는 본인 사진도 포함됩니다. 설치 없이 바로 쓰는 앱을 기대하는 경우에도 거리가 있습니다. 저장소를 받고 Node 22 이상을 준비하고 키와 참조 사진을 직접 넣어야 첫 화면에 도달합니다. 유지보수 상태도 감안할 필요가 있습니다. 커밋 9개가 2026년 7월 16일 하루에 몰려 있고 2026년 8월 19일 기준으로 그 뒤에 새 커밋이 없으며, 열려 있는 이슈 3건과 풀 리퀘스트 7건이 남아 있습니다. README가 원 게시물로 가리키는 X 글에서 출발한 프로젝트인 만큼, 계속 손보는 제품이 아니라 완성된 형태로 공개된 코드로 보고 접근하는 편이 안전합니다.

Wardrobe의 라이선스

Wardrobe는 MIT 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다.

:github: Wardrobe 프로젝트 GitHub 저장소

:bird: Wardrobe를 처음 공개한 X 게시물

https://x.com/cdngdev/status/2076812846793650485

더 읽어보기




이 글은 GPT 모델로 정리한 초안을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 댓글로 알려주시기를 부탁드립니다. :hugs:

이 도구를 직접 설치해 사용해보셨다면, :pytorch:파이토치 한국 사용자 모임:south_korea: 회원들을 위해 경험이나 팁을 댓글로 남겨주세요! :folded_hands: