Генерация изображений и видео на GPU: SD/SDXL/SD3
Задача страницы. Дать практический план запуска генерации изображений и видео‑контента на облачных GPU: выбор стека (SD/SDXL/SD3 и видео‑диффузии), подбор GPU/диска, профили производительности и стоимости, базовые паттерны развёртывания (UI/API/пакетные задания).
TL;DR
- Интерактив (UI/демо): 512–1024 px, 20–35 шагов, SSE‑стриминг прогресса, одна GPU 16–24 ГБ (SDXL), быстрый диск для чекпоинтов.
- Пакет (массовый рендер): очереди задач, дешёвые interruptible инстансы, агрессивный батчинг и кэш моделей.
- Оптимизация: fp16/bf16, память‑эффективное внимание, тайлинги для больших разрешений, VAE‑оптимизации, кэш/репозиторий весов.
Детально по стеку: ComfyUI • Automatic1111 • SDXL • SD3 • ControlNet • Видео‑диффузия • Апскейл • Реставрация лиц • Текст→3D • Batch‑рендер
Сценарии и требования
- Интерактивные UI (превью, промпт‑игра): низкая p95, быстрый TTFT предпросмотра.
- Продакшн‑API (генерация ассетов): стабильные SLA и контроль стоимости за 1k/1k² пикселей.
- Пакетная генерация (каталоги, спрайты, датасеты): throughput и цена при длительных очередях.
- Видео/анимации: консистентность между кадрами, I/O потоки, пост‑эффекты и транскод.
Выбор GPU и диска
| Задача | Разрешение | SD 1.5 | SDXL | SD3‑семейство |
|---|---|---|---|---|
| Интерактив, 20–30 шагов | 512² | 8–12 ГБ | 12–16 ГБ | 16–24 ГБ |
| Интерактив, HQ | 768² | 12–16 ГБ | 16–24 ГБ | 24–32 ГБ |
| 1024² | 1024² | 16 ГБ | 16–24 ГБ | 24–48 ГБ |
| Видео‑диффузия (14–25 кадров) | 512–576p | 16–24 ГБ | 24–40 ГБ | 24–40 ГБ |
| Апскейл 2–4× | — | 8–12 ГБ | 8–16 ГБ | 8–16 ГБ |
Весов и Lora/ControlNet быстро набегает: держите 50–200 ГБ локально + кэш. Для пакетного рендера — NVMe с высоким IOPS.
Производительность: как прикинуть время и стоимость
T ≈ O + S × t_step(R, B)
Imgs_per_hour ≈ 3600 / T
Cost_per_1000 ≈ (GPU_hour_price × Num_GPU) / (Imgs_per_hour / 1000)
Где S — число шагов, R — разрешение, B — батч, t_step — среднее время шага, O — накладные.
Снижаем T и Cost: уменьшите S (быстрые самплеры), держите fp16/bf16, включите память‑эффективное внимание. Для массовых задач — interruptible + очереди повторов.
Базовые стеки и когда какой
- ComfyUI — визуальный граф, контроль пайплайна/кэшей, батчи/ветвления.
- Automatic1111 — быстрый старт/UI и плагины.
- SDXL — высокое качество, 1024², схема base+refiner.
- SD3 — новые архитектурные подходы и требования к памяти.
- ControlNet/IP‑Adapter — управляемость позой/эскизом/гранью.
- Видео‑диффузия — генерация/интерполяция кадров.
- Batch‑рендер — массовые задания.
Паттерны запуска: UI / API / Batch
UI (интерактив): SSE‑прогресс, предпросмотр, лимиты S, R, максимальный B. Кэш моделей и VAE, быстрый «горячий» диск. Пул on‑demand с резервом под пики.
API (прод): строгая схема запроса (промпт/seed/самплер/steps/CFG/размер), идемпотентность по request_id, лимиты, троттлинг, трассировка. Отдельные очереди short/long.
Batch: планировщик заданий (N изображений × вариантов), ретраи, дедупликация по seed/параметрам. Масштабирование interruptible пулом.
Видео‑диффузии: особенности
- Генерация коротких клипов (секунды) либо интерполяция между ключевыми кадрами.
- Пайплайн: ключевые кадры → интерполяция → стабилизация/денойз/апскейл → NVENC/AV1 транскод.
- Для длинных роликов — распараллеливание по кадрам/сегментам с перекрытиями.
Мини‑API для генерации (прогресс SSE)
# FastAPI — упрощённый пример
from fastapi import FastAPI, Request
from fastapi.responses import StreamingResponse
import json, asyncio
app = FastAPI()
async def gen_image_stream(cfg):
yield "event: start\ndata: {}\n\n"
steps = cfg.get("steps", 30)
for i in range(steps):
await asyncio.sleep(0.02)
yield f"data: {json.dumps({'progress': i+1, 'steps': steps})}\n\n"
yield 'data: {"result_id":"img_001"}\n\n'
yield "event: done\ndata: [DONE]\n\n"
@app.post("/v1/generate_stream")
async def generate(req: Request):
cfg = await req.json()
return StreamingResponse(gen_image_stream(cfg),
media_type="text/event-stream",
headers={"Cache-Control":"no-cache","X-Accel-Buffering":"no"})
Чек‑лист перед продом
- Выбран стек (ComfyUI/A1111/свой API) и целевые R/S/B.
- Подтверждён VRAM‑бюджет, кэш весов на NVMe, warm‑up моделей.
- Включены fp16/bf16, память‑эффективное внимание, VAE‑оптимизации.
- Ограничены параметры: максимальные R/S, CFG, список моделей/LoRA.
- Настроены очереди short/long, on‑demand/interruptible пулы.
- Метрики/алерты/трейсинг включены; логи без PII.
- Рассчитана цена за 1k изображений/секунд видео; план масштабирования.
Навигация по разделу «Генерация изображений и видео»
ComfyUI • Automatic1111 • SDXL • SD3 • ControlNet • Видео‑диффузия • Апскейл • Реставрация лиц • Текст→3D • Style Transfer • Batch‑рендер
Готовы запустить?
Запустить GPU-сервер