# OmniSVG-Lite — Spec > MVP-спецификация. Цель: дать пользователю веб-приложение, в котором можно > из текста или картинки получить N кандидатов SVG в одном из двух режимов > (icon / illustration), посмотреть PNG-превью и сохранить историю генераций. --- ## 1. Цели и не-цели **Цель MVP:** - Локально запускаемый Gradio UI, который ходит в LM Studio (OpenAI-compatible) и возвращает валидный SVG + PNG-превью. - Один пользователь, без авторизации, без облака. - История генераций хранится в локальной SQLite. **Не-цели (Out of Scope для MVP):** - Редактирование SVG в браузере (paint / drag). - Экспорт в Lottie / GIF / видео. - Batch-генерация (CSV промптов, генерация по расписанию). - Авторизация, multi-user, разграничение прав. - Деплой / Docker / CI. - Per-mode температура — единый слайдер на UI. - Fine-tune, RLHF, оценка качества моделей. - Поддержка моделей, отличных от LM Studio (Ollama, vLLM, OpenAI cloud) — клиент пишется под OpenAI-compatible chat completions, но другие провайдеры не тестируются. --- ## 2. Режимы генерации ### 2.1. Mode: `icon` **Назначение:** маленькие, узнаваемые, плоские или с лёгкой стилизацией иконки для UI. Допустимы монохром и 2–3 цвета. Геометрия упрощённая, без мелких деталей. **Требования к SVG:** - `viewBox="0 0 64 64"` (фиксировано, чтобы иконки были консистентны). - Геометрия привязана к пиксельной сетке (целочисленные координаты ±0.5). - Без градиентов со множеством stops, без фильтров (`feGaussianBlur` и т.п.). - Допустимы: ``, ``, ``, ``, ``, ``, ``, ``, ``, базовые ``/``. **Промпт-стиль (направление для пользователя):** "outline battery", "filled magnifying glass", "settings gear, line style". ### 2.2. Mode: `illustration` **Назначение:** полноценные сцены / объекты / паттерны. Больше деталей, больше цветов, допустимы градиенты и простые фильтры. **Требования к SVG:** - `viewBox="0 0 512 512"` (фиксировано). - Допустимы все валидные теги SVG 1.1 кроме `