pixl
крошечный Transformer, который рисует пиксель-арт по клеточкам
pixl — компактная text-to-image модель от ocdbytes: encoder-decoder Transformer на 26.7M параметров, который рисует сцену 32×32 из четырёх спрайтов по текстовой подписи. Обучена с нуля на 1 млн сгенерированных сцен; каждый спрайт располагается в своём квадранте.
⚙️ Ключевые особенности
- 🎨 Генерирует сцену 32×32 в пиксель-арт стиле по описанию — по одному пикселю за шаг.
- 📍 Всегда четыре спрайта в сетке 2×2: подпись задаёт объект, квадрант и фон.
- ⚙️ Encoder-decoder Transformer: 4 двунаправленных блока в энкодере и 8 причинных в декодере, ширина 384.
- 💻 Всего 26.7M параметров; веса в float32 — 106.8 МБ, в bf16 — 53.4 МБ.
- 🗂 Обучен с нуля на 1 млн сгенерированных сцен из CC0-данных: 2 240 меток объектов, 40 фоновых тайлов, 10 стилей спрайтов.
- 🆕 Поддерживает KV-cache, temperature, top-k и classifier-free guidance.
💻 Пример
import torch
from pixl.model import encode_captions
from pixl.tokenizer import Tokenizer
from pixl.train import load_pretrained
model = load_pretrained()
ids = encode_captions(['a purple robed wizard at the top left, a closed treasure chest at the top right, a brown bat at the bottom left and a red potion at the bottom right on a dark dungeon floor'], Tokenizer.load(), length=model.config.caption)
pixels = model.generate(ids, temperature=0.7, top_k=32, guidance=3.0)
Подробнее
На тесте: new pair — loss 0.005, position 1.000; new sprites — loss 1.706, position 0.86.Обучение: 62 500 батчей по 32 сцены, 2 эпохи, одна 24-ГБ NVIDIA GPU, около 5 часов.
Ограничения: знает только метки из обучения, всегда 4 объекта в сетке 2×2, фиксированные 32×32 и палитра 255 цветов.
Новые спрайты даются тяжело: loss 1.7 против 0.005 на знакомых спрайтах.








Комментарии