Views
No views yet
| file | model | params | training |
|---|---|---|---|
sprite-gpt-text64.pt | text-conditioned 64px (CLIP ViT-B/32 + cross-attention) | 61.9M | 120k steps @ bs128 on 24,134 emoji+sprites |
sprite-gpt-cond64.pt | class-conditional 64px, 31 classes | 55.8M | 95k steps @ bs128 on 24,134 emoji+sprites |
sprite-gpt-emoji32.pt | unconditional 32px emoji | 29.1M | 60k steps @ bs256 on 8,504 emoji |

x_t = (1-t)·x0 + t·ε, predict v = ε − x0, logit-normal timestep
sampling). Weights are fp32 EMA (decay 0.9995). Sampling: 50-step Euler ODE;
the conditional model uses classifier-free guidance (null class = index 31,
condition dropout 10% at train time; guidance 3 works well).
1git clone https://github.com/gmmeyer/sprite-diffusion && cd sprite-diffusion && uv sync
2uv run python -m spritegpt.sample --ckpt sprite-gpt-text64.pt \
3 --prompt "a blue ghost sprite" --guidance 5 --out ghost.pngsample.py accepts these exported files as well as training checkpoints.)1# git clone https://github.com/gmmeyer/sprite-diffusion && cd sprite-diffusion && uv sync
2import torch
3from spritegpt.unet import UNet
4from spritegpt.flow import sample
5from spritegpt.utils import save_image_grid
6
7ck = torch.load("sprite-gpt-cond64.pt", map_location="cuda", weights_only=False)
8cfg = ck["config"]
9model = UNet(
10 img_size=cfg["img_size"],
11 base=cfg["base"],
12 ch_mult=tuple(int(c) for c in cfg["ch_mult"].split(",")),
13 num_res=cfg["num_res"],
14 attn_res=tuple(int(r) for r in cfg["attn_res"].split(",")),
15 num_classes=cfg["num_classes"],
16).cuda()
17model.load_state_dict(ck["ema_state_dict"])
18model.eval()
19
20y = torch.full((16,), 24, device="cuda", dtype=torch.long) # sprite/dcss-mon
21with torch.autocast("cuda", dtype=torch.bfloat16):
22 imgs = sample(model, 16, 64, steps=50, y=y, guidance=3.0,
23 num_classes=cfg["num_classes"], device="cuda")
24save_image_grid(imgs.float(), "monsters.png", nrow=4)emoji/activities, emoji/animals-nature, emoji/component, emoji/extras-openmoji, emoji/extras-unicode, emoji/flags, emoji/food-drink, emoji/objects, emoji/people-body, emoji/smileys-emotion, emoji/symbols, emoji/travel-places, emoji/unknown, sprite/dawnlike, sprite/dcss-dungeon, sprite/dcss-effect, sprite/dcss-item, sprite/dcss-misc, sprite/dcss-mon, sprite/dcss-player, sprite/kenney-1bit, sprite/kenney-caves, sprite/kenney-characters, sprite/kenney-micro-roguelike, sprite/kenney-modern-city, sprite/kenney-pixel-platformer, sprite/kenney-pixel-shmup, sprite/kenney-rpg, sprite/kenney-tiny-battle, sprite/kenney-tiny-dungeon, sprite/kenney-tiny-townsprite/kenney-characters is trained on paper-doll layers (bodies,
clothing, hats as separate sprites), so it generates those parts rather
than assembled characters, and retains some flat-green artifacts from a
data-contamination issue fixed partway through training (see repo history).