Image Tokenizers Should Be Trained Between Images
Organizations: University of Tübingen
Abstract
Latent diffusion models generate images as codes of an image tokenizer, whose decoder turns them into the pixel image. Recent tokenizers improve how well these codes reconstruct an image and how easily a generator learns them. Yet a generator does not reproduce the codes of training images, and when a generated code lands outside what the decoder expects, the decoded image contains imperfections. Current methods make the decoder more robust to generated codes by adding noise during training. However, generated codes lie between the training codes and resemble their mixture more than one of them plus noise. To improve generated images, decoders should therefore be trained on codes in the space between training samples. We propose InterpTok, which fine-tunes MAETok to decode mixtures of image codes into natural images. Since no target image exists between two training samples, a discriminator judges whether each decoded mixture looks as natural as its two sources. A mixing ratio loss requires the decoded mixture to keep the mixing ratio of the two codes. Together, they prevent collapse to a trivial solution and yield a sharp and natural composition of both images. InterpTok keeps MAETok's reconstruction quality and improves interpolation quality more than threefold, the best of all tokenizers in a recent benchmark. Beyond interpolation, InterpTok improves the generation FID of a matched diffusion transformer from 11.61 to 8.48 without guidance, and even reaches 8.11 at an eighth of the sampling steps, where the generator on MAETok's codes worsens. The generator trained on our tokenizer also reaches the final result of the one trained on MAETok at half the training steps. Our findings show that the space between image codes can and should be explicitly supervised rather than ignored.
Figures & tables
| Tokenizer | Latent dims | rFID | iFID |
|---|---|---|---|
| DINOv2 encoder | |||
| DM-VAE | 8,192 | 0.683 | 8.29 |
| RAE | 196,608 | 0.57 † | 7.68 † |
| Trained encoder | |||
| SD-VAE | 4,096 | 0.62 † | 59.91 † |
| EQ-VAE | 4,096 | 0.82 † | 47.51 † |
| gFID | 250 | 64 | 32 | 16 |
|---|---|---|---|---|
| SiT-B | ||||
| MAETok | 11.61 | 12.33 | 13.88 | 20.56 |
| w/ our decoder | 8.56 | 8.99 | 9.92 | 15.33 |
| InterpTok | 8.48 | 8.09 | 8.11 | 12.48 |
| SiT-XL released with MAETok | ||||
| MAETok | 2.46 | 2.78 | 3.46 | 7.52 |
| Params (M) | Steps | iFID | rFID | probe | gFID | |
|---|---|---|---|---|---|---|
| MAETok | 174 | – | 14.42 | 0.582 | 73.0 | 11.61 |
| encoder and decoder trained | ||||||
| w/ interpolation | 174 | 41k | 5.44 | 0.556 | 63.5 | 18.90 |
| w/ reg. | 217 | 41k | 12.86 | 0.588 | 77.0 | 21.15 |
| InterpTok | 217 | 41k | 4.30 | 0.597 | 77.9 | 8.48 |
| w/o DINOv3 | 217 | 41k | 4.53 | 0.544 | 65.8 | 17.58 |
Appendix figures & tables47 assets
Supplementary material from the paper’s appendix.
Appendix
| Tokenizer | generator steps | gFID |
|---|---|---|
| MAETok | 100k | 24.07 |
| InterpTok | 100k | 16.26 |
| MAETok | 200k | 15.88 |
| InterpTok | 200k | 11.27 |
| MAETok | 300k | 13.04 |
| InterpTok | 300k | 9.54 |
| Tokenizer | SigLIP2 | DINOv2 | MAE | Inception pool | ADM FID |
|---|---|---|---|---|---|
| MAETok | 63.72 | 344.8 | 0.825 | 13.20 | 11.61 |
| InterpTok (41k) | 59.01 | 309.6 | 0.775 | 10.27 | 8.48 |
| InterpTok (82k) | 60.73 | 323.1 | 0.851 | 11.69 | 9.57 |
| the released MAETok SiT-XL ( Chen et al., 2025a ) | |
|---|---|
| Decoder | FID |
| MAETok | 2.46 |
| our decoder | 2.26 |
| Tokenizer | Reconstruction | Midpoint |
|---|---|---|
| SD-VAE | 0.801 | 135.89 |
| MAETok | 0.863 | 85.21 |
| w/ interpolation | 0.865 | 9.23 |
| InterpTok | 1.013 | 13.61 |
| Tokenizer | SigLIP2 | MAE | DINOv2 |
|---|---|---|---|
| MAETok | 85.8 | 2.03 | 953 |
| InterpTok (41k) | 34.6 | 0.52 | 315 |
| InterpTok (82k) | 36.4 | 0.70 | 311 |
| ImageNet | MS-COCO | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Tokenizer | Params (M) | Tokens | rFID | PSNR | SSIM | LPIPS | rFID | PSNR | SSIM | LPIPS |
| SD-VAE | 84 † | 1024 | 0.62 † | 25.00 | 0.805 | 0.0630 | 0.801 | 24.76 | 0.817 | 0.0609 |
| MAETok | 174 | 128 | 0.582 | 23.55 | 0.760 | 0.0917 | 0.863 | 23.25 | 0.770 | 0.0913 |
| InterpTok | 217 | 128 | 0.597 | 24.02 | 0.775 | 0.0819 | 1.013 | 23.65 | 0.784 | 0.0817 |
| ImageNet | MS-COCO | |||||||||
| 1 code | adjacent codes, same class | codes of random classes | 2, random | |||||||
| FID | ||||||||||
| MAETok | 0.57 | 35.12 | 72.80 | 121.02 | 181.21 | 87.49 | 143.46 | 186.22 | 238.52 | 85.21 |
| InterpTok | 0.57 | 3.79 | 6.71 | 18.59 | 76.23 | 13.78 | 40.81 | 124.85 | 219.07 | 13.61 |
| Inception Score | ||||||||||
| near pairs | random pairs | |||||||
|---|---|---|---|---|---|---|---|---|
| Path | PPL | share | ordered | PPL | share | ordered | ||
| SD-VAE | 0.796 | 0.174 | 0.739 | 61.4% | 0.899 | 0.186 | 0.722 | 58.4% |
| MAETok | 0.665 | 0.167 | 0.623 | 99.8% | 0.799 | 0.172 | 0.636 | 99.4% |
| InterpTok | 0.779 | 0.197 | 0.603 | 99.1% | 1.056 | 0.203 | 0.628 | 94.8% |
| Path | CMMD |
|---|---|
| InterpTok | |
| line in the latent space | 171.3 |
| autoencoder crossfade | 462.4 |
| MAETok | |
| line in the latent space | 508.5 |
| autoencoder crossfade | 493.4 |
| Position | MAETok | InterpTok (41k) |
|---|---|---|
| 10.17 | 5.35 | |
| 6.12 | 5.62 | |
| 4.76 | 5.25 |
| gFID | 250 | 64 | 32 | 16 |
|---|---|---|---|---|
| SiT-B on MAETok’s codes, one generator | ||||
| MAETok | 11.61 | 12.33 | 13.88 | 20.56 |
| our decoder | 8.56 | 8.99 | 9.92 | 15.33 |
| MAETok’s losses w/ interp. discriminator | 9.71 | 10.16 | 11.26 | 16.92 |
| MAETok’s losses | 10.80 | 11.50 | 13.05 | 20.02 |
| SiT-B on each tokenizer’s own codes | ||||
| Sampling steps | 250 | 32 | 16 | 8 |
|---|---|---|---|---|
| a. distance to the average code of its own class, relative to 250 steps | ||||
| MAETok | 1 | 0.97 | 0.93 | 0.85 |
| InterpTok | 1 | 0.96 | 0.91 | 0.82 |
| without interp. | 1 | 0.96 | 0.91 | 0.82 |
| without reg. | 1 | 0.96 | 0.91 | 0.83 |
| MAETok, stochastic | 1 | 0.98 | 0.96 | 0.96 |
| Sampling steps | 250 | 32 | 16 | 8 |
|---|---|---|---|---|
| a. within-class spread, relative to 250 steps | ||||
| MAETok | 1 | 0.96 | 0.92 | 0.84 |
| InterpTok | 1 | 0.95 | 0.90 | 0.79 |
| without interp. | 1 | 0.95 | 0.89 | 0.78 |
| without reg. | 1 | 0.96 | 0.91 | 0.81 |
| b. share of the ten nearest validation codes that carry the code’s label, percent | ||||
| MAETok | InterpTok | without interp. | without reg. | |
| Linear-probe accuracy, percent | 73.0 | 77.9 | 77.0 | 63.5 |
| Nearest neighbor of the same class, percent | 30 | 61 | 65 | 17 |
| Nearest-neighbor distance, relative | 1 | 1.6 | 1.6 | 0.9 |
| Own-class codes among the 100 nearest to a class average, of at most 50 | 17 | 37 | 39 | 5 |
| Nearest class average is its own, percent | 55 | 73 | 73 | 43 |
| in the unnormalized latent space of the decoder | ||||
| Class acc., percent | Sim. | |||||||
|---|---|---|---|---|---|---|---|---|
| Sampling steps | 250 | 32 | 16 | 8 | 250 | 32 | 16 | 8 |
| MAETok | 60 | 60 | 61 | 58 | 0.42 | 0.43 | 0.43 | 0.45 |
| our decoder | 62 | 64 | 66 | 71 | 0.42 | 0.43 | 0.44 | 0.47 |
| InterpTok | 61 | 67 | 73 | 83 | 0.43 | 0.45 | 0.48 | 0.56 |
| gFID | seed 0 | seed 1 |
|---|---|---|
| MAETok | 11.51 | 11.38 |
| InterpTok | 8.51 | 8.28 |
| Decoder | 250 | 64 | 32 | 16 | FD-DINOv2 | CMMD | 2nd draw |
|---|---|---|---|---|---|---|---|
| MAETok | 2.44 | 2.76 | 3.44 | 7.49 | 125.6 | 0.313 | 2.49 |
| 41,000 fine-tuning steps | |||||||
| MAETok’s losses | 2.61 | 2.88 | 3.55 | 7.81 | 108.2 | 0.226 | 2.63 |
| InterpTok | 2.24 | 2.39 | 2.79 | 5.80 | 88.1 | 0.171 | 2.24 |
| 13,000 fine-tuning steps | |||||||
| MAETok’s losses w/ noise augmentation | 2.70 | – | – | – | 124.4 | 0.258 | – |
| Tokenizer | PSNR | SSIM | LPIPS |
|---|---|---|---|
| InterpTok | 24.02 | 0.775 | 0.0819 |
| MAETok | 23.55 | 0.760 | 0.0917 |
| Smaller code | 19.31 | 0.615 | 0.1735 |
| Configuration | Value |
|---|---|
| Data and pairing | |
| Training images | ImageNet-1k train at in |
| Pair sampling | each epoch, every image is paired with its most similar unpaired image among its nearest neighbors, over epochs 1–10 |
| sampler | Beta(2,2), one per mixture |
| Tokenizer and batches | |
| Base model | MAETok, encoder and decoder trainable |
| Configuration | Value |
|---|---|
| Discriminator | |
| Discriminator backbone | frozen DINO ViT-S/16 at 224 px, features from 5 layers, 196 tokens per layer |
| Discriminator heads | the interpolation discriminator’s head, which scores the decoded mixture beside one source, and the unconditional reconstruction discriminator’s head, both on the shared backbone |
| Discriminator parameters | 25.9M trainable, frozen backbone 21.7M |
| Adversarial schedule | the discriminator trains from step 0 and its loss reaches the tokenizer after 1,500 steps, one discriminator update per tokenizer update, adaptive weight capped at 1.0 |
| Adaptive weight | the VQGAN ratio at the decoder’s final linear layer, capped at 1.0 |
| Split | Units | Source and pairing | Evaluation target |
|---|---|---|---|
| ImageNet validation | 50,000 midpoints | val code to a sampled top-10 nearest neighbor in the train split, spherical path, , the released evaluation code at its defaults, FID against the 50,000 validation originals | iFID |
| ImageNet validation | 50,000 images | reconstruction, no pairing, the released evaluation code at its defaults for rFID and our own pixel evaluation, SSIM with a uniform window at data range 2, for the rest | rFID (Tables 1 and 11 ), PSNR, SSIM, LPIPS (Table 11 ) |
| ImageNet validation | 50,000 reference images | equal-weight barycenters of codes, same-class and cross-class, straight line | FID, sFID, precision and recall of decoded barycenters (Table 12 ) |
| ImageNet validation | 50,000 midpoints | random cross-class pairs under one seed, straight-line midpoint at , ADM evaluator against the 50,000 validation originals | FID of decoded midpoints through the fine-tune (Table 8 ) |
| ImageNet validation | 5,000 near and 5,000 random pairs | near pairs at DINOv3 cosine 0.6 to 0.8 and random pairs of different classes under one seed, the straight line decoded at nine equally spaced positions, LPIPS with AlexNet between consecutive decodes and to both source reconstructions | perceptual path length, largest-step share, midpoint distance and ordered fraction (Table 13 ) |
| MS-COCO train2017 | 50,000 images | reconstruction, no pairing | rFID, PSNR, SSIM, LPIPS (Table 11 ) |
| Quantity | reported | ours | rel. diff. | source |
|---|---|---|---|---|
| iFID, MAETok | 14.06 † | 14.42 | 2.6% | comparison table released by Xu et al. (2026) |
| iFID, DM-VAE | 8.14 † | 8.29 | 1.8% | comparison table released by Xu et al. (2026) |
| rFID, MAETok, iFID protocol | 0.58 † | 0.5819 | 0.3% | released leaderboard of Xu et al. (2026) |
| rFID, MAETok, MS-COCO | 4.87 † | 5.05 | 3.8% | Table 4 of Chen et al. (2025a) |
| Item | Value |
|---|---|
| Evaluators | |
| iFID and rFID | the released evaluation code of Xu et al. (2026) at its defaults |
| Inception features | the Inception weights of pytorch-fid and of torch-fidelity |
| Other FID comparisons | the ADM evaluator, against the validation originals for reconstruction and interpolation and the ADM ImageNet 256 reference statistics for generation |
| Pixel metrics | our own pixel evaluation, SSIM with a uniform window at data range 2, LPIPS with AlexNet |
| Encoder supervision, corpus and code dimensions | |
| Other pixel conventions | MAETok | InterpTok | SD-VAE |
|---|---|---|---|
| SSIM, Gaussian window at data range 1, ImageNet | 0.644 | 0.670 | 0.708 |
| SSIM, Gaussian window at data range 1, MS-COCO train2017 | 0.656 | 0.682 | 0.724 |
Image Tokenization
Image tokenization converts images into compact discrete or continuous visual units for efficient generation, compression, and multimodal reasoning.
See all 57 papers