StyleGAN3 on BreCaHAD

PythonPyTorch 2.10CUDA 13StyleGAN3uv

Train StyleGAN2 (ADA) or StyleGAN3 (Alias-Free) on the BreCaHAD breast cancer histopathology dataset. Based on NVIDIA’s StyleGAN3, patched for PyTorch 2.10 + CUDA 13.x.

TL;DR — 5 commands from clone to training:

git clone git@github.com:MykolaVaskevych/stylegan3-brecahad.git && cd stylegan3-brecahad
cd dataset  && ./scripts/setup.sh && ./scripts/extract_crops.sh
cd ../stylegan3 && ./scripts/setup.sh
./scripts/create_dataset.sh
./scripts/train_stylegan2.sh

Requirements

  • Linux (tested on Arch)
  • NVIDIA GPU with CUDA 13.x drivers (tested on RTX 4090, driver 590.48.01)
  • Python 3.10–3.12
  • uv

PyTorch 2.10 Compatibility Fixes

Three changes to NVIDIA’s original code:

  1. torch_utils/misc.pySampler.__init__() no longer accepts a positional data_source argument
  2. torch_utils/custom_ops.pycpp_extension.load() appends version suffixes to module names; use the return value instead of importlib.import_module()
  3. train.py — Adam optimizer requires betas as floats (0.0 not 0)

Training Reference

ConfigSpeedBest for
StyleGAN2 (ADA)FastestGeneral use, recommended
StyleGAN3-TSlowerSmooth animation/interpolation
StyleGAN3-RSlowestFull rotation equivariance

ADA (Adaptive Discriminator Augmentation) is critical for BreCaHAD’s ~1944 training images — prevents discriminator overfitting on small datasets.

Speed tips: --metrics=none gives ~2× speedup by skipping FID evaluation during training.

Resuming Training

uv run python train.py 
    --outdir=$HOME/training-runs 
    --cfg=stylegan2 
    --data=$HOME/datasets/brecahad-512.zip 
    --gpus=1 --batch=32 --batch-gpu=8 --gamma=8.2 
    --resume=~/training-runs/<run-dir>/network-snapshot-XXXX.pkl