Стилизованные волосы в играх и аватарах состоят из отдельных «карточек волос» (hair cards — полосок полигонов, расставленных художниками) и управляются пружинными скелетами. HairDeck принимает на вход изображение персонажа и напрямую генерирует эти карточки и управляющие ими цепочки пружинных костей: каждая карточка кодируется в токен, все токены совместно обрабатываются коллективным диффузионным трансформером, а вторая диффузионная модель генерирует цепочки костей и выполняет скиннинг. На выходе сохраняются отдельные карточки и UV-развертки для каждой из них; результат можно экспортировать в GLB или наложить на встроенную модель тела для экспорта аватара в формате VRM.
Лайки 17 · Звёзды в коде 14
Обоснование
- Авторы утверждают, что на собственном тестовом наборе CHARM расстояние до углов (chamfer distance) снизилось на 44%, ошибка ориентации прядей волос уменьшилась более чем вдвое, а скорость работы увеличилась в 33 раз; при генерации из одного изображения метод также превосходит CHARM, пайплайны генерации 3D из изображений и методы, основанные на отдельных волосках.
- Код и четыре чекпоинта (DiT с условием по изображению, VAE для прядей волос, DiT для скелетных цепочек и DiT с условием по облаку точек) опубликованы; код и веса распространяются под лицензией Apache-2.0, также доступен онлайн-демо-ролик.
- Результаты можно напрямую использовать в последующих этапах: GLB-меш, аватар VRM и видео-превью с поворотом головы, без необходимости вручную разбивать объединенный меш на отдельные пряди волос.
Использование
- Самый быстрый способ попробовать: Space на Hugging Face hyz317/HairDeck.
- Локально: Linux x86-64, Python 3.12, один GPU NVIDIA (авторы тестировали с 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.
- Веса: сначала примите условия использования моделей facebook/sam3 и facebook/dinov3-vitl16-pretrain-lvd1689m на Hugging Face и выполните 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, при этом у сторонних компонентов свои лицензии.
- Метод ориентирован на стилизованные / аниме-карточки волос, а не на реалистичные отдельные волоски; пул стилизованных рендеров, использованный для обучения выпущенной версии модели, не опубликован, поэтому самостоятельно переобучить модель с теми же характеристиками не получится.
- Показатели точности и скорости приведены по данным авторов; поскольку мы не видели результатов генерации, мы не оцениваем фактическое визуальное качество.