Pretrained weights for lucid.models.dit_xlarge_2.
num_classes is 1000: unlike the unconditional diffusion families
here, DiT is class-conditional, and the label embedding carries one
extra row for the null token classifier-free guidance drops to.
Notes
Reference: Peebles and Xie, ICCV 2023 (arXiv:2212.09748), Table 2
and Table 3. The reported FIDs — 2.27 at 256 and 3.04 at 512 — are
measured with classifier-free guidance at scale 1.5 over 250 DDPM
sampling steps, which DiTForImageGeneration.generate reaches
as steps=250, eta=1.0; the default eta=0.0 is DDIM's
deterministic step, matching the released pipeline's scheduler but
not the protocol behind those numbers.
The two tags differ only in the latent they were trained on — a 32-side latent for 256-pixel images and 64 for 512 — so the 512 tag needs a model built at that size, which its factory override does. Their parameter counts are identical, because the positional table that grows with the latent is a non-persistent buffer rather than a parameter and is rebuilt from the config on construction.
Examples
>>> from lucid.models.generative.dit._weights import DiTXLarge2Weights
>>> list(DiTXLarge2Weights.__members__)
['IMAGENET1K_256', 'IMAGENET1K_512', 'DEFAULT']
DEFAULT is an alias rather than a fourth entry, so a bare
pretrained=True and the tag it resolves to cannot drift apart.
>>> DiTXLarge2Weights.DEFAULT is DiTXLarge2Weights.IMAGENET1K_256
True
>>> DiTXLarge2Weights.IMAGENET1K_256.num_classes
1000