Улучшение изображений в Stable Diffusion: полное руководство

Когда сгенерированная в Stable Diffusion картинка выглядит мыльной, с размытыми лицами и рваными мелкими деталями, причина почти всегда одна: базовое разрешение генерации слишком низкое для задуманного результата. Модели семейства SD 1.5 обучены на изображениях около 512×512, а SDXL — около 1024×1024, и любые попытки просто растянуть картинку дают артефакты вместо деталей. Поэтому улучшение изображения в Stable Diffusion — это отдельный этап пайплайна, а не один ползунок.

В этом руководстве разберём рабочие методы: Hires. fix, апскейлеры, Ultimate SD Upscale, ControlNet Tile и восстановление лиц через CodeFormer или GFPGAN. Все примеры даны на базе популярного веб-интерфейса AUTOMATIC1111 WebUI, но принципы применимы и к ComfyUI — отличается только расположение настроек.

Почему изображения получаются размытыми

Нейросеть генерирует картинку в латентном пространстве фиксированного размера. Если вы запрашиваете разрешение сильно больше «родного» для модели, детали начинают дублироваться (двойные головы, лишние конечности), а если меньше — теряется мелкая фактура кожи, волос и тканей. Это не баг, а ограничение архитектуры.

Вторая частая причина — слишком низкое значение CFG Scale или малое число шагов сэмплирования. При 10–15 шагах картинка не успевает «дойти» до чёткого состояния, особенно на сложных сценах. Проверьте сначала эти базовые параметры, прежде чем подключать тяжёлые инструменты апскейла.

  • 🖼️ Разрешение генерации сильно отличается от «родного» для модели
  • 🔢 Мало шагов сэмплирования (меньше ~20)
  • 🎛️ Экстремальные значения CFG Scale — и слишком низкие, и слишком высокие
  • 👤 Мелкие лица на общих планах — классическая слабость диффузионных моделей

Hires. fix — встроенный способ повысить детализацию

Самый простой метод улучшения доступен прямо на вкладке txt2img: отметьте галочку Hires. fix. Механизм работает в два прохода — сначала генерируется картинка в базовом разрешении, затем она увеличивается и прогоняется через img2img с умеренным шумом, что добавляет настоящие детали, а не просто интерполяцию пикселей.

Ключевой параметр здесь — Denoising strength. При значениях около 0,3–0,5 структура исходника сохраняется, а детализация заметно растёт. Выше 0,6 композиция начинает перерисовываться, и результат может уйти от оригинала. Точное значение подбирается под конкретный сюжет, поэтому экспериментируйте на одном и том же seed.

В поле Upscaler выбирайте алгоритм увеличения: Latent сохраняет «рисованный» стиль, а R-ESRGAN 4x+ или 4x-UltraSharp лучше работают с фотореалистичными сценами. Множитель Hires steps можно оставить нулевым — тогда используется то же число шагов, что и в основной генерации.

Апскейл на вкладке Extras

Если картинка уже готова и нужно только увеличить её без перерисовки, откройте вкладку Extras. Здесь работают классические апскейлеры: R-ESRGAN 4x+, 4x-UltraSharp, SwinIR и другие, если модели загружены в папку models/ESRGAN. Это быстрый способ поднять разрешение в 2–4 раза без изменения содержимого.

На этой же вкладке находится блок Face restoration — восстановление лиц через CodeFormer или GFPGAN. У CodeFormer есть ползунок веса: значение ближе к нулю сильнее перерисовывает лицо, ближе к единице — бережнее сохраняет оригинал. Для начала попробуйте середину диапазона.

📊 Какой метод улучшения изображений в Stable Diffusion вы используете чаще всего?
Hires. fix
Ultimate SD Upscale
ControlNet Tile
Только Extras и восстановление лиц

Ultimate SD Upscale и ControlNet Tile

Для серьёзного увеличения — например, с 512×768 до печатного разрешения — стандартный Hires. fix уже не справляется: видеокарта упирается в нехватку VRAM. Решение — расширение Ultimate SD Upscale, которое режет изображение на тайлы, обрабатывает каждый через img2img и сшивает результат обратно. Устанавливается оно через вкладку Extensions → Install from URL из официального репозитория расширения.

Альтернативный подход — ControlNet с моделью Tile. Он удерживает структуру исходника на уровне управляющего сигнала и позволяет довольно агрессивно дорисовывать детали без развала композиции. Этот метод особенно хорош для фотографий и сложных текстур вроде кирпичной кладки или ткани.

☑️ Порядок работы с Ultimate SD Upscale

Выполнено: 0 / 5
⚠️ Внимание: слишком высокий Denoising strength в тайловых методах приводит к «плывущим» деталям — каждый тайл перерисовывается по-своему, и на стыках появляются несостыковки. Если видите сетку артефактов, снизьте силу шума и увеличьте перекрытие тайлов (padding).

Сравнение методов улучшения

Чтобы выбрать инструмент под задачу, сверьтесь с таблицей. Учтите: требования к видеопамяти зависят от разрешения, модели и версии интерфейса, поэтому ориентируйтесь на стабильность работы своей конфигурации, а не на универсальные цифры.

МетодЧто делаетКогда применятьРиски
Hires. fixВторой проход с дорисовкой деталейСразу при генерации в txt2imgИзменение композиции при высоком denoise
Extras + R-ESRGANЧистое увеличение без перерисовкиГотовая картинка, нужен только размерМыльность мелких деталей не лечится
Ultimate SD UpscaleТайловый img2img-апскейлОчень большие разрешения, мало VRAMШвы на стыках тайлов
ControlNet TileАпскейл с удержанием структурыФото, текстуры, сложные сценыТребует установки ControlNet и модели Tile
CodeFormer / GFPGANВосстановление лицМелкие или искажённые лица«Пластиковый» эффект при сильном весе

Типичные ошибки и их решение

Первая ошибка — попытка улучшить всё одним проходом с максимальными настройками. Агрессивный апскейл не добавляет реальных деталей, а лишь усиливает уже существующие артефакты, поэтому кривые руки и двойные зрачки после обработки станут только заметнее. Сначала добейтесь качественной базовой генерации, потом улучшайте.

Вторая проблема — ошибка CUDA out of memory при большом апскейле. Здесь помогает запуск WebUI с аргументом --medvram или --lowvram, а также включение опции Tiled VAE, если она доступна в вашей версии интерфейса. Точный набор флагов зависит от объёма видеопамяти и версии WebUI — сверяйтесь с документацией вашей сборки.

⚠️ Внимание: не ставьте Denoising strength выше 0,5 при апскейле готовых изображений в img2img, если задача — сохранить исходную композицию. Выше этого порога модель фактически генерирует новую картинку по мотивам старой.
Что делать, если лицо после CodeFormer выглядит неестественно

Снизьте вес восстановления (параметр CodeFormer weight) и попробуйте снова. Если лицо всё равно «пластиковое», используйте inpainting: замаскируйте область лица на вкладке img2img → Inpaint и перегенерируйте только её с умеренным Denoising strength. Это даёт более естественный результат, чем глобальная обработка.

Порядок действий для лучшего результата

Соберём всё в единый пайплайн. Начните с генерации в «родном» разрешении модели и подберите удачный seed. Затем примените Hires. fix с умеренным denoise — этого достаточно для большинства задач. Если нужен размер под печать или 4K, дополнительно прогоните результат через Ultimate SD Upscale или ControlNet Tile.

Лица обрабатывайте в последнюю очередь и точечно — либо через Face restoration на вкладке Extras, либо через Inpaint. Такой порядок исключает ситуацию, когда апскейлер «запекает» неудачное лицо в высоком разрешении, и исправлять его становится сложнее.

  • 1️⃣ Генерация в базовом разрешении, подбор seed и промпта
  • 2️⃣ Hires. fix с Denoising strength около 0,3–0,5
  • 3️⃣ Тайловый апскейл для больших размеров
  • 4️⃣ Точечная обработка лиц в самом конце

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

Какой апскейлер выбрать для фотореалистичных изображений?

Чаще всего рекомендуют 4x-UltraSharp или R-ESRGAN 4x+ — они хорошо сохраняют фактуру кожи и мелкие детали. Для аниме-стилистики существуют отдельные модели вроде R-ESRGAN 4x+ Anime6B. Файлы моделей помещаются в папку models/ESRGAN и появляются в списке после перезапуска интерфейса.

Почему после Hires. fix картинка сильно отличается от превью?

Причина в слишком высоком значении Denoising strength — второй проход перерисовывает сцену. Снизьте значение до 0,3–0,4 и зафиксируйте seed, чтобы сравнение было корректным.

Можно ли улучшить обычную фотографию, не сгенерированную в Stable Diffusion?

Да. Загрузите фото на вкладку Extras для чистого апскейла или в img2img с низким Denoising strength для восстановления деталей. ControlNet Tile также работает с любыми изображениями, не только со сгенерированными.

Что делать при ошибке нехватки видеопамяти во время апскейла?

Уменьшите итоговый множитель увеличения, включите тайловую обработку (Ultimate SD Upscale или Tiled VAE) и запустите WebUI с флагом экономии VRAM, соответствующим вашей видеокарте. Точные флаги зависят от версии интерфейса — проверьте документацию вашей сборки.

Нужно ли восстанавливать лица на каждом изображении?

Нет. CodeFormer и GFPGAN имеет смысл применять, только когда лица мелкие или искажённые. На крупных качественных портретах обработка может наоборот ухудшить результат, придав коже неестественную гладкость.