Розгортання Automatic1111 (SDXL WebUI) для генерації зображень

Деплой Automatic1111 (SDXL WebUI)

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    997
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1264
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1002

Деплой 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 — зв'яжіться з нами для персонального розрахунку.