게임 및 아바타의 스타일라이즈드 헤어는 여러 개의 '헤어 카드'(hair card, 아티스트가 배치한 리본형 폴리곤)로 구성되며 스프링 본에 의해 구동됩니다. HairDeck은 캐릭터 이미지를 입력받아 이러한 헤어 카드와 이를 구동하는 스프링 본 체인을 직접 생성합니다. 각 헤어 카드는 토큰으로 인코딩되어 집합 확산 트랜스포머(Set Diffusion Transformer)를 통해 함께 디노이징(denoising)되며, 두 번째 확산 모델이 본 체인을 생성하고 스키닝(skinning)을 수행합니다. 출력물은 개별 헤어 카드와 카드별 UV를 유지하며, GLB로 내보내거나 기본 제공되는 바디 모델에 적용하여 VRM 아바타로 내보낼 수 있습니다.
좋아요 17 · 코드 스타 수 14
이유
- 저자는 CHARM의 자체 테스트 세트에서 chamfer 거리가 44% 감소하고, 헤어 스트랜드 방향 오차가 절반 이상 줄어들었으며, 속도가 33배 빨라졌다고 주장합니다. 또한 단일 이미지 생성 시에도 CHARM, 이미지-투-3D 파이프라인 및 헤어 스트랜드 기반 방법보다 우수한 성능을 보입니다.
- 코드와 4개의 체크포인트(이미지 조건 DiT, 헤어 스트랜드 VAE, 스켈레톤 체인 DiT, 점 구름 조건 DiT)가 모두 공개되었으며, 코드와 가중치는 Apache-2.0 라이선스를 따르고, Hugging Face 온라인 데모도 제공됩니다.
- 생성물은 GLB 메시, VRM 아바타 및 머리 회전 미리보기 비디오 형태로 바로 다운스트림 작업에 활용할 수 있어, 융합된 메시를 수동으로 헤어 스트랜드로 분해할 필요가 없습니다.
사용법
- 가장 빠른 체험: Hugging Face Space hyz317/HairDeck.
- 로컬 실행: Linux x86-64, Python 3.12, NVIDIA GPU 1개 필요(저자는 PyTorch 2.8 + CUDA 12.8 환경에서 테스트함); git clone github.com/hyz317/HairDeck → pip install -r requirements.txt → pip install --no-deps pyrender==0.1.45.
- 가중치: 먼저 Hugging Face에서 facebook/sam3 및 facebook/dinov3-vitl16-pretrain-lvd1689m의 라이선스에 동의하고 hf auth login을 수행한 후, HAIRDECK_ROOT를 설정하고 python scripts/setup/download_weights.py를 실행합니다(Blender 4.2 LTS 및 VRM 플러그인도 함께 다운로드됨).
- 생성: python scripts/image_to_hair.py character.png --out results/my_character --n 4 (1–4개의 변형 생성, --no-chains 옵션을 사용하면 헤어 카드만 생성); 내보내기: python -m hairdeck.vrm.export results/my_character/character 0; 또한 python demo/app.py를 실행하여 로컬 웹 서버를 시작할 수 있습니다.
리스크
- 의존성이 많음: SAM 3, DINOv3는 게이트된 모델이므로 Hugging Face 로그인 및 라이선스 동의가 필요하며, Blender + VRM 플러그인과 ffmpeg도 필요합니다. 각 서드파티 컴포넌트는 별도의 라이선스를 가집니다.
- 스타일라이즈드/애니메이션 스타일의 카드 헤어에 특화되어 있으며, 사실적인 헤어 스트랜드가 아닙니다. 학습 및 공개된 이미지 모델에 사용된 스타일라이즈드 렌더링 이미지 풀은 공개되지 않아, 자체 재학습 시 동일한 모델을 복원할 수 없습니다.
- 정확도 및 속도 수치는 저자가 보고한 값이며, 생성된 결과를 직접 확인하지 않았으므로 실제 시각적 품질에 대한 평가는 하지 않습니다.
열기 · 코드 · Hugging Face 논문 페이지