Les cheveux stylisés dans les jeux et les avatars sont composés de « cartes de cheveux » (hair cards, des bandes de polygones placées par les artistes) assemblées et animées par des chaînes d'os à ressorts. HairDeck prend en entrée une image de personnage et génère directement ces cartes de cheveux ainsi que les chaînes d'os à ressorts qui les pilotent : chaque carte de cheveux est encodée sous forme de token, débruitée collectivement par un Transformer à diffusion d'ensemble, puis un second modèle de diffusion génère les chaînes d'os et effectue le skinning. La sortie conserve les cartes de cheveux indépendantes et les UV par carte, permettant l'exportation au format GLB, ou l'application sur un modèle de corps fourni pour exporter un avatar VRM.
J'aime 17 · Étoiles du code 14
Raison
- Les auteurs affirment une réduction de la distance de chamfrein de 44% et une réduction de plus de la moitié de l'erreur d'orientation des cartes de cheveux sur l'ensemble de test propre de CHARM, avec une vitesse 33 fois supérieure ; la génération à partir d'une seule image est également meilleure que CHARM, les pipelines de génération d'images en 3D et les méthodes basées sur les mèches de cheveux.
- Le code et les quatre points de contrôle (DiT conditionné par l'image, VAE de cartes de cheveux, DiT de chaînes d'os, DiT conditionné par nuage de points) sont publiés, sous licence Apache-2.0 pour le code et les poids, avec une démonstration en ligne sur Hugging Face.
- Les produits s'intègrent directement en aval : maillages GLB, avatars VRM et vidéos de prévisualisation de rotation de tête, sans nécessiter de décomposer manuellement les maillages fusionnés en cartes de cheveux.
Utilisation
- Expérience la plus rapide : Espace Hugging Face hyz317/HairDeck.
- En local : Linux x86-64, Python 3.12, un GPU NVIDIA (testé par les auteurs avec 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.
- Poids : acceptez d'abord les licences de facebook/sam3 et facebook/dinov3-vitl16-pretrain-lvd1689m sur Hugging Face et exécutez hf auth login, définissez HAIRDECK_ROOT puis lancez python scripts/setup/download_weights.py (téléchargera également Blender 4.2 LTS et le plugin VRM).
- Génération : python scripts/image_to_hair.py character.png --out results/my_character --n 4 (1–4 variantes, --no-chains pour ne générer que les cartes de cheveux) ; exportation : python -m hairdeck.vrm.export results/my_character/character 0 ; vous pouvez également lancer python demo/app.py pour démarrer une interface web locale.
Risques
- Nombreuses dépendances : SAM 3 et DINOv3 sont des modèles à accès restreint, nécessitant une connexion à Hugging Face et l'acceptation des licences ; Blender + le plugin VRM et ffmpeg sont également requis, chaque composant tiers ayant ses propres licences.
- Conçu pour les cheveux stylisés / de type anime sur cartes, et non pour les mèches réalistes ; le pool d'images de rendu stylisées utilisé pour entraîner le modèle d'image de la version publiée n'a pas été publié, il est donc impossible de reproduire le même modèle en réentraînant soi-même.
- Les chiffres de précision et de vitesse sont rapportés par les auteurs ; sans avoir vu les résultats générés, aucune évaluation de l'apparence réelle n'est fournie.