Суперрезолюция на GPU: Real‑ESRGAN и альтернативы

Задача страницы. Дать практический план апскейла изображений и видео на облачных GPU: выбор моделей (Real‑ESRGAN, ESRGAN‑семейство, SwinIR‑подходы и др.), параметры (scale/denoise/tile), требования VRAM и диска, шаблоны графов для ComfyUI и API, контроль качества/артефактов, наблюдаемость и стоимость.

TL;DR

Когда апскейл выигрывает больше, чем «рендер в исходном 2–4k»

  • Массовые партии (каталоги, спрайты, датасеты): быстрее создать 768–1024² и поднять до 2–4k.
  • Ограниченная VRAM: тайлинг апскейлера требует заметно меньше памяти, чем прямая генерация 2–4k.
  • Контроль артефактов: проще лечить «швы/джиттер» на пост‑этапе, чем настраивать гигантский первичный рендер.
  • Видео: пайплайн «576–720p → апскейл → транскод» часто даёт лучшую цену/минуту.

Выбор моделей: чем отличаются

**Класс** **Назначение** **Сильные стороны** **Риски/ограничения**
**Real‑ESRGAN** Универсальный 2–4× Стабильный, быстрый, хорошо «чинит» шум/мыло Может «синтезировать» лишние текстуры на мелком тексте/логотипах
**ESRGAN‑варианты (UltraSharp/Photo‑направл.)** Детали/резкость Выше микродетали, «песочек» на фактурах Риск перешарпа и ореолов
**SwinIR‑подходы** Фото/сканы Сохранение естественного зерна Чуть выше время на кадр
**Специализированные (аниме/line‑art)** Линии/контуры Отлично на чётких гранях На фото — «комикс‑эффект»

Для лиц и мелкого текста комбинируйте с восстановлением: https://cloudcompute.ru/solutions/image-video-gen/face-restoration/

Параметры: что крутить в первую очередь - Scale: 2× (универсально), 4× (финал/кропы).

  • Denoise/Noise: 0.0–0.3 — чуть «подсушить» мыло, 0.3–0.5 — сильнее чистка (рискует «съесть» фактуру).
  • Tile / Tile size: 256–512; больше — быстрее, но выше риск OOM; меньше — безопаснее, но медленнее.
  • Tile overlap: 32–64 px — уменьшает швы; повышайте при «лесенках».
  • Pre‑sharpen / Post‑sharpen: лёгкий шейпинг после апскейла; избегайте двойного перешарпа.
  • JPEG deblock: мягкий де‑блокинг для сжатых входов.

VRAM и диск: ориентиры

Оценки для fp16, тайлинг включён.

**Задача** **Исходный размер** **Scale** **VRAM (на GPU)** **Комментарий**
Фото/арт 768→1536 768² ×2 8–12 ГБ tile 256–512, overlap 32–64
Фото/арт 1024→2048 1024² ×2 8–16 ГБ быстрый и дешёвый профиль
Каталожный 1024→4096 1024² ×4 12–24 ГБ лучше батчировать по 1–2
Видео 576p→1080p ~0.6 Мп/кадр ×2 8–16 ГБ по кадрам, затем транскод
Видео 720p→4k ~0.9 Мп/кадр ×3–4 16–24 ГБ требует агрессивного тайлинга

Хранилище: веса/ваги апскейлеров + промежуточные PNG/WEBP → планируйте 50–200 ГБ на NVMe (кэш) и объектное хранилище для выходов. Подробнее: https://cloudcompute.ru/solutions/storage-data/

«Качество ↔ скорость»: рычаги

  • Снижайте разрешение генерации, апскейльте 2×, затем при необходимости ещё 2×.
  • Для видео используйте апскейл на кадрах + лёгкий temporal blur (1–2 кадра) для сглаживания миганий.
  • Не поднимайте scale до 6–8× одним проходом — лучше два прохода по 2×–4× (между ними — лёгкий денойз).
  • На текстах/логотипах уменьшайте denoise и изолируйте область (маски/region‑upscale), чтобы не «дорисовывать» лишнее. ComfyUI: минимальный граф апскейла (Real‑ESRGAN)
{
 "1":{"class_type":"LoadImage","inputs":{"image":"input.png"}},
 "2":{"class_type":"RealESRGANLoader","inputs":{"model":"realesr-general-x4v3"}},
 "3":{"class_type":"RealESRGANUpscale","inputs":{
 "image":["1","IMAGE"],"scale":4,"tile":512,"tile_overlap":64,"denoise":0.25,"model":["2","MODEL"]
 }},
 "4":{"class_type":"SaveImage","inputs":{"images":["3","IMAGE"]}}
}

Расширения графа:

Automatic1111: API‑вызов апскейла (пример)

curl -X POST "http://<host>:7860/sdapi/v1/extra-single-image" 
 -H "Content-Type: application/json" 
 -d '{
 "image": "data:image/png;base64,<BASE64>",
 "upscaling_resize": 2.0,
 "upscaler_1": "RealESRGAN_x4plus",
 "extras_upscaler_2": "None",
 "show_extras_results": true
 }'

Для серий используйте extra-batch-images и аккуратно подберите tile/overlap в настройках. Страница по WebUI и флагам: https://cloudcompute.ru/solutions/image-video-gen/automatic1111/

Апскейл видео: разложение на кадры → апскейл → транскод

Разложить в кадры:

ffmpeg -y -i input.mp4 -vf fps=24 frames_in/%06d.png

Апскейл (псевдокод Python; подключите ваш апскейлер/API):

import glob, os
from pathlib import Path
def upscale(img_path, out_path, scale=2):
 # вызов вашего апскейлера: Real-ESRGAN/ComfyUI/WebUI API
 pass
Path("frames_out").mkdir(exist_ok=True)
for fp in sorted(glob.glob("frames_in/*.png")):
 out = "frames_out/" + os.path.basename(fp)
 upscale(fp, out, scale=2)

Сборка NVENC H.264 (быстро для предпросмотра):

ffmpeg -y -framerate 24 -i frames_out/%06d.png 
 -c:v h264_nvenc -preset p5 -b:v 8M -pix_fmt yuv420p out_1080p.mp4

AV1 (качество/архив):

ffmpeg -y -framerate 24 -i frames_out/%06d.png 
 -c:v av1_nvenc -rc vbr -b:v 6M -pix_fmt yuv420p out_1080p_av1.mp4

Подробно о транскоде: https://cloudcompute.ru/solutions/rendering/video-transcode/

Формулы времени и стоимости

Обозначим: P_in = W×H — исходные пиксели, s — scale (2/3/4), тогда выходных пикселей P_out ≈ s² × P_in. Пусть Q_mpx — реальная производительность апскейлера (мегапикс./сек) на выбранной GPU, O — накладные (I/O/декод).

Время одной картинки

T ≈ O + (s² × P_in) / Q_mpx

Цена за 1000 изображений

Imgs_per_hour ≈ 3600 / T

Cost_per_1000 ≈ (GPU_hour_price × Num_GPU) / (Imgs_per_hour / 1000)

Ускоряем/удешевляем:

  • Повышаем Q_mpx: fp16/bf16, правильный tile/overlap, локальный NVMe‑кэш, параллелим по файлам.
  • Снижаем O: группируем батчи по одинаковым размерам, избегаем лишних перекодирований.

Подбор режимов — https://cloudcompute.ru/solutions/cost-planner/ и https://cloudcompute.ru/solutions/performance-tuning/

Типовые артефакты и как их лечить

**Симптом** **Причина** **Исправление**
«Швы» между тайлами overlap слишком мал overlap 32–64, пост‑сглаживание стыков
Ореолы/перешарп агрессивная модель/двойной шарп снизить «резкие» апскейлеры, мягкий post‑sharpen
«Нарисованный» текст/логотипы апскейлер синтезирует детали маска текста → мягкий апскейл без denoise
Восковые лица сильный denoise уменьшить denoise, включить Face‑Restore (https://cloudcompute.ru/solutions/image-video-gen/face-restoration/)
«Мерцание» в видео кадры не согласованы темпоральный blur, одинаковые настройки, seed‑согласование
OOM на 4× тайл слишком крупный сократить tile, снизить batch, проверить VRAM

Наблюдаемость, алерты и логи

Собирайте (см. https://cloudcompute.ru/solutions/monitoring-logging/ и https://cloudcompute.ru/solutions/llm-inference/observability/):

  • Производительность: mpx_per_sec, imgs_per_min, p50/p95 t_image_ms, для видео — frames_per_min.
  • Эксплуатация: GPU util/HBM, пик VRAM, частота OOM/ретраев, кэш‑хиты NVMe.
  • Качество: доля кадров со «швами», ореолами, «восковыми» лицами (автодетект по маскам).

Алерты: рост p95, падение кэш‑хитов, всплеск OOM, увеличение доли дефектов.

Операция и безопасность

  • Пулы: интерактив on‑demand (единичные запросы), пакетный interruptible (массовые партии): https://cloudcompute.ru/solutions/interruptible-patterns/
  • Лимиты параметров: max_scale, max_resolution, max_batch, ограничители денойза/шарпа.
  • Политики/логика: санация путей/имён файлов, маскирование PII в логах.

Подробнее: https://cloudcompute.ru/solutions/security/ и https://cloudcompute.ru/solutions/llm-inference/guardrails/

Как это запустить в cloudcompute.ru

Шаблоны в https://cloudcompute.ru/solutions/templates/:

Чек‑лист перед продом

  • Определён таргет: 2× или 4×; отдельные политики для текста/лиц/логотипов.
  • Настроены tile/overlap и denoise под ваш контент; протестированы профили VRAM.
  • Подтверждён выигрыш «генерация 768–1024² → апскейл» vs «сразу 2–4k».
  • Для видео: разложение кадров, апскейл, темпоральное сглаживание, транскод.
  • Очереди short/long и пулы on‑demand/interruptible; отчёты по Cost_per_1000/Cost_per_minute.
  • Метрики/алерты/логи подключены; дефект‑чек (швы/ореолы/воск).

Навигация по разделу «Генерация изображений и видео»https://cloudcompute.ru/solutions/image-video-gen/https://cloudcompute.ru/solutions/image-video-gen/comfyui/https://cloudcompute.ru/solutions/image-video-gen/automatic1111/https://cloudcompute.ru/solutions/image-video-gen/sdxl/https://cloudcompute.ru/solutions/image-video-gen/sd3/https://cloudcompute.ru/solutions/image-video-gen/controlnet/Вы здесь: https://cloudcompute.ru/solutions/image-video-gen/upscaling/https://cloudcompute.ru/solutions/image-video-gen/face-restoration/https://cloudcompute.ru/solutions/image-video-gen/batch-render/ • инфраструктура: https://cloudcompute.ru/solutions/performance-tuning/https://cloudcompute.ru/solutions/storage-data/https://cloudcompute.ru/solutions/monitoring-logging/https://cloudcompute.ru/solutions/llm-inference/observability/https://cloudcompute.ru/solutions/cost-planner/https://cloudcompute.ru/solutions/interruptible-patterns/https://cloudcompute.ru/solutions/rendering/video-transcode/

Готовы запустить?

Запустить GPU-сервер