# 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

