Установка Stable Diffusion: Self-Hosted генерация изображений
Установка Stable Diffusion, интерфейсы AUTOMATIC1111 и ComfyUI, загрузка моделей, обучение LoRA, использование ControlNet и Docker self-hosted генерация изображений.
Содержание
Установка Stable Diffusion: Self-Hosted генерация изображений
Stable Diffusion — это открытая ИИ-модель, генерирующая изображения из текста. Запуская её на собственном сервере, вы можете создавать неограниченное количество изображений, обучать пользовательские модели и работать с полной конфиденциальностью. Это руководство подробно описывает установку AUTOMATIC1111 Web UI и ComfyUI, управление моделями, использование LoRA и ControlNet.
Что такое Stable Diffusion?
Stable Diffusion — это модель латентной диффузии, разработанная Stability AI. Основные возможности:
- Текст-в-изображение (txt2img): Генерация изображений из текстовых описаний
- Изображение-в-изображение (img2img): Генерация новых изображений на основе существующих
- Inpainting: Редактирование определённых областей изображения
- ControlNet: Контролируемая генерация с помощью поз, карт краёв и глубины
- LoRA: Тонкая настройка модели с минимальными ресурсами
- Upscaling: Увеличение изображений низкого разрешения
Системные требования
| Компонент | Минимум | Рекомендуется |
|---|---|---|
| GPU | NVIDIA 6 ГБ VRAM | NVIDIA 12 ГБ+ VRAM |
| RAM | 16 ГБ | 32 ГБ+ |
| Диск | 30 ГБ | 100 ГБ+ (для моделей) |
| ОС | Ubuntu 22.04 LTS | Ubuntu 22.04/24.04 LTS |
| CUDA | 11.8+ | 12.1+ |
| Python | 3.10+ | 3.10.x |
Установка AUTOMATIC1111 Web UI
AUTOMATIC1111 — самый популярный веб-интерфейс для Stable Diffusion.
Ручная установка
# Зависимости
sudo apt-get update
sudo apt-get install -y python3-venv python3-pip git wget
# Клонирование репозитория
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui
# Загрузка модели (Stable Diffusion XL)
wget -O models/Stable-diffusion/sd_xl_base_1.0.safetensors \
"https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors"
# Запуск
./webui.sh --listen --port 7860 --xformers --enable-insecure-extension-access
Docker с AUTOMATIC1111
version: '3.8'
services:
stable-diffusion:
image: ghcr.io/abetlen/stable-diffusion-webui-docker:latest
container_name: sd-webui
ports:
- "7860:7860"
volumes:
- sd_models:/app/models
- sd_outputs:/app/outputs
- sd_extensions:/app/extensions
environment:
- COMMANDLINE_ARGS=--listen --xformers --enable-insecure-extension-access --no-half-vae
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
restart: unless-stopped
volumes:
sd_models:
sd_outputs:
sd_extensions:
Установка ComfyUI
ComfyUI — продвинутый интерфейс Stable Diffusion на основе узлов. Идеален для создания сложных рабочих процессов.
# Клонирование репозитория
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
# Виртуальная среда Python
python3 -m venv venv
source venv/bin/activate
# Зависимости
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txt
# Запуск
python main.py --listen 0.0.0.0 --port 8188
Загрузка и управление моделями
# Stable Diffusion XL Base
wget -O models/Stable-diffusion/sd_xl_base_1.0.safetensors \
"https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors"
# Stable Diffusion 1.5 (для малого VRAM)
wget -O models/Stable-diffusion/v1-5-pruned-emaonly.safetensors \
"https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors"
Использование LoRA
LoRA (Low-Rank Adaptation) позволяет тонко настраивать большие модели с минимальными ресурсами.
mkdir -p models/Lora
Использование LoRA в промпте AUTOMATIC1111:
a beautiful landscape, mountains, sunset <lora:detail-enhancer:0.7>
Установка ControlNet
# Установка расширения ControlNet (AUTOMATIC1111)
cd extensions
git clone https://github.com/Mikubill/sd-webui-controlnet.git
# Модели ControlNet
mkdir -p models/ControlNet
wget -O models/ControlNet/control_v11p_sd15_canny.pth \
"https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_canny.pth"
Генерация изображений через API
import requests
import base64
from pathlib import Path
def generate_image(prompt, negative_prompt="", steps=30, width=1024, height=1024):
url = "http://localhost:7860/sdapi/v1/txt2img"
payload = {
"prompt": prompt,
"negative_prompt": negative_prompt,
"steps": steps,
"width": width,
"height": height,
"sampler_name": "DPM++ 2M Karras",
"cfg_scale": 7,
"seed": -1
}
response = requests.post(url, json=payload)
result = response.json()
image_data = base64.b64decode(result["images"][0])
Path("output.png").write_bytes(image_data)
print("Изображение сохранено: output.png")
generate_image(
prompt="a futuristic data center, neon lights, cyberpunk style, 8k",
negative_prompt="blurry, low quality, distorted"
)
Оптимизация производительности
pip install xformers
./webui.sh --listen --xformers --opt-sdp-attention --no-half-vae --medvram --port 7860
Параметры экономии памяти
| Параметр | Описание | Экономия VRAM |
|---|---|---|
| --xformers | xformers attention | Средняя |
| --medvram | Средний режим VRAM | Высокая |
| --lowvram | Низкий режим VRAM | Очень высокая |
| --opt-sdp-attention | SDP attention | Средняя |
| --no-half-vae | VAE float32 | Улучшение качества |
Создавайте неограниченное количество изображений с Stable Diffusion на GPU-серверах REXE. Модели SDXL работают на высокой скорости с NVIDIA A100 GPU.
Связанные статьи
Установка Ollama: Руководство по локальному запуску LLM
Установка Ollama, запуск локальных LLM моделей (Llama 3, Mistral, Gemma), использование API, управление моделями, GPU-ускорение и развертывание через Docker.
Установка Open WebUI: Локальный ИИ с интерфейсом как у ChatGPT
Установка Open WebUI через Docker, интеграция с Ollama, управление пользователями, RAG (запросы к документам), управление моделями и поддержка нескольких пользователей.
Развёртывание ИИ-моделей на GPU-сервере: Руководство по NVIDIA CUDA
Установка драйверов NVIDIA, CUDA toolkit, nvidia-container-toolkit, обслуживание моделей с vLLM, мониторинг GPU и развёртывание ИИ-моделей с Docker.