Восстановление лиц: GFPGAN/CodeFormer — ограничения

Задача страницы. Показать, как аккуратно восстанавливать лица на изображениях и видео в прод‑пайплайнах: когда выбирать GFPGAN или CodeFormer, как настроить параметры, где ставить восстановление в конвейере (до/после апскейла), как добиться стабильности на видео, какие есть ограничения и как считать время/стоимость.

TL;DR

  • GFPGAN — быстрый и «щадящий», хорошо правит мыло и «квадраты», но склонен к «обобщению» черт.
  • CodeFormer — регулируемый баланс fidelity (сохранение оригинала)↔restoration (синтез деталей); оптимальный диапазон fidelity≈0.6–0.9.
  • Для фото/каталогов: сначала сгенерировать 768–1024² → апскейл 2× → мягкая реставрация лица → лёгкий пост‑шарп.
  • Для видео: трекинг лиц + «скользящее окно» параметров, чтобы избежать мерцаний; темпоральное сглаживание.

Смежные страницы: генерация и апскейл — https://cloudcompute.ru/solutions/image-video-gen/ и https://cloudcompute.ru/solutions/image-video-gen/upscaling/; ControlNet для управляемых поз — https://cloudcompute.ru/solutions/image-video-gen/controlnet/; видео‑конвейер — https://cloudcompute.ru/solutions/image-video-gen/video/; тюнинг/наблюдаемость/стоимость — https://cloudcompute.ru/solutions/performance-tuning/, https://cloudcompute.ru/solutions/monitoring-logging/, https://cloudcompute.ru/solutions/llm-inference/observability/, https://cloudcompute.ru/solutions/cost-planner/.

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

Подходит:

  • Каталожные/портретные снимки, где важен «чистый» результат без цифрового шума.
  • После апскейла: сгладить огрехи и вернуть микродетали (ресницы, блики, брови).
  • При низком качестве источника: JPEG‑артефакты, дефокус, рендер‑мыло, сильный денойз.

Осторожно:

  • Док‑фото и KYC — крайне важно не искажать идентичность (ставьте высокий fidelity).
  • Бренд‑персонажи/актёры — избегайте «омоложения/смены черт»; фиксируйте параметры и версионируйте веса.
  • Художественные стили (аниме/линейный арт) — иногда реставрация «очеловечивает» рисунок, ломая стиль.

GFPGAN vs CodeFormer: быстрый выбор

**Критерий** **GFPGAN** **CodeFormer**
Цель Быстро починить артефакты Баланс сохранения черт ↔ синтез деталей
Контроль силы strength/вес **fidelity 0..1** (0 — сильнее «придумывает», 1 — ближе к оригиналу)
Склонности «Смягчает» лица, может унифицировать черты При низком fidelity возможна «подрисовка» новых черт
Когда выбирать Превью, потоки с шумом/мылом, каталоги Критична идентичность, тонкий тюнинг результата

Рекомендации:

  • Начинайте с GFPGAN strength 0.4–0.6 или CodeFormer fidelity 0.7–0.9.
  • Для KYC/идентичности — CodeFormer fidelity ≥0.85.
  • Для творчества/избыточного мыла — CodeFormer fidelity 0.5–0.7 либо GFPGAN 0.6–0.8.

Где вставлять восстановление в конвейер **Вариант A (часто лучше): **Генерация 768–1024² → Апскейл 2× (или 4×) → Face‑Restore → Лёгкий post‑sharpen. Плюсы: апскейлер даёт основу, после — реставрация добавляет лицо‑детали на «натянутом» разрешении.

**Вариант B (если лицо очень испорчено): **Face‑Restore → Апскейл 2× → (опц.) лёгкая Face‑Restore. Плюсы: меньше «размазываний» при крупном апскейле сильно повреждённых лиц.

Где именно — зависит от входа и модели апскейла. Сравнить профили можно по метрикам (§10) и стоимости (§11). Апскейл: https://cloudcompute.ru/solutions/image-video-gen/upscaling/

Профили VRAM и производительности

Оценки для fp16, один портрет/кадр, без сложных масок:

**Сценарий** **Вход** **Выход** **VRAM** **Время на кадр**
Фото 1024² → Face‑Restore 1024² 1024² 4–8 ГБ ~20–60 мс
Фото 2048² → Face‑Restore 2048² 2048² 6–10 ГБ ~40–120 мс
Видео 576p (24 fps) 0.6 Мп 0.6 Мп 6–10 ГБ 15–30 fps (на 1 GPU)
Видео 1080p (тайлы) 2 Мп 2 Мп 8–16 ГБ зависит от тайлинга

Пиковая VRAM растёт с числом одновременных лиц (батч в кадре). Для массовых серий — разносите по воркерам и включайте тайлинг/регион‑маски.

Настройки: что крутить в первую очередь

  • GFPGAN strength: 0.4–0.6 для каталога; 0.6–0.8 для тяжёлых артефактов.
  • CodeFormer fidelity: 0.7–0.9 (идентичность); 0.5–0.7 (агрессивное улучшение).
  • Face detection: порог детекции 0.5–0.7; ограничьте макс. число лиц в кадре, чтобы не «запечатать» массовую сцену.
  • Region masks: реставрируйте только лицо/кожу; не затрагивайте волосы/фон/текст.
  • Order: если есть апскейл — чаще выгодно после апскейла; при сильных дефектах — до, см. §3.
  • Видео: скользящий диапазон параметров (±0.05 fidelity/strength) между соседними кадрами для отсутствия «ступенек». ComfyUI: граф восстановления лиц

A) Базовая схема (CodeFormer после апскейла)

{
 "1":{"class_type":"LoadImage","inputs":{"image":"input.png"}},
 "2":{"class_type":"RealESRGANLoader","inputs":{"model":"realesr-general-x2v3"}},
 "3":{"class_type":"RealESRGANUpscale","inputs":{
 "image":["1","IMAGE"],"scale":2,"tile":512,"tile_overlap":64,"denoise":0.2,"model":["2","MODEL"]}},
 "4":{"class_type":"CodeFormerLoader","inputs":{"model":"codeformer.safetensors"}},
 "5":{"class_type":"FaceRestoreCodeFormer","inputs":{
 "image":["3","IMAGE"],"fidelity":0.8,"face_detection_thresh":0.6,"mask_keep_hair":true,"max_faces":4,
 "model":["4","MODEL"]}},
 "6":{"class_type":"SaveImage","inputs":{"images":["5","IMAGE"]}}
}

B) Мягкий GFPGAN (до апскейла), затем апскейл и лёгкий CodeFormer

{
 "1":{"class_type":"LoadImage","inputs":{"image":"input.png"}},
 "2":{"class_type":"GFPGANLoader","inputs":{"model":"gfpgan_v1.4.safetensors"}},
 "3":{"class_type":"FaceRestoreGFPGAN","inputs":{"image":["1","IMAGE"],"strength":0.55,"max_faces":4,"model":["2","MODEL"]}},
 "4":{"class_type":"RealESRGANLoader","inputs":{"model":"realesr-general-x2v3"}},
 "5":{"class_type":"RealESRGANUpscale","inputs":{"image":["3","IMAGE"],"scale":2,"tile":512,"tile_overlap":64}},
 "6":{"class_type":"CodeFormerLoader","inputs":{"model":"codeformer.safetensors"}},
 "7":{"class_type":"FaceRestoreCodeFormer","inputs":{"image":["5","IMAGE"],"fidelity":0.9,"max_faces":4,"model":["6","MODEL"]}},
 "8":{"class_type":"SaveImage","inputs":{"images":["7","IMAGE"]}}
}

Графы, кэш и профили VRAM — https://cloudcompute.ru/solutions/image-video-gen/comfyui/ Апскейл — https://cloudcompute.ru/solutions/image-video-gen/upscaling/

Automatic1111: API‑вызовы

A) Extras: CodeFormer

curl -X POST "http://<host>:7860/sdapi/v1/extra-single-image" 
 -H "Content-Type: application/json" 
 -d '{
 "image": "data:image/png;base64,<BASE64>",
 "gfpgan_visibility": 0.0,
 "codeformer_visibility": 1.0,
 "codeformer_weight": 0.8, // аналог fidelity (1.0 — ближе к оригиналу)
 "upscaling_resize": 2.0,
 "upscaler_1": "RealESRGAN_x2plus"
 }'

B) Extras: GFPGAN

curl -X POST "http://<host>:7860/sdapi/v1/extra-single-image" 
 -H "Content-Type: application/json" 
 -d '{
 "image": "data:image/png;base64,<BASE64>",
 "gfpgan_visibility": 0.6,
 "codeformer_visibility": 0.0
 }'

C) txt2img с post‑processing — включайте «Restore faces» через скрипты/после‑обработку, чтобы не трогать весь кадр; для масок используйте регион‑процессы. Подробности по WebUI и флагам: https://cloudcompute.ru/solutions/image-video-gen/automatic1111/

Видео: стабильность и трекинг

**Пайплайн: Разложить видео → детектировать лица + трек (ID) → применить реставрацию по маске и ID → сборка и транскод → (опц.) лёгкий темпоральный blur.

**Сглаживание параметров: Если fidelity_t — значение на кадре t, применяйте сглаживание:

fidelity_t' = 0.5·fidelity_t + 0.3·fidelity_{t-1} + 0.2·fidelity_{t-2}

Аналогично для strength. Это снижает «ступени» между кадрами.

Видео‑конвейер и транскод — https://cloudcompute.ru/solutions/image-video-gen/video/ и https://cloudcompute.ru/solutions/rendering/video-transcode/

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

**Профиль** **Модель** **Настройки** **Когда использовать**
**Preview** GFPGAN strength=0.5 Быстрые предпросмотры, правка мыла
**Balanced** CodeFormer fidelity=0.8 Каталоги/портреты без риска «перерисовки»
**Identity‑safe** CodeFormer fidelity=0.9 KYC/идентичность/бренд‑персонажи
**Heavy‑fix** CodeFormer fidelity=0.6 Сильные артефакты/старые фото (проверять «похожесть»)
**Hybrid** GFPGAN→CodeFormer 0.55 → 0.9 Очень плохой исходник, двойная стабилизация

Метрики качества и оффлайн‑валидация

  • Face‑ID similarity (эмбеддинги до/после) — измеряйте «похожесть»; цель — не ухудшить ниже порога.
  • Skin‑tone drift — средний сдвиг оттенка по маске кожи; ограничивать пост‑коррекцией.
  • Text legibility (если в кадре есть текст) — доля верно распознанных символов на ROI.
  • Дефекты — доля кадров с «восковыми» лицами, артефактами глаз/рта.
  • Производительность — imgs_per_min, frames_per_min, p95 t_image_ms, VRAM пик.

Сбор/визуализация метрик: https://cloudcompute.ru/solutions/monitoring-logging/ и https://cloudcompute.ru/solutions/llm-inference/observability/

Время и стоимость

Обозначим: N — изображений (или кадров), T_face — среднее время реставрации одного, O — накладные (I/O, детекция, трек), P_gpu — цена GPU/час.

T_total ≈ N × T_face + O

Imgs_per_hour ≈ 3600 / T_face

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

Снижаем цену:

  • Запускаем реставрацию после апскейла (меньше ретрейнов генерации).
  • Маскируем только лицо (меньше пикселей) и батчим кадры.
  • Кэш весов/моделей на NVMe — меньше «холодных» стартов.

Планирование/профили — https://cloudcompute.ru/solutions/cost-planner/

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

  • Технические: t_image_ms, frames_per_min, VRAM, OOM/ретраи, cache‑hit моделей.
  • Качество: «похожесть» (ID‑score), доля дефектов глаз/рта, skin‑tone drift.
  • Алерты: рост p95, падение похожести ниже порога, всплеск дефектов.

Операционный базис — https://cloudcompute.ru/solutions/monitoring-logging/ и https://cloudcompute.ru/solutions/llm-inference/observability/

Безопасность и политика

  • Идентичность и согласие. Для реальных людей — документируйте цель обработки, хранение и удаление входов/результатов.
  • Лимиты параметров: верхние пределы для strength/fidelity, список разрешённых моделей, маскирование PII в логах.
  • Версионирование: фиксируйте версии весов/конфигов в отчётах.

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

Траблшутинг

**Симптом** **Причина** **Что сделать**
«Кукольные» лица Слишком сильная реставрация Понизить strength/поднять fidelity, добавить лёгкий шум
Потеря схожести Низкий fidelity или двойная реставрация fidelity≥0.85, выключить один из этапов
Двоение/смещение контуров Нет маски/неправильный ROI Включить region‑mask, расширить маску на 2–4 px
«Восковая» кожа Жёсткий денойз/апскейл Снизить denoise, сделать пост‑шарп мягким
Мерцание на видео Параметры «скачут» по кадрам Сглаживание по времени (§8), трек ID, темпоральный blur
OOM на 4k Слишком большой ROI/батч Тайлить, уменьшить батч, ограничить max\_faces

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

Готовые шаблоны: https://cloudcompute.ru/solutions/templates/

Экономика и профили — https://cloudcompute.ru/solutions/cost-planner/

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

  • Выбрана модель и профиль: GFPGAN (preview) / CodeFormer (balanced/identity‑safe).
  • Определён порядок с апскейлом (до/после) и подтверждён на пилоте.
  • Настроены маски лиц и пределы strength/fidelity; ограничен max_faces.
  • Метрики качества (ID‑score, skin‑tone drift, дефекты) и алерты подключены.
  • Разделены пулы on‑demand/interruptible; кэш весов на NVMe.
  • Рассчитана Cost_per_1000; отчёты включают версии весов/конфигов.

Навигация по разделу «Генерация изображений и видео»

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/llm-inference/streaming/https://cloudcompute.ru/solutions/security/https://cloudcompute.ru/solutions/llm-inference/guardrails/

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

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