Hires Fix в Stable Diffusion: что это и как правильно использовать

Hires Fix в Stable Diffusion — это двухпроходный режим генерации, который решает конкретную проблему: при создании изображения сразу в высоком разрешении (например, 1024×1024 и выше) модель начинает дублировать персонажей, ломать анатомию и плодить лишние объекты, потому что обучалась на картинках меньшего размера. Функция сначала генерирует картинку в «родном» для модели разрешении, а затем увеличивает её апскейлером и дорабатывает детали повторным проходом диффузии.

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

Зачем нужен Hires Fix

Большинство популярных чекпоинтов, включая классический Stable Diffusion 1.5, обучались на изображениях 512×512 пикселей. Если попросить модель сразу нарисовать 1024×1024, она «растягивает» привычную композицию: объект появляется несколько раз, конечности ломаются, лица дублируются. Это не баг интерфейса, а следствие того, как работает латентное пространство диффузионной модели.

Hires Fix обходит ограничение простым алгоритмом:

  • 🎨 Сначала генерируется изображение в базовом разрешении, близком к обучающему (например, 512×512 или 768×512).
  • 📈 Затем латентное представление увеличивается выбранным апскейлером в заданное число раз.
  • ✨ После этого запускается второй проход диффузии с пониженным шумом, который дорисовывает мелкие детали — текстуру кожи, волосы, узоры.

Именно второй проход отличает Hires Fix от обычного апскейла готовой картинки: детали не просто «растягиваются», а перегенерируются с учётом промпта.

Где находится функция и как её включить

В веб-интерфейсе Automatic1111 (и его форке Stable Diffusion WebUI Forge) функция находится на вкладке txt2img: достаточно поставить галочку Hires. fix, после чего откроется панель с параметрами. В ComfyUI аналогичный процесс собирается вручную: нода апскейла латента плюс второй KSampler с пониженным denoise.

После включения вам предстоит настроить несколько ключевых параметров:

  • 🔍 Upscaler — алгоритм увеличения латента. Популярные варианты: Latent, 4x-UltraSharp, R-ESRGAN 4x+ и его аниме-версия.
  • 🔢 Hires steps — число шагов второго прохода. При значении 0 используется то же количество, что и в основной генерации.
  • 🎚️ Denoising strength — сила изменений на втором проходе, самый чувствительный параметр.
  • 📐 Upscale by — коэффициент увеличения, обычно от 1.5 до 2.
⚠️ Внимание: Hires Fix заметно увеличивает время генерации и потребление видеопамяти. На слабых GPU с малым объёмом VRAM большие коэффициенты апскейла могут приводить к ошибке нехватки памяти — в этом случае уменьшите итоговое разрешение или включите оптимизации вроде --medvram, если ваш интерфейс их поддерживает.

Подбор оптимальных параметров

Универсального набора значений не существует — всё зависит от модели, сэмплера и желаемого стиля. Однако есть ориентиры, с которых разумно начинать эксперименты.

ПараметрТипичный диапазонЧто даёт
Upscale by1.5–2.0Итоговое разрешение картинки
Denoising strength0.3–0.5Баланс между детализацией и сохранением композиции
Hires steps10–20 (или 0)Качество второго прохода
UpscalerLatent / 4x-UltraSharpХарактер детализации

Denoising strength выше 0.6 почти гарантированно меняет композицию: лица «перерисовываются», позы смещаются, а при значениях, близких к 1, второй проход фактически генерирует новую картинку. Начинайте с 0.35–0.45 и двигайтесь небольшими шагами.

Пошаговая настройка в Automatic1111

Ниже безопасный порядок действий, который не зависит от конкретной версии интерфейса. Если какой-то пункт в вашей сборке называется иначе, сверьтесь с документацией используемого форка.

☑️ Настройка Hires Fix

Выполнено: 0 / 7

Сначала сгенерируйте картинку без Hires Fix и зафиксируйте понравившийся seed. Затем включите Hires Fix с тем же сидом — так вы сможете честно сравнить результат «до» и «после» и понять, как параметры влияют именно на вашу композицию.

Если после второго прохода лицо изменилось не в лучшую сторону, не спешите менять всё подряд: снизьте denoising strength на 0.05 и повторите. Чаще всего этого достаточно.

📊 Какой апскейлер вы используете в Hires Fix?
Latent
4x-UltraSharp
R-ESRGAN 4x+
Свой вариант / не использую Hires Fix

Типичные проблемы и их решения

Даже с правильными настройками режим иногда выдаёт неожиданные результаты. Вот что стоит проверить в первую очередь.

  • 👥 Дублирование объектов — базовое разрешение слишком велико для модели. Уменьшите стартовый размер и увеличьте коэффициент апскейла.
  • 🌫️ Мыльная картинка — слишком низкий denoise или слабый апскейлер. Поднимите denoising strength или смените Latent на нейросетевой апскейлер.
  • 🌀 Шумы и артефакты — denoise завышен либо сэмплер второго прохода конфликтует с картинкой. Попробуйте снизить значение.
  • 💾 Ошибка памяти — итоговое разрешение слишком велико для вашей видеокарты. Уменьшите коэффициент или базовый размер.
⚠️ Внимание: не путайте Hires Fix с обычным апскейлом через вкладку Extras. Постобработка в Extras только увеличивает готовое изображение без повторной диффузии — новых деталей она не добавит, а вот работает быстрее и стабильнее на слабом железе.
Почему модели SDXL работают иначе

Модели семейства SDXL обучались на разрешении около 1024×1024, поэтому для них Hires Fix нужен реже — базовая генерация уже идёт в высоком разрешении. Однако при выходе за пределы «родного» размера те же проблемы с дублированием возвращаются, и двухпроходная схема остаётся актуальной.

Hires Fix против обычного апскейла

Когда стоит задача просто увеличить готовую картинку без изменения содержимого, Hires Fix избыточен. Его сила — именно в догенерации деталей: поры кожи, отдельные волосы, текстура ткани появляются благодаря второму проходу диффузии, а не интерполяции пикселей.

С другой стороны, для пакетной обработки десятков изображений обычный апскейл через Extras или внешние инструменты окажется быстрее и предсказуемее. Выбор зависит от цели: качество одной работы или скорость обработки серии.

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

Обязательно ли использовать Hires Fix для каждой картинки?

Нет. Если вы генерируете в разрешении, близком к обучающему для вашей модели (512×512 для SD 1.5, около 1024×1024 для SDXL), и качество устраивает — режим не нужен. Он оправдан, когда требуется итоговое изображение большого размера с высокой детализацией.

Какой denoising strength считается безопасным?

Диапазон 0.3–0.5 считается рабочим для большинства сценариев: композиция сохраняется, а детали дорисовываются. Значения выше 0.6 уже заметно меняют картинку, что иногда используют намеренно для вариативности.

Почему после Hires Fix лицо стало другим?

Вероятная причина — завышенный denoising strength: второй проход перерисовывает мелкие области, и лицо «уплывает». Снизьте значение на 0.05–0.1 или зафиксируйте лицо отдельно с помощью расширений типа детейлера, если ваш интерфейс их поддерживает.

Чем Hires Fix отличается от img2img-апскейла?

По сути, Hires Fix — это автоматизированный img2img-апскейл внутри одной генерации: латент увеличивается и прогоняется через диффузию с заданным denoise. Тот же результат можно получить вручную через img2img, но Hires Fix делает это за один запуск и сохраняет связь с исходным сидом.

Сколько видеопамяти нужно для Hires Fix?

Точная цифра зависит от модели, разрешения и интерфейса. Чем больше итоговый размер, тем выше потребление VRAM. Если возникают ошибки нехватки памяти, уменьшите коэффициент апскейла или включите режимы экономии памяти, предусмотренные вашей сборкой интерфейса.