DiffLocks: Generating 3D Hair from a Single Image using Diffusion Models
Radu Alexandru Rosu, Keyu Wu, Yao Feng, Youyi Zheng, Michael J. Black
TL;DR
DiffLocks tackles the challenge of generating realistic 3D hair from a single image by constructing the largest synthetic 3D hair dataset to date and training an image-conditioned diffusion model that decodes directly into 3D hair strands. It replaces prior low-dimensional scalp representations with a dense scalp texture of latent strand codes and a probabilistic density map, enabling detailed curls and balding patterns without post-processing. The approach leverages HDiT diffusion with DINOv2 image conditioning and cross-attention, producing high-fidelity strands that transfer to real imagery and real-time engines like Unreal through an Alembic export. Across extensive qualitative and quantitative evaluations, DiffLocks demonstrates state-of-the-art performance, particularly for curly and afro-like hairstyles, while maintaining fast, integration-friendly runtime performance.
Abstract
We address the task of generating 3D hair geometry from a single image, which is challenging due to the diversity of hairstyles and the lack of paired image-to-3D hair data. Previous methods are primarily trained on synthetic data and cope with the limited amount of such data by using low-dimensional intermediate representations, such as guide strands and scalp-level embeddings, that require post-processing to decode, upsample, and add realism. These approaches fail to reconstruct detailed hair, struggle with curly hair, or are limited to handling only a few hairstyles. To overcome these limitations, we propose DiffLocks, a novel framework that enables detailed reconstruction of a wide variety of hairstyles directly from a single image. First, we address the lack of 3D hair data by automating the creation of the largest synthetic hair dataset to date, containing 40K hairstyles. Second, we leverage the synthetic hair dataset to learn an image-conditioned diffusion-transfomer model that generates accurate 3D strands from a single frontal image. By using a pretrained image backbone, our method generalizes to in-the-wild images despite being trained only on synthetic data. Our diffusion model predicts a scalp texture map in which any point in the map contains the latent code for an individual hair strand. These codes are directly decoded to 3D strands without post-processing techniques. Representing individual strands, instead of guide strands, enables the transformer to model the detailed spatial structure of complex hairstyles. With this, DiffLocks can recover highly curled hair, like afro hairstyles, from a single image for the first time. Data and code is available at https://radualexandru.github.io/difflocks/
