1git clone https://github.com/GengzeZhou/SAR.git
2conda create -n sar python=3.10 -y
3conda activate sar
4pip install -r requirements.txt
5# optional
6pip install flash-attn xformers
1import torch
2from models import build_vae_var
3from torchvision.utils import save_image
4
5device = "cuda" if torch.cuda.is_available() else "cpu"
6
7# Build VAE + VAR backbone (example: depth=16)
8vae, model = build_vae_var(
9 V=8912, Cvae=32, device=device,
10 num_classes=1000, depth=16,
11 vae_ckpt="pretrained/FlexVAE.pth",
12)
13
14# Load SAR checkpoint
15ckpt = torch.load("pretrained/SARd16-epo179.pth", map_location="cpu")
16if "trainer" in ckpt:
17 ckpt = ckpt["trainer"]["var_wo_ddp"]
18model.load_state_dict(ckpt, strict=False)
19model.eval()
20
21with torch.no_grad():
22 labels = torch.tensor([207, 88, 360, 387], device=device) # example ImageNet classes
23 images = model.autoregressive_infer_cfg(
24 vqvae=vae,
25 B=4,
26 label_B=labels,
27 cfg=2.5,
28 top_k=900,
29 top_p=0.95,
30 )
31
32save_image(images, "samples.png", normalize=True, value_range=(-1, 1), nrow=4)
1bash scripts/train_SAR_d16.sh
2bash scripts/train_SAR_d20.sh
3bash scripts/train_SAR_d24.sh
1bash scripts/setup_eval.sh
2bash scripts/eval_SAR_d16.sh
3bash scripts/eval_SAR_d20.sh
4bash scripts/eval_SAR_d24.sh
1@article{zhou2025rethinking,
2 title={Rethinking Training Dynamics in Scale-wise Autoregressive Generation},
3 author={Zhou, Gengze and Ge, Chongjian and Tan, Hao and Liu, Feng and Hong, Yicong},
4 journal={arXiv preprint arXiv:2512.06421},
5 year={2025}
6}