Skip to content
KelianBPublic

About

GTAvatar: Bridging Gaussian Splatting and Texture Mapping for Relightable and Editable Gaussian Avatars (Eurographics 2026)

Resources

Stars

18 stars

Watchers

4 watching

Forks

Repository files navigation

GTAvatar
Bridging Gaussian Splatting and Texture Mapping for Relightable and Editable Gaussian Avatars

Kelian Baert · Mae Younes · Francois Bourel · Marc Christie · Adnane Boukhayma

Université de Rennes | INRIA Rennes | CNRS | IRISA
Eurographics 2026

Project page | Paper | arXiv

This repository contains the official code for "GTAvatar: Bridging Gaussian Splatting and Texture Mapping for Relightable and Editable Gaussian Avatars". From a single video, we reconstruct a 3D head avatar enabling animation, relighting and texture editing, with the training efficiency, rendering speed and visual fidelity of Gaussian Splatting.

The code for our custom textured Gaussian renderer, used in this project, is available here: https://github.com/KelianB/diff-surfel-rasterization-uv-tex

⚙️ Installation

  1. Clone this repository:
git clone --recursive https://github.com/KelianB/GTAvatar.git

# or, if you already cloned non-recursively:
git submodule update --init
  1. Create the environment:
cd GTAvatar
./setup_env.sh
  1. Download FLAME geometry and texture space and move both zips to this directory. [FLAME2020.zip] [TextureSpace.zip]
    You will have to register and agree to the license terms of Max Planck Institute.
    If those download links fail, navigate manually to https://flame.is.tue.mpg.de/download.php

  2. Run script to extract and move FLAME files and pretrained model weights.

./setup_assets.sh

These instructions have been tested on Ubuntu 24.04 and Fedora 41.

Optional steps
  • If you want to use the texture space of Basel Face Model, use the tool from this repo and put the resulting texture model file at assets/flame/FLAME_albedo_from_BFM.npz. In our testing, we obtained better results with the FLAME albedo prior.

  • Some environment maps are provided for testing in assets/envmaps. To download more from polyhaven.com, run python download_hdrs.py --output_dir ./assets/envmaps


Note

GTAvatar requires at least 5 GB of GPU memory.

🎥 Data preprocessing

We support two dataset formats:

  • MonoFaceCompute [recommended]: this provides more options and has better tracking and masking. We recommend this if you want to preprocess your own data. Refer to the repository for instructions.
  • HRAvatar: all visuals in the paper, as well as comparisons with other methods, were made using the dataset preprocessing from HRAvatar.
    • Instructions for downloading the INSTA and HDTF datasets are available on their repository.
    • Make sure to set --loss_normals_supervise_weight 0 for training if you use this, or use Sapiens to estimate normals on the input videos for improved results (tested with the sapiens_1b_normal_render_people_epoch_115_torchscript.pt2 model, computing normals for every fourth image).

🔥 Demo

A few trained avatars are provided here for quick testing. Download manually or use:

gdown 1Bcoybro0LHzoD4CtutmGOfVHDQsavu_y -O default_bala_epoch_15.pt

The following command starts an interactive window that lets you interact with the avatar, apply custom textures and relight with environment maps:

python interact.py --detached default_bala_epoch_15.pt

Note

The --detached argument loads a standalone avatar from a checkpoint without requiring access to the dataset. Rendering will be faster because it uses cached FLAME parameters, removing the dependency on Mediapipe for cropping and SMIRK for predictions. This mode cannot be used for evaluation, since the input images are not included.

🔧 Usage

To optimize an avatar for 15 epochs, run:

# Reconstruct avatar
python train.py --config configs/1_default.yaml --input inputs/insta/bala.yaml --epochs 15

This will take 1-3 hours depending on GPU and video length. Once trained, you can load your avatar with any of the following scripts:

# Run evaluation
python test.py -c configs/1_default.yaml -i inputs/insta/bala.yaml --resume_epoch 15

# Render frames from a trained avatar
python render.py -c configs/1_default.yaml -i inputs/insta/bala.yaml --resume_epoch 15 --render_train --render_test --albedo --normals --relight assets/envmaps/cobblestone_street_night_1k.hdr
# To relight with preprocessed environment maps in the same format as HRAvatar:
python render.py -c configs/1_default.yaml -i inputs/insta/bala.yaml --resume_epoch 15 --relight path/to/hravatar/assets/envmaps/cobblestone_street --relight_hravatar_mode

# Open the avatar in an interactive window
python interact.py -c configs/1_default.yaml -i inputs/insta/bala.yaml --resume_epoch 15
# or, in detached mode:
python interact.py --detached path/to/checkpoint.pt

For a list of all parameters, please refer to arguments.py or run python train.py --help. Parameters can be passed either in the configuration file or as command line arguments. We provide two configurations:

  • configs/1_default.yaml: The default configuration.
  • configs/1_metrics.yaml: Small improvements to reconstruction at the cost of texture mapping quality. On average, this improves PSNR by 0.1 dB and LPIPS by 0.005 for the self-reenacment task on the INSTA dataset.

📄 Citation

If you use our code or paper in your work, please cite us as:

@article{baert2026gtavatar,
    author = {Baert, Kelian and Younes, Mae and Bourel, Francois and Christie, Marc and Boukhayma, Adnane},
    title = {GTAvatar: Bridging Gaussian Splatting and Texture Mapping for Relightable and Editable Gaussian Avatars},
    journal = {Computer Graphics Forum},
    volume = {n/a},
    number = {n/a},
    pages = {e70351},
    doi = {https://doi.org/10.1111/cgf.70351},
    url = {https://onlinelibrary.wiley.com/doi/abs/10.1111/cgf.70351},
    eprint = {https://onlinelibrary.wiley.com/doi/pdf/10.1111/cgf.70351},
}

©️ License Information

The contents of this repository are subject to multiple licenses.

  1. Third-Party Code (Max Planck Institute for Intelligent Systems)

  2. Original Code (INRIA Rennes)

    • All code in this repository, except where otherwise specified, is licensed under the Apache 2.0 License.
  3. Assets

About

GTAvatar: Bridging Gaussian Splatting and Texture Mapping for Relightable and Editable Gaussian Avatars (Eurographics 2026)

Resources

Stars

18 stars

Watchers

4 watching

Forks

Contributors

Languages