HairDeck: 캐릭터 이미지 한 장으로 헤어 카드와 스프링 본 생성

ComfyUI Wikinews

HairDeck은 하나의 이미지에서 스타일화된 헤어 카드를 세트로 생성하고, 이를 애니메이트하는 스프링 본 체인을 추가한 뒤 GLB 또는 VRM 아바타로 내보냅니다.

HairDeck은 캐릭터 이미지 한 장을 스타일화된 헤어 카드, 즉 게임 캐릭터와 VTuber 아바타가 실제로 사용하는 아티스트 배치형 리본으로 변환하고, 이를 애니메이트하는 스프링 본 체인을 생성합니다. 가중치와 코드: hyz317/HairDeck 및 hyz317/HairDeck. 논문: arXiv 2610.40599. 저장소는 2026년 10월 27일과 29일에 공개되었습니다.

머리카락은 이미지-투-3D 파이프라인이 가장 자주 틀리는 3D 캐릭터의 요소입니다. 스트랜드 재구성은 렌더링 부담이 큰 사실적인 그룸을 만들어 내고, 메시 재구성은 아티스트가 다시 빗질하거나 스타일을 바꾸거나 애니메이트할 수 없는 하나로 뭉친 덩어리를 만들어 냅니다. 카드 헤어스타일은 스타일화된 제작 현장에서 실제로 출시되는 방식이며, 한 번에 리본 하나씩 손으로 제작됩니다.

HairDeck은 헤어스타일을 아티스트가 바라보는 그대로, 즉 순서가 없는 프리미티브의 집합으로 취급합니다. 각 헤어 카드는 하나의 토큰이며, 세트 확산 트랜스포머가 모든 카드를 함께 디노이즈하므로 모델이 머리카락의 순서를 결정할 필요가 없습니다. 결과물은 카드별 UV를 가진 개별 카드와, 이를 움직이게 하는 스프링 본 체인을 유지합니다.

The HairDeck pipeline

파이프라인: 헤어 카드 토큰, 이미지 또는 포인트 클라우드로 조건화된 세트 확산, 그리고 스프링 본 체인이 포함된 생성된 카드.

카드를 집합으로 다루기

스타일화된 헤어 카드를 생성한 유일한 선행 모델인 CHARM은 헤어스타일을 제어점의 하나의 긴 시퀀스로 자기회귀적으로 디코딩합니다. 그러면 시퀀스의 순서가 중요해지고, 시퀀스 초반의 실수가 나머지 머리카락 전체로 전파됩니다.

HairDeck은 이를 뒤집습니다. 카드 VAE가 각 카드를 토큰으로 인코딩하고, 세트 트랜스포머가 모든 토큰을 한 번에 살펴보며, 카드 VAE가 각 토큰을 자체 UV 좌표를 가진 지오메트리로 다시 디코딩합니다. 카드는 기본적으로 이미지에 조건화되며, 공개된 네 번째 모델을 통해 포인트 클라우드에 조건화할 수도 있습니다.

스프링 본이 머리카락과 함께 제공됩니다

지오메트리만으로는 에셋이 되지 않습니다. 게임 엔진이나 VRM 아바타에서 카드 헤어스타일이 살아 있어 보이는 것은 스프링 본이 약간의 물리로 각 카드를 당기기 때문이며, 이러한 체인은 보통 메시 작업이 끝난 뒤 손으로 만들고 웨이트 페인팅합니다.

체인 확산 모델이 카드 토큰에 조건화되어 이를 직접 생성하므로, 내보내기 결과물에는 지오메트리뿐 아니라 스키닝도 포함됩니다. 이미지 하나를 넣으면 흔들리는 헤어스타일이 나옵니다.

A poster frame from the demo video

프로젝트 데모의 한 프레임: 제공된 아바타 바디에 적용된 생성된 카드.

프로젝트 데모 비디오: 입력 이미지 하나, 생성된 네 가지 변형, VRM 머리 돌리기 미리보기.

제공되는 구성

모델역할체크포인트
Image DiT이미지에 조건화되어 카드 토큰 생성ckpt/image_model/model.safetensors
Card VAE카드 토큰의 잠재 데이터를 카드 지오메트리로 디코딩ckpt/card_vae/model.safetensors
Chain DiT카드 토큰에 조건화되어 스프링 본 체인 생성ckpt/chain_model/model.safetensors
Point-cloud DiT포인트 클라우드에 조건화되어 카드 토큰 생성ckpt/pointcloud_model/model.safetensors

이미지 경로는 Image DiT, Card VAE, Chain DiT를 실행합니다. 포인트 클라우드 모델은 포인트 클라우드 생성 및 평가 경로에서 사용됩니다. 저장소에는 정규화 통계, 표준 헤드 프레임, VRM 내보내기용 VRoid Studio 템플릿 아바타, 그리고 원본 카드 지오메트리가 포함된 100개의 테스트 케이스도 함께 제공되므로, 학습 데이터셋 없이도 평가를 재현할 수 있습니다.

추론에는 Linux x86-64, Python 3.12, NVIDIA CUDA GPU 한 대가 필요하며, PyTorch 2.8 및 CUDA 12.8에서 테스트되었습니다. 전처리 스택은 모델보다 무겁습니다. SAM 3와 DINOv3 ViT-L/16은 라이선스 동의가 필요한 게이트 다운로드이고, BiRefNet-matting이 컷아웃을 처리하며, VRM 내보내기는 VRM 애드온이 설치된 Blender 4.2 LTS를 구동하는데, 설정 스크립트가 이를 자체적으로 가져올 수 있습니다. VRM 경로는 여전히 Python과 Blender 파이프라인이며, ComfyUI 커스텀 노드가 아닙니다.

명령 하나로 1~4개의 변형을 생성하며, 카드만 필요할 때는 --no-chains로 스프링 본 모델을 생략할 수 있습니다:

python scripts/image_to_hair.py character.png --out results/my_character --n 4
python -m hairdeck.vrm.export results/my_character/character 0

논문의 수치

CHARM 자체 테스트 세트에서 HairDeck은 44% 더 낮은 Chamfer 거리와 절반 이하의 카드 방향 오류를 보고했으며, 33배 더 빠르게 실행됩니다. 단일 이미지에서는 저자들이 CHARM, 이미지-투-3D 파이프라인, 스트랜드 기반 방법을 능가한다고 보고하는데, 이는 렌더링된 캐릭터가 아니라 생성된 캐릭터를 입력으로 넣는 사람에게 중요한 비교입니다.

사용 가능 여부

  • Hugging Face의 hyz317/HairDeck: 체크포인트 4개, 지원 데이터, 테스트 케이스 100개, Apache-2.0
  • GitHub의 hyz317/HairDeck: 추론, 로컬 데모, 평가 및 학습 코드, 현재 유일하게 지원되는 경로
  • 브라우저에서 머리카락을 생성하고 VRM으로 내보내는 호스팅 Space 데모
  • 공식 ComfyUI 통합은 없습니다. 아주 최신 커뮤니티 팩인 FengLairh/ComfyUI-HairDeck은 동일한 체크포인트를 세 개의 노드(로드, 생성, 저장)로 감싸 ComfyUI 자체 Python 프로세스 안에서 실행하고 VRM 내보내기용 휴대용 Blender를 준비합니다. 이 팩은 11월 1일에 등장했으며 이곳에서는 검증되지 않았습니다

댓글

GitHub로 로그인하고 토론에 참여하세요.

댓글을 불러오는 중…
HairDeck: 캐릭터 이미지 한 장으로 헤어 카드와 스프링 본 생성 | ComfyUI Wiki