# StudioGAN + Recursive Token Mapper (RTM) StyleGAN2-ADA + RTM training and evaluation pipeline used for the AFHQ-v1 (512x512) and CIFAR-10 (32x32) StyleGAN baselines in the paper. The whole [PyTorch-StudioGAN](https://github.com/POSTECH-CVLab/PyTorch-StudioGAN) codebase is vendored under `src/` (see `LICENSE-StudioGAN` and `LICENSE-NVIDIA` for the upstream licenses); ## Setup Use the same Python environment as the rest of this repository (PyTorch ≥ 2.1, CUDA ≥ 12, plus StudioGAN's extra deps below): ```bash pip install h5py kornia==0.6.5 prdc seaborn imageio scikit-learn ``` Datasets are loaded with StudioGAN's stock loader. For AFHQ-v1 set `DATA_DIR` to a folder with `train/{cat,dog,wild}` and `valid/{cat,dog,wild}` sub-directories. For CIFAR-10 set `DATA_DIR` to the standard CIFAR-10 folder. ## Train ```bash DATA_DIR=/path/to/AFHQ bash scripts/train_afhq.sh DATA_DIR=/path/to/cifar-10 bash scripts/train_cifar10.sh ``` Both scripts read RTM hyper-parameters from the YAML config (see the `STYLEGAN.use_rtm_mapper` block in each config). The headline numbers in the paper use the values shipped in those YAMLs: | Knob | AFHQ (512) | CIFAR-10 (32) | | ----------------------- | ---------- | ------------- | | `rtm_num_tokens` | 4 (a 2x2 grid) | 4 (a 2x2 grid) | | `rtm_H_cycles` | 4 | 4 | | `rtm_L_cycles` | 1 | 1 | | `rtm_H_layers` | 2 | 2 | | `rtm_L_layers` | 2 | 2 | | `rtm_hidden_size` | 256 | 256 | | `rtm_refinement_steps` | 4 | 4 | | `use_rtm_equalized` | True | True | | `rtm_lr_multiplier` | 0.01 | 0.01 | ## Evaluate Point `CKPT_DIR` at the StudioGAN-format `checkpoints//` folder produced by the training run: ```bash CKPT_DIR=runs/afhq_rtm/checkpoints/ DATA_DIR=/path/to/AFHQ bash scripts/eval_afhq.sh CKPT_DIR=runs/cifar10_rtm/checkpoints/ DATA_DIR=/path/to/cifar-10 bash scripts/eval_cifar10.sh ```