{
  "run": "b1-domain",
  "date": "2026-09-06",
  "model": "PixelGPT-24×24 (github.com/unstonio/pixelgpt-24x24), 68M декодер, CPU ~22 с/спрайт",
  "license": "кода и весов НЕТ (в репо не указана) — в игру нельзя; датасет 20K — CC BY 4.0",
  "pipeline": "prompts-b1.txt (seed|имя|промпт|5 ключей палитры) -> gen_pxgpt.py (обусловливание палитрой игры) -> review-b1/*.png (24x24) -> post.mjs (кроп, nearest 16x16, квантизация palette.mjs) -> processed-b1/",
  "criterion": ">= 30% годных на доменных интерактивах, где PXG-Tiny отказывала",
  "notes": [
    "Отказов нет вообще: модель пробуется рисовать любой конкретный объект (у PXG-Tiny домен давал gate=clarify).",
    "Кастомная палитра из 5 цветов игры на запрос работает — стиль совпал на 100%.",
    "Главный фактор брака — даунскейл 24→16: колодец/рычаг/прилавок на 24×24 читаются, на 16 разваливаются.",
    "Фон часто залит непрозрачным цветом (сундуки) — кроп по альфе не спасает."
  ],
  "items": [
    { "file": "b1_bell_s1.png", "prompt": "a small bronze bell with a handle", "seed": 227, "match": "good", "note": "колокол читается чётко, бронза" },
    { "file": "b1_bell_s2.png", "prompt": "a small bronze bell with a handle", "seed": 228, "match": "good", "note": "тоже читаемый колокол" },
    { "file": "b1_chest_s1.png", "prompt": "a wooden chest with bronze trim", "seed": 237, "match": "partial", "note": "форма ок, но фон залит жёлтым" },
    { "file": "b1_chest_s2.png", "prompt": "a wooden chest with bronze trim", "seed": 238, "match": "partial", "note": "фон залит; у PXG-Tiny сундук был чище" },
    { "file": "b1_counter_s1.png", "prompt": "a wooden shop counter with goods", "seed": 231, "match": "partial", "note": "на 24×24 прилавок читается, на 16 разваливается" },
    { "file": "b1_counter_s2.png", "prompt": "a wooden shop counter with goods", "seed": 232, "match": "bad", "note": "тёмная каша" },
    { "file": "b1_door_s1.png", "prompt": "an old wooden door with iron hinges", "seed": 233, "match": "good", "note": "дверь с панелями и ручкой" },
    { "file": "b1_door_s2.png", "prompt": "an old wooden door with iron hinges", "seed": 234, "match": "good", "note": "дверь с перекладинами" },
    { "file": "b1_hearth_s1.png", "prompt": "a stone fireplace with burning fire", "seed": 229, "match": "good", "note": "камин с огнём, тёплый F0 уместен" },
    { "file": "b1_hearth_s2.png", "prompt": "a stone fireplace with burning fire", "seed": 230, "match": "partial", "note": "силуэт есть, огонь слабый" },
    { "file": "b1_lever_s1.png", "prompt": "a rusty metal lever on a stone base", "seed": 225, "match": "partial", "note": "на 24×24 рычаг на подставке, на 16 — палка" },
    { "file": "b1_lever_s2.png", "prompt": "a rusty metal lever on a stone base", "seed": 226, "match": "bad", "note": "похоже на лимон" },
    { "file": "b1_mote_s1.png", "prompt": "a glowing wisp of light", "seed": 235, "match": "good", "note": "светящийся ореол с ядром — как моты" },
    { "file": "b1_mote_s2.png", "prompt": "a glowing wisp of light", "seed": 236, "match": "partial", "note": "ядро тёмное, свечение по краю" },
    { "file": "b1_signpost_s1.png", "prompt": "a wooden signpost with a small sign board", "seed": 223, "match": "good", "note": "столб с доской-указателем" },
    { "file": "b1_signpost_s2.png", "prompt": "a wooden signpost with a small sign board", "seed": 224, "match": "good", "note": "столб с двумя досками" },
    { "file": "b1_well_s1.png", "prompt": "a stone well with a wooden roof", "seed": 221, "match": "partial", "note": "на 24×24 good (кладка, проём) — убил даунскейл 24→16" },
    { "file": "b1_well_s2.png", "prompt": "a stone well with a wooden roof", "seed": 222, "match": "bad", "note": "серая клякса" }
  ],
  "verdict": {
    "good": 8,
    "partial": 7,
    "bad": 3,
    "total": 18,
    "goodShare": "44%",
    "conclusion": "Критерий 30% выполнен; главное — отказов нет, доменные интерактивы модель рисует (PXG-Tiny отказывала). Но: качество неровное, даунскейл 24→16 губит деталь (колодец good на 24×24), фон часто залит, ровно 5 цветов на спрайт, ~22 с/спрайт на CPU. Решающее ограничение — лицензии на код/веса нет, в игру нельзя. Итог: локальные GPT-пиксель-модели домен тянут частично (PXG-Tiny — инвентарь/декор, PixelGPT — простые объекты на 24×24); для критичных интерактивов — RD API (платный) или ручной арт. Дообучение под игру решением не считается (отвергнуто)."
  }
}