Программа для генерации арта к текстовой игре, потому что ComfyUI только для технарей

Мы с женой делаем текстовую игру по её фэнтези-вселенной. Совместное хобби: она пишет, я программирую. Рисовать не умеем оба, а картинки в игре нужны — без них текст сухой.

Программа для генерации арта к текстовой игре, потому что ComfyUI только для технарей

Как всё началось

Первый порыв — Midjourney, DALL-E и прочие облака. Быстро, красиво, дорого. Для пет-проекта, который вряд ли принесёт деньги, тратить по $10–30 в месяц на генерацию сотен картинок — сомнительная идея.

Пошёл в Stable Diffusion. Поставил Automatic1111, сгенерировал — получил что-то непонятное. Начал разбираться: модели, LoRA, самплеры, шаги, CFG, промпты из тегов. Пошло-поехало: masterpiece, best quality, 1girl, fantasy, detailed background, dramatic lighting... — и это только начало. Одна картинка занимает 20–30 минут подбора параметров.

Для игры нужны десятки артов. Для одного локации — фон, NPC, предметы. Перемножаем — получаем часы ковыряния в тегах вместо собственно разработки.

Первая попытка автоматизации

В админке игры (Symfony) я сделал два провайдера: один общается с локальной LLM и генерирует промпт на основе лора игры, второй отправляет это всё в SD с нужными настройками модели. Стало быстрее. Но захотел другой стиль, другую модель — и всё, переписывай. Захотел третье — снова переписывай.

Тут я, как человек ленивый, описал проблему ИИ. После брейншторма решили: вынести код в отдельный инструмент. Так появилась SD Studio.

Что получилось

Десктоп-приложение, которое связывает твой локальный Stable Diffusion с локальной LLM (Ollama, llama.cpp, LM Studio). Всё работает на твоём железе, без облака.

Пишешь текстом — получаешь арт

Выбираешь пресет — это готовый набор: модель, LoRA, параметры генерации, базовый промпт. Пишешь описание обычным языком: «девушка-маг стоит у входа в подземелье, факелы, мрачная атмосфера». LLM превращает это в правильный SD-промпт с тегами и негативным промптом. Жмёшь Generate — получаешь картинку в стиле пресета (аниме, реалистичное, кино — смотря какой выбрал).

Программа для генерации арта к текстовой игре, потому что ComfyUI только для технарей

Не знаешь, какой пресет взять? Есть кнопка рекомендации — LLM знает все твои пресеты и подскажет.

Пайплайны — комбинируй модели

Это то, ради чего я вообще начал это делать. Проблема знакомая: одна модель отлично рисует людей и кожу, но фантазии ноль. Другая — Pony, например — придумывает шикарные сцены, но выдаёт анимешный результат. В SD Studio можно объединить их в пайплайн: первый пресет генерирует основу, второй дорабатывает в нужном стиле. На выходе — богатая на детали и красивая картинка.

Удаление объектов одной маской

Понадобилось убрать лишний элемент с арта. Раньше: открываешь Photoshop, аккуратно вырезаешь, закрашиваешь. В SD Studio рисуешь маску поверх объекта — программа сама отправляет в LLM, та анализирует контекст и подбирает фон, затем делает inpaint. Не всегда идеально, но в 7 из 10 случаев — достаточно.

Похожим образом работает замена деталей или объектов.

Программа для генерации арта к текстовой игре, потому что ComfyUI только для технарей

Мульти-сценовая генерация

Это была моя главная боль. Нужно изображение с тремя персонажами: девушка-маг, воин и медведь. Stable Diffusion выдаёт что угодно: женщина-медведь, три медведя, медведь с топором. SD пытается впихнуть всё описание в одну сцену.

В SD Studio Multi-Scene работает иначе: описываешь сцену, LLM выделяет фон и каждого персонажа отдельно. Дальше генерируется фон, потом каждый персонаж по отдельности. Rembg вырезает персонажа и ставит на фон. Финальный проход пресетом — чтобы не было видно склейки. Результат не идеальный, но это единственный рабочий способ получить нескольких персонажей на одной картинке.

Сессии

В процессе работы набрал: загрузил фото, перерисовал, удалил лишнее, перегенерировал — и случайно затёр хороший вариант. Без отката. Поэтому добавил сессии: все шаги сохраняются, можно вернуться к любому и продолжить. Для генерации контента игры — просто необходимо.

Почему не ComfyUI

ComfyUI мощный — но это конструктор для тех, кто готов собирать графы из нод. Чтобы удалить объект, нужно собрать цепочку нод с маской, InpaintModel, настроить denoising. Для мульти-сцены — ещё сложнее. Я пытался. Потратил вечер, собрал рабочий граф, на следующий день забыл, что куда подключено.

SD Studio — про другое: описал задачу, нажал кнопку, получил результат. Меньше контроля, но 90% задач покрывается без графов.

Технически

Go + Wails v2 на бэкенде, Vue 3 на фронтенде. Не Electron — бинарник компактный, запускается быстро. Работает на macOS, Linux, Windows. LLM и SD крутятся на игровом ПК с Windows, я подключаюсь с макбука и Linux — не проблема.

Open source, AGPL v3.

11