Развёртывание Automatic1111 (SDXL WebUI) для генерации изображений

Деплой Automatic1111 (SDXL WebUI)

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1460
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1314
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1013
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1275
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    727
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1019

Деплой Automatic1111 (SDXL WebUI)

Вы запускаете Automatic1111 локально, но при нагрузке API падает с тайм-аутами, а генерация занимает минуты. Стандартная конфигурация с --medvram не спасает, а ControlNet и LoRA выдают ошибки совместимости. Мы развернули десятки production-стендов для SDXL — и знаем, как превратить ваш сервер в стабильный генератор изображений под ключ.

Automatic1111 (A1111) — наиболее распространённый web-интерфейс для Stable Diffusion с обширной экосистемой расширений (1000+). Он подходит для команд, которым нужен готовый UI + REST API для автоматизации. Наш опыт: более 50 проектов по развёртыванию генеративных моделей, 5+ лет работы с нейросетями. Гарантируем стабильную работу под нагрузкой до 600 изображений/час на одном GPU. Это позволяет экономить до 40% бюджета на инфраструктуре по сравнению с неоптимизированными сборками. При правильной настройке стоимость эксплуатации снижается на 30–40%.

Почему Automatic1111, а не ComfyUI или SD.Next?

ComfyUI удобен для экспериментов, но уступает в количестве расширений и API-методах. SD.Next (Vladmandic) быстрее, но имеет меньше совместимых LoRA и ControlNet. A1111 остаётся стандартом для production, особенно если нужна интеграция с существующей инфраструктурой через REST API. Мы используем его в 80% проектов.

Как решить проблему нехватки VRAM?

При генерации SDXL 1024×1024 даже на RTX 3090 с 24 ГБ может не хватать памяти при активных ControlNet и нескольких LoRA. Оптимизация --medvram-sdxl снижает потребление VRAM на 30%, но для сложных пайплайнов применяем тайловую обработку Tiled VAE и выгрузку неактивных моделей через --no-half-vae. В крайнем случае используем батчинг меньше 4 и xformers — это снижает latency p99 на 20%. Дополнительно можно включить --lowvram для систем с 8 ГБ VRAM: качество генерации не страдает, но скорость падает на 15–20%. Квантование моделей (INT8) через --precision half --no-half даёт экономию VRAM до 20% без потери качества — актуально для RTX 3060 и A10G.

Как мы развёртываем стек

  1. Аналитика: определяем целевые модели, LoRA-наборы, ControlNet, нагрузку (RPS, разрешение). Выбираем GPU (RTX 3090/4090/A10G). Оцениваем стоимость владения с учётом электричества и охлаждения.
  2. Проектирование: конфигурация Nginx reverse proxy с SSL, мониторинг Prometheus/Grafana, логирование. Разрабатываем схему автообновления моделей через S3 или Git LFS.
  3. Реализация: клонируем репозиторий A1111, размещаем модели по директориям, включаем API-аутентификацию, оптимизации (xformers, sdp-attention, medvram-sdxl). Настраиваем systemd-сервис с автостартом.
  4. Тестирование: нагрузочные тесты (ab, locust), проверка p99 latency, утечки памяти. Проверяем совместимость всех LoRA и ControlNet.
  5. Деплой: настройка systemd, автостарт, мониторинг, документация. Передаём заказчику инструкцию по эксплуатации.
# Клонируем и устанавливаем git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui cd stable-diffusion-webui # Модели в правильные директории # ./models/Stable-diffusion/ — основные чекпоинты (.safetensors) # ./models/Lora/ — LoRA файлы # ./models/ControlNet/ — ControlNet модели # ./models/VAE/ — VAE чекпоинты # Запуск с API и оптимизациями ./webui.sh \ --api \ --api-auth user:password \ --listen \ --port 7860 \ --xformers \ --opt-sdp-attention \ --medvram-sdxl \ --no-progressbar-hiding 

Nginx reverse proxy

server { listen 443 ssl; server_name sd.example.com; ssl_certificate /etc/ssl/sd.crt; ssl_certificate_key /etc/ssl/sd.key; location / { proxy_pass http://127.0.0.1:7860; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_read_timeout 300s; # Генерация может занимать > 60 сек proxy_send_timeout 300s; } } 

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

import httpx import base64 from PIL import Image import io class A1111Client: def __init__(self, base_url: str, username: str = None, password: str = None): self.base_url = base_url.rstrip("/") self.auth = (username, password) if username else None async def txt2img(self, payload: dict) -> list[bytes]: async with httpx.AsyncClient(timeout=300, auth=self.auth) as client: resp = await client.post(f"{self.base_url}/sdapi/v1/txt2img", json=payload) resp.raise_for_status() return [base64.b64decode(img) for img in resp.json()["images"]] async def interrogate(self, image_bytes: bytes, model: str = "clip") -> str: """Определяем промпт для существующего изображения""" payload = { "image": base64.b64encode(image_bytes).decode(), "model": model # clip, deepdanbooru } async with httpx.AsyncClient(timeout=60, auth=self.auth) as client: resp = await client.post(f"{self.base_url}/sdapi/v1/interrogate", json=payload) return resp.json()["caption"] async def upscale(self, image_bytes: bytes, scale: float = 2.0, upscaler: str = "ESRGAN_4x") -> bytes: payload = { "image": base64.b64encode(image_bytes).decode(), "upscaling_resize": scale, "upscaler_1": upscaler } async with httpx.AsyncClient(timeout=120, auth=self.auth) as client: resp = await client.post(f"{self.base_url}/sdapi/v1/extra-single-image", json=payload) return base64.b64decode(resp.json()["image"]) 

Полезные расширения

Расширение Функция
ControlNet Контроль позы/структуры/глубины
ADetailer Автоматическое улучшение лиц/рук
Ultimate SD Upscale Тайловый апскейлинг больших изображений
Regional Prompter Разные промпты для разных зон изображения
AnimateDiff Генерация видео из промпта
IP-Adapter Стиль-референс изображения

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

Конфигурация VRAM Изображений/час (1024×1024)
RTX 3060 12GB 12 GB ~120 (без xformers)
RTX 3090 24GB 24 GB ~300
RTX 4090 24GB 24 GB ~600
2× A10G 2×24 GB ~800 (с батчингом)

Что входит в работу

  • Установка и настройка Automatic1111 последней версии.
  • Размещение моделей (чекпоинты, LoRA, ControlNet, VAE) по вашему списку.
  • Конфигурация Nginx reverse proxy с SSL, базовая аутентификация.
  • REST API для интеграции с вашими сервисами (документация на Swagger).
  • Мониторинг и алертинг (Prometheus + Grafana — опционально).
  • Гарантийная поддержка 30 дней и обучение команды.
  • Круглосуточная поддержка Automatic1111 в случае сбоев.
Пример конфигурации высоконагруженного стенда

Для 600 изображений/час используем RTX 4090 с --batch-count 2 --batch-size 2 и --opt-sdp-attention. Устанавливаем расширение A1111 WebUI Batch-Connect для очереди через RabbitMQ. Это даёт экономию времени инженеров на 30%.

Индивидуальное развертывание

Если ваш проект требует: аутентификации через OAuth, очереди задач (Celery/RabbitMQ), интеграции с S3-хранилищем для результатов, или горизонтального масштабирования на несколько GPU — мы проектируем архитектуру индивидуально. Свяжитесь с нами для консультации по вашему проекту. Закажите развёртывание под ключ.

Сроки: базовый деплой с несколькими моделями — от 4 до 8 часов. Production-setup с аутентификацией, мониторингом, reverse proxy — 1–2 дня. Получите консультацию по оптимизации VRAM и выбору GPU — свяжитесь с нами для персонального расчёта.