Implement AI Images gallery feature in RimWorld mod, allowing users to view, delete, and manage generated images. Update UI components to include a gallery button and enhance image management functionality. Add localization strings for gallery features in English and Russian. Update AIImages.dll to reflect these changes.

This commit is contained in:
Leonid Pershin
2025-10-31 18:20:39 +03:00
parent 1b35cb6a44
commit a99fa16763
8 changed files with 799 additions and 36 deletions

222
README.md
View File

@@ -0,0 +1,222 @@
# AI Images - RimWorld Mod
Мод для RimWorld, который генерирует AI-изображения персонажей (пешек) с помощью Stable Diffusion API.
## 🌟 Возможности
### 📸 Генерация AI-изображений
- **Автоматическое описание персонажей** на основе:
- Внешности (пол, возраст, тип тела, цвет кожи)
- Прически и цвета волос
- Одежды с материалами, качеством и цветами
- Черт характера
- Генов (биотехнологии)
- Состояний здоровья
### 🎨 Гибкая настройка стилей
- **9 предустановленных художественных стилей**:
- Реалистичный (Photorealistic)
- Полуреалистичный (Semi-Realistic)
- Аниме
- Концепт-арт
- Цифровая живопись
- Масляная живопись
- Эскиз
- Cel-shaded
- Без стиля (кастомные промпты)
- **Возможность создания собственных стилей** через XML-конфигурацию
- Базовые промпты и негативные промпты
- Автоматическое добавление качественных тегов
### 📐 Размеры изображений
- **Предустановки**: квадратные, портретные, ландшафтные
- **Кастомные размеры**: полный контроль над шириной и высотой
- **Два типа генерации**: портрет или полное тело
### 🖼️ Галерея изображений
- **Отдельная галерея** для каждого персонажа
- **Просмотр всех сгенерированных изображений** в удобной сетке
- **Выбор изображений** кликом по миниатюре
- **Удаление** отдельных или всех изображений
- **Отображение даты создания** и имени файла
### ⚙️ Настройки Stable Diffusion
- **Полная интеграция с Stable Diffusion WebUI**
- Загрузка моделей, сэмплеров и планировщиков из API
- Настройка количества шагов, CFG Scale, seed
- Превью промптов с возможностью копирования
- Прогресс-бар генерации с ETA
### 🎛️ Продвинутые функции
- **Автоматическое сохранение** изображений
- **История генераций** для каждого персонажа
- **Обратная совместимость** со старыми сохранениями
- **Двуязычный интерфейс** (русский/английский)
- **Отладочные логи** для диагностики
## 🚀 Установка
### Требования
- **RimWorld** версии 1.6
- **Harmony** (автоматически подтягивается через зависимости)
- **Stable Diffusion WebUI** (локально или удаленно)
### Зависимости
Мод использует следующие зависимости (автоматически подтягиваются):
- `brrainz.harmony` - Harmony
- `rim.job.world` - RimJobWorld (необязательно, но в зависимостях)
### Шаги установки
1. Клонируйте репозиторий или скачайте релиз
2. Скопируйте папку `ai-images` в директорию `Mods` RimWorld
3. Запустите Stable Diffusion WebUI
4. В настройках RimWorld включите мод AI Images
5. В настройках мода укажите адрес API Stable Diffusion (по умолчанию `http://127.0.0.1:7860`)
## 📖 Использование
### Генерация изображений
1. **Откройте окно AI Images**:
- Нажмите на кнопку "AI Портрет" в панели действий персонажа
2. **Настройте параметры**:
- Выберите художественный стиль
- Выберите тип изображения (портрет/полное тело)
- Настройте размер изображения
- При необходимости измените другие параметры
3. **Сгенерируйте изображение**:
- Нажмите кнопку "Сгенерировать изображение"
- Дождитесь завершения генерации
- Изображение автоматически сохранится
### Просмотр галереи
1. **Откройте галерею**:
- В окне генерации нажмите кнопку "Открыть галерею"
- Откроется окно со всеми изображениями персонажа
2. **Управление изображениями**:
- Кликните по изображению для выбора
- Нажмите "Удалить выбранное" для удаления конкретного изображения
- Нажмите "Удалить всё" для очистки галереи
### Настройка стилей
Мод использует XML-конфигурацию для определения стилей. Вы можете создать свои собственные стили, редактируя файл `Defs/ArtStyleDefs.xml`.
Пример создания нового стиля:
```xml
<AIImages.ArtStyleDef>
<defName>ArtStyle_MyCustomStyle</defName>
<label>Мой Кастомный Стиль</label>
<description>Описание вашего стиля</description>
<positivePrompt>ваши ключевые слова здесь</positivePrompt>
<negativePrompt>чего избегать</negativePrompt>
<qualityTags>дополнительные теги качества</qualityTags>
<addBaseQualityTags>true</addBaseQualityTags>
<addBaseNegativePrompts>true</addBaseNegativePrompts>
<sortOrder>100</sortOrder>
</AIImages.ArtStyleDef>
```
Подробнее о конфигурации стилей в [Defs/README.md](Defs/README.md).
## 🎯 Особенности
### Умная генерация промптов
Мод автоматически анализирует персонажа и создает детальные промпты для Stable Diffusion:
- Описывает цвет кожи естественным языком
- Добавляет информацию об одежде с материалами и качествами
- Учитывает черты характера персонажа
- Включает данные о генах из Biotech DLC
- Адаптирует промпт в зависимости от типа изображения
### Оптимизация
- Асинхронная генерация без блокировки игры
- Возможность отмены генерации
- Прогресс-бар с реальным временем выполнения
- Эффективное управление памятью для текстур
### Обратная совместимость
Старые сохранения с одним портретом автоматически мигрируют в новую систему галереи.
## 🛠️ Разработка
### Структура проекта
```
ai-images/
├── About/ # Метаданные мода
├── Assemblies/ # Скомпилированные DLL
├── Defs/ # XML-конфигурации (стили, размеры)
├── Languages/ # Переводы
├── Source/ # Исходный код
│ └── AIImages/
│ ├── Components/ # Компоненты пешек
│ ├── Defs/ # Классы определений
│ ├── Helpers/ # Вспомогательные классы
│ ├── Models/ # Модели данных
│ ├── Patches/ # Harmony патчи
│ ├── Services/ # Бизнес-логика
│ ├── Settings/ # Настройки мода
│ ├── UI/ # Пользовательский интерфейс
│ └── Window_AIImage.cs # Главное окно
└── Textures/ # Текстуры UI
```
### Сборка
```bash
cd Source/AIImages
dotnet build -c Release
```
### Языки
Мод поддерживает английский и русский языки. Переводы находятся в `Languages/`.
## 📝 История версий
### v1.0.0
- Базовая генерация AI-изображений
- Интеграция с Stable Diffusion API
- 9 художественных стилей
- Галерея изображений
- Настройка размеров
- Двуязычный интерфейс
## 🤝 Вклад
Приветствуются любые вклады! Пожалуйста:
1. Форкните репозиторий
2. Создайте ветку для вашей функции
3. Закоммитьте изменения
4. Отправьте Pull Request
## 📄 Лицензия
См. файл [LICENSE](LICENSE) для деталей.
## 🙏 Благодарности
- Ludeon Studios за создание RimWorld
- Automattic1111 за Stable Diffusion WebUI
- Сообщество RimWorld за поддержку
## ⚠️ Известные ограничения
- Требует запущенный Stable Diffusion WebUI
- Генерация изображений может занимать время в зависимости от настроек
- Некоторые модели Stable Diffusion могут работать медленнее других
## 🐛 Сообщение об ошибках
Если вы нашли баг или хотите предложить улучшение, пожалуйста, создайте Issue на GitHub с подробным описанием.
---
**Автор**: mrleo1nid
**Версия RimWorld**: 1.6
**Версия мода**: 1.0.0