# Stable Diffusion WebUI

Самый популярный веб-интерфейс для Stable Diffusion на GPU CLORE.AI.

{% hint style="success" %}
Все примеры можно запускать на GPU-серверах, арендуемых через [CLORE.AI Marketplace](https://clore.ai/marketplace).
{% endhint %}

## Требования к серверу

| Параметр      | Минимум     | Рекомендуется |
| ------------- | ----------- | ------------- |
| ОЗУ           | 16 ГБ       | 32 ГБ+        |
| VRAM          | 8 ГБ        | 12 ГБ+        |
| Сеть          | 500 Мбит/с  | 1 Гбит/с+     |
| Время запуска | 10–20 минут | -             |

{% hint style="warning" %}
**Время запуска:** При первом запуске устанавливаются зависимости Python и загружается базовая модель (10–20 минут в зависимости от скорости сети). HTTP 502 в это время — нормально.
{% endhint %}

## Почему SD WebUI?

* **Богатый функционал** - txt2img, img2img, инпейтинг, аутпейтинг
* **Расширения** - Огромная экосистема плагинов
* **Удобство для пользователя** - Интуитивный веб-интерфейс
* **Хорошая документация** - Широкая поддержка сообщества

> 📚 См. также: [Как запустить Stable Diffusion на облачном GPU](https://blog.clore.ai/how-to-run-stable-diffusion-cloud-gpu/)

## Быстрая деплой на CLORE.AI

**Docker-образ:**

```
universonic/stable-diffusion-webui:latest
```

**Порты:**

```
22/tcp
8080/http
```

**Команда:**

```bash
./webui.sh --listen --xformers
```

### Проверьте, что всё работает

После развертывания найдите ваш `http_pub` URL в **Мои заказы**:

```bash
# Проверьте доступность UI (при первом запуске может занять 10–20 мин)
curl https://your-http-pub.clorecloud.net/
```

{% hint style="info" %}
Если вы получаете HTTP 502 более 20 минут, проверьте:

1. Сервер имеет 16 ГБ+ ОЗУ
2. Сервер имеет 8 ГБ+ VRAM
3. Скорость сети достаточна для загрузки зависимостей
   {% endhint %}

## Доступ к вашему сервису

При деплое на CLORE.AI доступ к SD WebUI осуществляется через `http_pub` URL:

* **Веб UI:** `https://your-http-pub.clorecloud.net/`
* **API (если включено):** `https://your-http-pub.clorecloud.net/sdapi/v1/`

{% hint style="info" %}
Все `localhost:7860` пример ниже работает при подключении через SSH. Для внешнего доступа замените на ваш `https://your-http-pub.clorecloud.net/` URL.
{% endhint %}

## Установка

### Использование Docker (рекомендуется)

```bash
docker run -d --gpus all \
    -p 8080:8080 \
    -v sd-webui-data:/app/stable-diffusion-webui \
    universonic/stable-diffusion-webui:latest
```

### Ручная установка

```bash
# Установите зависимости
sudo apt install python3.10 python3.10-venv git wget

# Клонируйте репозиторий
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui

# Запуск (автоустанавливает всё)
./webui.sh --listen --xformers
```

## Структура директорий

```
stable-diffusion-webui/
├── models/
│   ├── Stable-diffusion/   # Основные модели (.safetensors)
│   ├── Lora/               # Модели LoRA
│   ├── VAE/                # Модели VAE
│   ├── ControlNet/         # Модели ControlNet
│   └── ESRGAN/             # Апскейлеры
├── embeddings/             # Текстовые инверсии
├── extensions/             # Установленные расширения
├── outputs/                # Сгенерированные изображения
└── scripts/                # Пользовательские скрипты
```

## Скачать модели

### Контролные точки

```bash
cd models/Stable-diffusion

# SD 1.5
wget https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned.safetensors

# SDXL
wget https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors

# Realistic Vision (Фотореалистичный)
wget "https://civitai.com/api/download/models/245598" -O realisticVision_v60B1.safetensors

# DreamShaper (Художественный)
wget "https://civitai.com/api/download/models/351306" -O dreamshaper_8.safetensors
```

### VAE (Лучшие цвета)

```bash
cd models/VAE

# SD 1.5 VAE
wget https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors

# SDXL VAE
wget https://huggingface.co/stabilityai/sdxl-vae/resolve/main/sdxl_vae.safetensors
```

## Базовое использование

### txt2img (текст → изображение)

1. Выберите модель в выпадающем списке
2. Введите позитивный промпт: то, что вы хотите
3. Введите негативный промпт: чего избегать
4. Установите размеры (512x512 для SD1.5, 1024x1024 для SDXL)
5. Нажмите «Generate»

### img2img (изображение → изображение)

1. Перейдите на вкладку img2img
2. Загрузите исходное изображение
3. Введите промпт, описывающий желаемые изменения
4. Настройте **Сила денойзинга** (0.3-0.8)
5. Сгенерировать

### Инпейтинг

1. Перейдите в img2img → Inpaint
2. Загрузите изображение
3. Нарисуйте маску над областью для изменения
4. Введите промпт для замаскированной области
5. Сгенерировать

## Основные настройки

### Параметры генерации

| Настройка | SD 1.5          | SDXL            |
| --------- | --------------- | --------------- |
| Ширина    | 512             | 1024            |
| Высота    | 512             | 1024            |
| Шаги      | 20-30           | 20-40           |
| CFG Scale | 7               | 5-7             |
| Сэмплер   | DPM++ 2M Karras | DPM++ 2M Karras |

### Аргументы командной строки

```bash
./webui.sh \
    --listen \              # Разрешить внешний доступ
    --port 7860 \           # Номер порта
    --xformers \            # Оптимизация памяти
    --enable-insecure-extension-access \  # Разрешить расширения
    --api \                 # Включить API
    --no-half-vae           # Исправление чёрных изображений
```

### Для малого объёма VRAM

```bash
./webui.sh \
    --listen \
    --medvram \           # 6–8 ГБ VRAM
    # или
    --lowvram \           # 4 ГБ VRAM
    --xformers
```

## Популярные расширения

### Обязательно

| Расширение                | Назначение                |
| ------------------------- | ------------------------- |
| ControlNet                | Управляемая генерация     |
| ADetailer                 | Автоисправление лица/рук  |
| Ultimate SD Upscale       | Лучшее апскейлинг         |
| sd-webui-segment-anything | Сегментация               |
| Regional Prompter         | Многорегиональные промпты |

### Установка расширений

1. Перейдите на **Расширения** вкладка
2. Нажмите **Доступно**
3. Нажмите **Загрузить из**
4. Поиск и установка
5. Применить и перезапустить UI

Или вручную:

```bash
cd extensions
git clone https://github.com/Mikubill/sd-webui-controlnet.git
```

## ControlNet

### Установка

```bash
# Установить расширение
cd extensions
git clone https://github.com/Mikubill/sd-webui-controlnet.git

# Скачать модели
cd ../models/ControlNet
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_canny.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_openpose.pth
wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11f1p_sd15_depth.pth
```

### Использование

1. Разверните секцию ControlNet
2. Загрузите контрольное изображение
3. Выберите препроцессор (Canny, OpenPose и т.д.)
4. Выберите модель, соответствующую препроцессору
5. Сгенерировать

## Использование API

Включите с помощью `--api` флага, затем:

```python
import requests
import base64

# Для внешнего доступа используйте ваш http_pub URL:
API_URL = "https://your-http-pub.clorecloud.net"
# Или через SSH: API_URL = "http://localhost:7860"

def txt2img(prompt, negative="", steps=20, width=512, height=512):
    response = requests.post(
        f"{API_URL}/sdapi/v1/txt2img",
        json={
            "prompt": prompt,
            "negative_prompt": negative,
            "steps": steps,
            "width": width,
            "height": height,
        }
    )
    return base64.b64decode(response.json()["images"][0])

# Сгенерировать и сохранить
image_data = txt2img("A beautiful sunset over mountains")
with open("output.png", "wb") as f:
    f.write(image_data)
```

### img2img API

```python
import base64

def img2img(prompt, image_path, denoising=0.5):
    with open(image_path, "rb") as f:
        image_b64 = base64.b64encode(f.read()).decode()

    response = requests.post(
        f"{API_URL}/sdapi/v1/img2img",
        json={
            "prompt": prompt,
            "init_images": [image_b64],
            "denoising_strength": denoising,
            "steps": 30,
        }
    )
    return base64.b64decode(response.json()["images"][0])
```

## Написание промптов

### Базовая структура

```
[объект], [стиль], [детали], [освещение], [теги качества]
```

### Примеры промптов

```
# Портрет
портрет молодой женщины, профессиональная фотография,
мягкое освещение, малая глубина резкости, 8k uhd,
высокая детализация, фотореализм

# Пейзаж
величественный горный пейзаж на закате, драматические облака,
освещение золотого часа, стиль National Geographic,
8k обои, высокая детализация

# Аниме
1girl, серебристые волосы, синие глаза, школьная форма,
цветущая сакура, весна, шедевр, лучшее качество
```

### Негативные промпты

```
# Общие
низкое разрешение, плохая анатомия, плохие руки, текст, ошибка,
отсутствующие пальцы, обрезано, худшее качество, низкое качество,
артефакты jpeg, подпись, водяной знак, размытость

# Для фотореалистичных изображений
мультфильм, аниме, иллюстрация, живопись, рисунок,
3D-рендер, CGI
```

## Советы по производительности

1. **Включите xFormers** - Значительное ускорение
2. **Используйте VAE** - Лучше цвета
3. **Размер батча 1** - Для ограниченного VRAM
4. **Hires Fix** - Генерировать маленькое, затем увеличивать
5. **ADetailer** - Автоисправление лиц

## Требования к GPU

| Модель       | Минимальный VRAM | Рекомендуемый VRAM | Мин ОЗУ |
| ------------ | ---------------- | ------------------ | ------- |
| SD 1.5       | 4 ГБ             | 8 ГБ               | 16 ГБ   |
| SD 2.1       | 6 ГБ             | 8 ГБ               | 16 ГБ   |
| SDXL         | 8 ГБ             | 12ГБ               | 16 ГБ   |
| С ControlNet | +2 ГБ            | +4 ГБ              | 16 ГБ   |

## Пресеты GPU

### RTX 3060 12GB (Бюджет)

```bash
# Команда запуска
./webui.sh --medvram --xformers

# Рекомендуемые settings.json:
# - SD 1.5: 512x512, batch 4, 20–30 шагов
# - SDXL: 768x768, batch 1, 20 шагов
# - Включить VAE tiling в настройках
# - Используйте ADetailer для лиц
```

**Лучшие модели:** SD 1.5, DreamShaper, RealisticVision

### RTX 3090 24GB (Оптимально)

```bash
# Команда запуска
./webui.sh --xformers

# Рекомендуемые настройки:
# - SD 1.5: 512x512, batch 8, 30 шагов
# - SDXL: 1024x1024, batch 2, 30 шагов
# - ControlNet + SD 1.5 работает отлично
# - Hires fix на 2x работает
```

**Лучшие модели:** SDXL, Juggernaut, RealVisXL

### RTX 4090 24GB (Производительность)

```bash
# Команда запуска
./webui.sh --xformers --opt-sdp-attention

# Рекомендуемые настройки:
# - SD 1.5: 512x512, batch 16, 30 шагов
# - SDXL: 1024x1024, batch 4, 40 шагов
# - Несколько ControlNet одновременно
# - Hires fix на 4x
```

**Лучшие модели:** SDXL, Pony Diffusion, любая модель для высокого разрешения

### A100 40GB/80GB (Продакшн)

```bash
# Команда запуска
./webui.sh --opt-sdp-attention --no-half-vae

# Рекомендуемые настройки:
# - SDXL: 1024x1024, batch 8+, 50 шагов
# - Несколько ControlNet + IP-Adapter
# - Hires fix до 4096x4096
# - AnimateDiff для видео
```

**Лучше всего для:** Пакетная генерация, сложные рабочие процессы, видео

## Оценка стоимости

Типичные ставки на маркетплейсе CLORE.AI:

| GPU      | VRAM  | Цена/день  | Скорость SD1.5 | Скорость SDXL |
| -------- | ----- | ---------- | -------------- | ------------- |
| RTX 3060 | 12ГБ  | $0.15–0.30 | \~4 сек        | \~12 сек      |
| RTX 3090 | 24ГБ  | $0.30–1.00 | \~2 сек        | \~6 сек       |
| RTX 4090 | 24ГБ  | $0.50–2.00 | \~1 сек        | \~3 сек       |
| A100     | 40 ГБ | $1.50–3.00 | \~0.5 сек      | \~2 сек       |

*Цены в USD/день. Ставки варьируются в зависимости от провайдера — проверьте* [*CLORE.AI Marketplace*](https://clore.ai/marketplace) *для актуальных тарифов.*

## Устранение неполадок

### HTTP 502 длительное время

1. **Проверьте ОЗУ:** Сервер должен иметь 16 ГБ+ ОЗУ
2. **Проверьте VRAM:** Для SDXL требуется 8 ГБ+
3. **Установка зависимостей:** Первый запуск занимает 10–20 минут
4. **Медленная сеть:** Низкая пропускная способность увеличивает время запуска

### Чёрные изображения

```bash
# Добавить к аргументам запуска
--no-half-vae
```

### Недостаток памяти

```bash
# Используйте оптимизацию
--medvram
--xformers
```

### Расширения не загружаются

```bash
--enable-insecure-extension-access
```

### Медленная генерация

1. Включите xFormers
2. Уменьшите размер изображения
3. Понизьте количество шагов (20 часто достаточно)

## Следующие шаги

* [ComfyUI](https://docs.clore.ai/guides/guides_v2-ru/generaciya-izobrazhenii/comfyui) - Более продвинутые рабочие процессы
* [FLUX.1](https://docs.clore.ai/guides/guides_v2-ru/generaciya-izobrazhenii/flux) - Последняя модель
* [ControlNet](https://docs.clore.ai/guides/guides_v2-ru/obrabotka-izobrazhenii/controlnet-advanced) - Управляемая генерация
* [Тренировка LoRA](https://docs.clore.ai/guides/guides_v2-ru/obuchenie/kohya-training) - Пользовательские модели
