Перейти к основному содержимому
Вернуться в категорию

Установка Stable Diffusion: Self-Hosted генерация изображений

Установка Stable Diffusion, интерфейсы AUTOMATIC1111 и ComfyUI, загрузка моделей, обучение LoRA, использование ControlNet и Docker self-hosted генерация изображений.

Время чтения: 16 мин. ИИ и ML на своём сервере
stable-diffusionгенерация изображенийискусственный интеллектself-hostingcomfyuigpu

Содержание

Установка Stable Diffusion: Self-Hosted генерация изображений

Stable Diffusion — это открытая ИИ-модель, генерирующая изображения из текста. Запуская её на собственном сервере, вы можете создавать неограниченное количество изображений, обучать пользовательские модели и работать с полной конфиденциальностью. Это руководство подробно описывает установку AUTOMATIC1111 Web UI и ComfyUI, управление моделями, использование LoRA и ControlNet.

Что такое Stable Diffusion?

Stable Diffusion — это модель латентной диффузии, разработанная Stability AI. Основные возможности:

  • Текст-в-изображение (txt2img): Генерация изображений из текстовых описаний
  • Изображение-в-изображение (img2img): Генерация новых изображений на основе существующих
  • Inpainting: Редактирование определённых областей изображения
  • ControlNet: Контролируемая генерация с помощью поз, карт краёв и глубины
  • LoRA: Тонкая настройка модели с минимальными ресурсами
  • Upscaling: Увеличение изображений низкого разрешения

Системные требования

КомпонентМинимумРекомендуется
GPUNVIDIA 6 ГБ VRAMNVIDIA 12 ГБ+ VRAM
RAM16 ГБ32 ГБ+
Диск30 ГБ100 ГБ+ (для моделей)
ОСUbuntu 22.04 LTSUbuntu 22.04/24.04 LTS
CUDA11.8+12.1+
Python3.10+3.10.x

Установка AUTOMATIC1111 Web UI

AUTOMATIC1111 — самый популярный веб-интерфейс для Stable Diffusion.

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

hljs bash
# Зависимости
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

hljs yaml
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 на основе узлов. Идеален для создания сложных рабочих процессов.

hljs bash
# Клонирование репозитория
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

Загрузка и управление моделями

hljs bash
# 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) позволяет тонко настраивать большие модели с минимальными ресурсами.

hljs bash
mkdir -p models/Lora

Использование LoRA в промпте AUTOMATIC1111:

a beautiful landscape, mountains, sunset <lora:detail-enhancer:0.7>

Установка ControlNet

hljs bash
# Установка расширения 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

hljs python
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"
)

Оптимизация производительности

hljs bash
pip install xformers

./webui.sh --listen --xformers --opt-sdp-attention --no-half-vae --medvram --port 7860

Параметры экономии памяти

ПараметрОписаниеЭкономия VRAM
--xformersxformers attentionСредняя
--medvramСредний режим VRAMВысокая
--lowvramНизкий режим VRAMОчень высокая
--opt-sdp-attentionSDP attentionСредняя
--no-half-vaeVAE float32Улучшение качества

Создавайте неограниченное количество изображений с Stable Diffusion на GPU-серверах REXE. Модели SDXL работают на высокой скорости с NVIDIA A100 GPU.