--- pipeline_tag: text-to-image --- # SphereAR: Hyperspherical Latents Improve Continuous-Token Autoregressive Generation This repository contains the official PyTorch implementation of the paper [Hyperspherical Latents Improve Continuous-Token Autoregressive Generation](https://huggingface.co/papers/2509.24335).

## Introduction

SphereAR is a simple yet effective approach to continuous-token autoregressive (AR) image generation. It makes AR scale-invariant by constraining all AR inputs and outputs---**including after CFG**---to lie on a fixed-radius hypersphere (constant $\ell_2$ norm) via hyperspherical VAEs. This theoretical insight shows that the hyperspherical constraint removes the scale component, which is the primary cause of variance collapse, thereby stabilizing AR decoding. The model is a **pure next-token** AR generator with **raster** order, matching standard language AR modeling. On ImageNet 256×256, SphereAR-H (943M) achieves a state-of-the-art FID of **1.34** among AR image generators. Even at smaller scales, SphereAR-L (479M) reaches FID 1.54 and SphereAR-B (208M) reaches 1.92, matching or surpassing much larger baselines. For more details on the implementation, environment setup, and advanced usage, please refer to the [official GitHub repository](https://github.com/guolinke/SphereAR). ## Model Checkpoints Pre-trained model checkpoints are available on Hugging Face: | Name | params | FID (256x256) | weight | | :--------- | :----: | :-----------: | :------------------------------------------------------------------------ | | S-VAE | 75M | - | [vae.pt](https://huggingface.co/guolinke/SphereAR/blob/main/vae.pt) | | SphereAR-B | 208M | 1.92 | [SphereAR_B.pt](https://huggingface.co/guolinke/SphereAR/blob/main/SphereAR_B.pt) | | SphereAR-L | 479M | 1.54 | [SphereAR_L.pt](https://huggingface.co/guolinke/SphereAR/blob/main/SphereAR_L.pt) | | SphereAR-H | 943M | 1.34 | [SphereAR_H.pt](https://huggingface.co/guolinke/SphereAR/blob/main/SphereAR_H.pt) | ## Sample Usage: Class-conditional Image Generation To sample 50,000 images using the `SphereAR-H` checkpoint for evaluation, you can use the following command adapted from the official repository. This requires a distributed setup (`torchrun`). ```shell # First, download the SphereAR-H checkpoint (SphereAR_H.pt) and the S-VAE checkpoint (vae.pt) # from the links in the "Model Checkpoints" table above. ckpt=your_path_to/SphereAR_H.pt # Path to your downloaded SphereAR_H.pt checkpoint result_path=your_result_directory # Directory to save generated images torchrun --nnodes=1 --nproc_per_node=8 --node_rank=0 \ sample_ddp.py --model SphereAR-H --ckpt $ckpt --cfg-scale 4.5 \ --sample-dir $result_path --per-proc-batch-size 256 --to-npz ``` *Note: The `sample_ddp.py` script and its dependencies can be found in the [official GitHub repository](https://github.com/guolinke/SphereAR). Ensure your environment is set up according to their instructions, including PyTorch and FlashAttention.* ## Citation If you find our work useful, please consider citing the paper: ```bibtex @article{ke2025hyperspherical, title={Hyperspherical Latents Improve Continuous-Token Autoregressive Generation}, author={Guolin Ke and Hui Xue}, journal={arXiv preprint arXiv:2509.24335}, year={2025} } ```