Живой документ планирования: сюда сходятся планы на развитие, актуальные задачи и проработка крупных направлений. Срез-статус архитектуры — docs/demo.md (дорожная карта там — историческая, актуальный план здесь).
Дата ревизии: 2026-09-06.
| # | Задача | Статус |
|---|---|---|
| 1 | Срез «меньше ошибок»: реестры ID, pre-commit, разрезание LocationScene, фикстуры, fail-fast waitFor | ✅ сделано (c379f20, 16b59d8, 39c6349) |
| 2 | AI-генерация текстур и спрайтов (работа B, ниже) | B0+B1 ✅ (PoC); B2/B3 отложены — RD API или ручной арт |
| 3 | AI-генерация аудио (работа A, ниже) | 📋 спланировано, отложено |
| 4 | Акт 2: новые локации/сюжет по docs/world.md |
очередь после акта 1+AI-ассетов |
| 5 | Замена сгенерированных плейсхолдеров арта на AI/ручной арт | в составе работы B |
Приоритет между работами A и B: B (изображения) выше — визуальный стиль блокирует восприятие акта 2; аудио сейчас закрывается процедурным генератором (tools/audio/gen.mjs) приемлемо.
tools/pixelart/palette.mjs), размеры спрайтов по docs/art-style.md, pixel-perfect. Любая AI-генерация — только как сырьё с обязательной пост-обработкой: даунскейл nearest, квантизация в палитру, проверка чек-листом арт-библии. AI-вывод не попадает в assets/ напрямую.tools/audio/gen.mjs). AI-вывод приводится к нему (ffmpeg: sample rate, моно, нормализация, обрезка тишины).npm run maps:fresh).hero_sheet.png — контракт арт-библии).| Модель | Размер | Железо | Нативная палитра | Лицензия | Комментарий |
|---|---|---|---|---|---|
| PXG-Tiny (HF: Tarul/pxg-tiny) | 483K | CPU, NumPy, 1.8 МБ | да (прямые индексы) | MIT + CC0 | 16×16, 38 классов. Идеален по железу, но узкий домен |
| PixelGPT-24×24 (github.com/unstonio/pixelgpt-24x24) | 68M | CPU, ~22 с | да, 5 цветов/спрайт, кастомная палитра на запрос | нет (не указана) | 24×24; отказов нет, домен тянет частично (см. B1). Веса в репо; датасет 20K — CC BY 4.0 |
| Pixel Forge (cochranblock) | 1.1–17M | CPU (Rust) | да, 7 встроенных палитр | Unlicense | 108 классов объектов; нет персонажей-атласов |
| Retro Diffusion SD1.5 (LostMedia, архив) | ~1B | CPU минуты/картинку | нет (пост-обработка) | Public Domain | классика пиксель-диффузии; для офлайн-пакета |
| Retro Diffusion API (RD Plus/Tile/Animation) | облако | — | да | платный API | лучший результат для тайлов/анимаций; фолбэк, если локальное не тянет |
| LPC-style (PIXEL-T2I и др.) | research | GPU | нет | research | перспективное направление для атласов 4 ракурса × walk/slash |
Вывод по классам (после B0+B1): инвентарь/декор — PXG-Tiny локально (её классы); простые объекты 24×24 — PixelGPT (но лицензии нет — только PoC); критичные интерактивы и тайлы сложных поверхностей — RD API (платный) или ручной арт; дообучение под игру не делаем. Персонажи-атласы — не решено (кандидаты: платный RD API или ручной арт поверх AI-болванок).
tools/aiart/gen.mjs # вызов модели (seed, промпт из манифеста) → tools/aiart/post.mjs # даунскейл nearest → квантизация palette.mjs → дедуп → tools/aiart/manifest.json # список ассетов: промпт, seed, размер, статус → apps/game/assets/… # только после ручного апрува (review-каталог)
Принципы: манифест-драйвен (как maps/); апрув-гейт (человек смотрит обзорный лист перед попаданием в игру); ревизия в git; проверка стиля — чек-лист docs/art-style.md + скриншот-смоук.
tools/aiart/ (post.mjs — кроп/квантизация в палитру + обзорный лист; manifest.json — вердикты). Pixel Forge отложен (нет Rust-тулчейна). Ограничение: критичные для игры ассеты (колодец, столб, рычаг, колокольчик, моты) вне 38 классов модели — для них дообучение / RD API / ручной арт.manifest-b1.json.| Класс | Что это сейчас | AI-кандидат | Железо |
|---|---|---|---|
| Окружение (ветер, пепел, вода прудов) | процедурный шум в gen.mjs | Stable Audio 3 Small-SFX (433M, CPU, 120 с) — длинные лупы; луповальность через crossfade-склейку | CPU ок |
| SFX взаимодействия (шаги, клик, удар, звон) | gen.mjs, приемлемо | Stable Audio 3 Small-SFX (тот же рантайм; seed-детерминизм для вариантов) | CPU ок (~секунды-десятки секунд на клип на 4 ядрах) |
| Музыка: фоновые лупы | gen.mjs (треки 3 областей) | Stable Audio 3 Small-Music (433M, CPU, 120 с) — короткие лупы; либо ACE-Step 1.5 2B turbo INT8 (CPU-медленно: минуты-десятки минут на трек, но офлайн-пакет) | Small-Music — да; ACE-Step — терпимо для пакета |
| Музыка: катсцены/сюжетные моменты | нет (трек + звон) | ACE-Step 1.5 — полноценные треки с настроением/структурой, стемы; MusicGen small — фолбэк для мелодических заготовок | офлайн-пакет, не hot-reload |
| Модель | Размер | VRAM/железо | Длина | Лицензия | Роль у нас |
|---|---|---|---|---|---|
| Stable Audio 3 Small-SFX / Small-Music | 433M | CPU (TFLite), ~1.9 ГБ пик | 120 с | веса: Stability Community License; код MIT | основной локальный рантайм для SFX + лупов |
| ACE-Step 1.5 | 2B (turbo INT8) | CPU (медленно), GPU <4 ГБ | 10 с–10 мин, стемы | MIT | музыка катсцен/сюжета, офлайн-пакет |
| MusicGen small (AudioCraft) | 300M | CPU ~4 ГБ RAM | ~30 с | MIT/CC-BY-NC веса | фолбэк, мелодия-условность |
| Stable Audio Open 1.0 | 1.2B | GPU ~2.5–8 ГБ | 47 с | Stability Community | зрелый, но на нашей машине безнадёжно медленный; пропускаем |
tools/aiaudio/gen.mjs # вызов модели, seed, промпт из манифеста (аналог aiart)
→ post: ffmpeg → 22050 моно 16-bit → нормализация → crossfade-луп для music/ambience
→ review-каталог → apps/game/assets/audio/{sfx,music}/*.wav
Принципы те же: манифест, апрув-гейт, seed-детерминизм, формат игры не меняется (шины master/music/sfx в движке уже готовы). Лупы проверять скриптом (стык начала/конца без щелчка).
~/.cache/rpg-ai/venv, venv-pxgpt), веса в ~/.cache/rpg-ai/; в git — манифесты и review-PNG.