254 lines
9.3 KiB
Markdown
254 lines
9.3 KiB
Markdown
### 🇷🇺 Русский
|
|
|
|
# Stable Diffusion GUI
|
|
|
|
<p align="center">
|
|
<img src="https://via.placeholder.com/800x450.png?text=Stable+Diffusion+GUI" alt="Пример интерфейса">
|
|
</p>
|
|
|
|
**Stable Diffusion GUI** — это удобное графическое приложение с интуитивным интерфейсом для генерации изображений через API Stable Diffusion. Приложение написано на Python с использованием PyQt6 и имеет клиент-серверную архитектуру.
|
|
|
|
## 🔍 Описание
|
|
Это приложение позволяет вам:
|
|
- Генерировать изображения через API Stable Diffusion
|
|
- Управлять моделями, сэмплерами и размерами изображений
|
|
- Использовать готовые промпты и негативные промпты
|
|
- Отслеживать прогресс генерации
|
|
- Сохранять и копировать результаты
|
|
- Настраивать внешний вид и поведение через меню настроек
|
|
|
|
## 🧰 Технологии
|
|
- **Python** — основной язык программирования
|
|
- **PyQt6** — библиотека для создания графического интерфейса
|
|
- **Node.js + Express** — серверная часть для прокси-запросов
|
|
- **Stable Diffusion WebUI API** — поддержка стандартного API
|
|
- **JSON** — обмен данными между клиентом и сервером
|
|
|
|
## 📦 Структура проекта
|
|
```
|
|
stable-diffusion-gui/
|
|
├── main.py # Главное окно приложения
|
|
├── modules/ # Модули приложения
|
|
│ ├── console_window.py # Консоль для логов
|
|
│ ├── model_manager.py # Выбор модели
|
|
│ ├── prompt_window.py # Готовые промпты
|
|
│ ├── negative_prompt_window.py # Негативные промпты
|
|
│ ├── sampler_manager.py # Управление сэмплерами
|
|
│ ├── size_preset_manager.py # Пресеты размеров
|
|
│ └── settings_menu.py # Настройки приложения
|
|
├── resources/ # Ресурсы (иконки, стили)
|
|
├── server/ # Серверная часть
|
|
│ ├── package.json
|
|
│ └── server.js # Прокси для API Stable Diffusion
|
|
├── requirements.txt # Зависимости Python
|
|
└── README.md # Это описание
|
|
```
|
|
|
|
## ⚙️ Установка и запуск
|
|
|
|
### 1. Клонирование репозитория
|
|
```bash
|
|
git clone https://github.com/yourusername/stable-diffusion-gui.git
|
|
cd stable-diffusion-gui
|
|
```
|
|
|
|
### 2. Установка зависимостей Python
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
### 3. Установка зависимостей Node.js (для сервера)
|
|
```bash
|
|
cd server
|
|
npm install
|
|
```
|
|
|
|
### 4. Запуск сервера
|
|
```bash
|
|
node server.js
|
|
```
|
|
|
|
### 5. Запуск клиента
|
|
```bash
|
|
python main.py
|
|
```
|
|
|
|
## 🖥️ Интерфейс
|
|
|
|
### Основные элементы:
|
|
- Поле ввода промпта и негативного промпта
|
|
- Выбор модели, сэмплера, размера изображения
|
|
- Настройки генерации (CFG Scale, Steps, Seed)
|
|
- Кнопка "Сгенерировать"
|
|
- Прогресс-бар
|
|
- Область вывода изображений с возможностью сохранения и копирования
|
|
|
|
### Дополнительно:
|
|
- Горячие клавиши (`Ctrl+G` — генерация, `Ctrl+\`` — открыть консоль)
|
|
- Поддержка темной и светлой темы
|
|
- Встроенная консоль для просмотра логов
|
|
|
|
## 🛠️ API Прокси (server.js)
|
|
|
|
Приложение использует простой Node.js-сервер для проксирования запросов к API Stable Diffusion, чтобы избежать проблем с CORS и добавить дополнительные функции, такие как отслеживание прогресса.
|
|
|
|
### Доступные эндпоинты:
|
|
| Эндпоинт | Описание |
|
|
|------------------|------------------------------------|
|
|
| `/api/txt2img` | Генерация изображения |
|
|
| `/api/progress` | Получение прогресса генерации |
|
|
| `/api/sd-models` | Список доступных моделей |
|
|
| `/api/samplers` | Список доступных сэмплеров |
|
|
|
|
## 🤝 Как принять участие
|
|
|
|
Вы можете улучшать проект, создавая pull request'ы или issues:
|
|
|
|
### 1. Форкните репозиторий
|
|
### 2. Создайте новую ветку
|
|
```bash
|
|
git checkout -b feature/new-feature
|
|
```
|
|
### 3. Закоммитьте изменения
|
|
```bash
|
|
git commit -m "feat: add new cool feature"
|
|
```
|
|
### 4. Загрузите ветку
|
|
```bash
|
|
git push origin feature/new-feature
|
|
```
|
|
### 5. Откройте Pull Request
|
|
|
|
> Мы используем [Conventional Commits](https://www.conventionalcommits.org/) для форматирования комментариев к коммитам.
|
|
|
|
## 📜 Лицензия
|
|
Проект распространяется под лицензией **MIT License**.
|
|
|
|
---
|
|
|
|
### 🇬🇧 English
|
|
|
|
# Stable Diffusion GUI
|
|
|
|
<p align="center">
|
|
<img src="https://via.placeholder.com/800x450.png?text=Stable+Diffusion+GUI" alt="Example UI">
|
|
</p>
|
|
|
|
**Stable Diffusion GUI** is a user-friendly graphical application for generating images using the Stable Diffusion API. It's built with Python and PyQt6, featuring a client-server architecture.
|
|
|
|
## 🔍 Description
|
|
This application allows you to:
|
|
- Generate images via Stable Diffusion API
|
|
- Manage models, samplers, and image sizes
|
|
- Use ready-made prompts and negative prompts
|
|
- Track generation progress
|
|
- Save and copy results
|
|
- Customize appearance and behavior through the settings menu
|
|
|
|
## 🧰 Technologies
|
|
- **Python** — primary programming language
|
|
- **PyQt6** — GUI library
|
|
- **Node.js + Express** — backend proxy server
|
|
- **Stable Diffusion WebUI API** — standard API support
|
|
- **JSON** — data exchange between client and server
|
|
|
|
## 📦 Project Structure
|
|
```
|
|
stable-diffusion-gui/
|
|
├── main.py # Main window app
|
|
├── modules/ # Application modules
|
|
│ ├── console_window.py # Logging console
|
|
│ ├── model_manager.py # Model selector
|
|
│ ├── prompt_window.py # Prompt selector
|
|
│ ├── negative_prompt_window.py # Negative prompts
|
|
│ ├── sampler_manager.py # Sampler manager
|
|
│ ├── size_preset_manager.py # Size presets
|
|
│ └── settings_menu.py # Settings menu
|
|
├── resources/ # Resources (icons, styles)
|
|
├── server/ # Server part
|
|
│ ├── package.json
|
|
│ └── server.js # Proxy server
|
|
├── requirements.txt # Python dependencies
|
|
└── README.md # This file
|
|
```
|
|
|
|
## ⚙️ Installation & Run
|
|
|
|
### 1. Clone repository
|
|
```bash
|
|
git clone https://github.com/yourusername/stable-diffusion-gui.git
|
|
cd stable-diffusion-gui
|
|
```
|
|
|
|
### 2. Install Python dependencies
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
### 3. Install Node.js dependencies (for server)
|
|
```bash
|
|
cd server
|
|
npm install
|
|
```
|
|
|
|
### 4. Start server
|
|
```bash
|
|
node server.js
|
|
```
|
|
|
|
### 5. Launch app
|
|
```bash
|
|
python main.py
|
|
```
|
|
|
|
## 🖥️ Interface
|
|
|
|
### Key Features:
|
|
- Prompt/Negative prompt input fields
|
|
- Model, Sampler, Image size selection
|
|
- Generation settings (CFG Scale, Steps, Seed)
|
|
- Generate button
|
|
- Progress bar
|
|
- Image output area with save/copy options
|
|
|
|
### Extra:
|
|
- Hotkeys (`Ctrl+G` — generate, `Ctrl+\`` — open console)
|
|
- Dark/Light theme toggle
|
|
- Built-in logging console
|
|
|
|
## 🛠️ API Proxy (server.js)
|
|
|
|
The app uses a simple Node.js server to proxy requests to the Stable Diffusion API to avoid CORS issues and add extra features like progress tracking.
|
|
|
|
### Available Endpoints:
|
|
| Endpoint | Description |
|
|
|------------------|------------------------------------|
|
|
| `/api/txt2img` | Image generation |
|
|
| `/api/progress` | Get generation progress |
|
|
| `/api/sd-models` | List of available models |
|
|
| `/api/samplers` | List of available samplers |
|
|
|
|
## 🤝 How to Contribute
|
|
|
|
You can help improve this project by creating pull requests or issues:
|
|
|
|
### 1. Fork the repo
|
|
### 2. Create a new branch
|
|
```bash
|
|
git checkout -b feature/new-feature
|
|
```
|
|
### 3. Commit changes
|
|
```bash
|
|
git commit -m "feat: add new cool feature"
|
|
```
|
|
### 4. Push branch
|
|
```bash
|
|
git push origin feature/new-feature
|
|
```
|
|
### 5. Open a Pull Request
|
|
|
|
> We use [Conventional Commits](https://www.conventionalcommits.org/) for commit message formatting.
|
|
|
|
## 📜 License
|
|
This project is licensed under the **MIT License**.
|