Hires.fix

hires.fix — двухэтапная генерация с увеличением разрешения

Раздел
Параметры
Обновлено
18.05.26

Hires.fix — техника двухэтапной генерации в Stable Diffusion: сначала модель рисует базовое изображение в 512×512 или 1024×1024, потом апскейлит его в латенте до большего разрешения и проходит вторым sampling- циклом с малым denoising strength. Решает главную проблему SD: на исходном большом разрешении модель «теряет композицию», на маленьком — мало деталей. Hires.fix даёт композицию маленького + детали большого.

Коротко

Коротко. Hires.fix — функция в AUTOMATIC1111 и аналог в ComfyUI, которая делает изображение в два шага. Первый — стандартная генерация в «комфортном» для модели разрешении (512×512 для SD 1.5, 1024×1024 для SDXL). Второй — апскейл в латенте + повторный sampling с denoise 0.3–0.6. Результат: композиция базового кадра + детали высокого разрешения. Стандартный workflow для финальных картинок.

Что это такое

Художник запускает Stable Diffusion 1.5 для иллюстрации. Промптmedieval village, cinematic. Хочет финальную картинку 1536×1024.

Попытка 1: сразу 1536×1024. Модель обучена на 512×512. На больших разрешениях ломает композицию: появляются дублированные башни, две головы у крестьянина, лишние двери в стенах. Тренировочный диапазон не предполагает таких размеров.

Попытка 2: 512×384, потом масштабирование в Photoshop. Композиция нормальная, но при увеличении в 3 раза картинка размылится — не хватает деталей.

Попытка 3: Hires.fix. Включает галочку. Модель сначала рисует 512×384 (композиция чистая), потом апскейлит latent в 1536×1024 и пропускает через sampler ещё раз с denoise=0.5. Получается картинка с правильной композицией и с проработанными деталями: камни в кладке, кружево листьев, выражение лиц.

В этом и суть hires.fix. Один проход = или композиция, или детали; два прохода = и то, и другое.

К 2026-му для SDXL и FLUX этот же подход называют «refiner pass» или «second-pass denoise», но идея та же.

Как это работает

Алгоритм Hires.fix:

  1. Первый проход. Стандартная генерация в базовом разрешении модели (512×512 / 1024×1024). Получается latent размером 4 × 64 × 64 (для SD 1.5).
  2. Апскейл latent'а. Через одну из встроенных функций — bicubic, bilinear, ESRGAN, Latent. Чаще всего Latent (nearest-exact) или R-ESRGAN 4x+ Anime6B.
  3. Повторный sampling с малым denoise. Sampler пробегает несколько шагов (обычно 10–20) с denoising_strength=0.3..0.6. Это «шлифует» детали, не разрушая композицию.

Ключевое — denoise strength на втором проходе:

  • 0.0 — ничего не делает, апскейл остаётся как был (мыло).
  • 0.2–0.4 — лёгкая шлифовка, чёткие границы, минимум артефактов.
  • 0.5–0.7 — глубокая прорисовка деталей, но риск сломать композицию.
  • 0.8+ — фактически новая генерация, исходная композиция уйдёт.

В ComfyUI hires.fix собирается из 3 нод: KSamplerUpscale Latent → второй KSampler. В AUTOMATIC1111 это одна галочка с настройками.

Пример на практике

Иллюстратор делает обложку для книги. SDXL, RTX 4070. Финальное разрешение — 1536×2048 (книжный портрет).

Без hires.fix. Запускает сразу 1536×2048. Получается: один из персонажей с третьей рукой, второй — без головы. Композиция плохая.

С hires.fix.

  1. Первый проход: 1024×1366 (соотношение 3:4 при базе 1024). 35 шагов sampler'а Euler A, CFG 7. Получает чистый портрет двух героев, композиция как нужно.
  2. Latent upscale: ×1.5 → 1536×2048.
  3. Второй проход: 15 шагов, denoise 0.4. Детали проявляются: ткань платья, складки куртки, мелочи фона.

Время: первый проход 18 секунд, второй 12 секунд, итого 30. Без hires.fix одна генерация в 1536×2048 заняла бы 28 секунд, но с непригодным результатом.

ComfyUI workflow часто выглядит так: KSampler (35 steps) → VAE Decode → Upscale Image → VAE Encode → KSampler (15 steps, denoise 0.4) → VAE Decode. Две декодировки + одна повторная энкодировка нужны, потому что апскейлер работает с пикселями, а не с латентом.

С чем часто путают

  • Hires.fix и Upscaler — Upscaler (R-ESRGAN, 4x_NMKD) увеличивает уже готовое пиксельное изображение. Hires.fix включает upscaler внутри пайплайна и добавляет повторный sampling.
  • Hires.fix и Refiner — Refiner (в SDXL) это отдельная модель для финального прохода с тем же разрешением. Hires.fix меняет разрешение.
  • Hires.fix и img2img — img2img берёт внешнее изображение. Hires.fix работает с тем, что модель сама только что нарисовала.
  • Hires.fix и Tile — Tile (тайлинг) разрезает большое изображение на куски и обрабатывает по кусочкам. Hires.fix работает целиком, не нарезая.
  • Latent upscale и Image upscale — Latent работает в 8 раз меньшем разрешении (быстрее), Image — в полном пиксельном (точнее, но дольше).

Частые ошибки и заблуждения

  • «Hires.fix просто увеличивает картинку». Не просто. Это апскейл + повторный sampling, который дорисовывает детали в стиле модели.
  • «Чем выше scale, тем лучше». Не всегда. ×4 от базового разрешения часто ломает композицию или даёт артефакты. Стандарт ×1.5–×2.
  • «Denoise 0.7 даст больше деталей». Иногда. Чаще даёт «другую картинку» — модель перерисует вещи, которые на маленьком разрешении были иными.
  • «Hires.fix исправляет ошибки в анатомии». Может слегка. Но если на первом проходе у персонажа три ноги, hires.fix скорее «уточнит» три ноги, а не уберёт их.
  • «В FLUX hires.fix не нужен». Частично верно. FLUX рисует в 1024+ из коробки. Но для финального разрешения 2048+ всё равно нужен второй проход с малым denoise.

Связанные термины

  • Upscaler — компонент апскейла, используемый внутри hires.fix.
  • Denoising Strength — главный параметр второго прохода.
  • Refiner — отдельная модель для второго прохода в SDXL.
  • img2img — концептуально похожий процесс, но с внешним источником.
  • Latent Space — пространство, в котором происходит апскейл.
  • Steps — число шагов второго sampling'а.
  • Tile / Tiling — альтернативный подход для очень больших разрешений.

Частые вопросы

Какой апскейлер выбрать в hires.fix? Для реализма — 4x_NMKD-Siax_200k или 4x-UltraSharp. Для аниме — R-ESRGAN 4x+ Anime6B. Для общего использования — Latent (nearest-exact), он быстрее и работает прямо с латентом.

Какой denoise оптимален? 0.4 для большинства случаев. 0.3 если хочется минимальных изменений, 0.55 если нужна заметная прорисовка деталей. Выше 0.6 — риск сломать композицию.

Hires.fix работает с FLUX и SDXL? Да. В ComfyUI принцип тот же: первый KSampler, апскейл, второй KSampler. В AUTOMATIC1111 hires.fix исторически для SD, но Forge и SD.Next добавили поддержку SDXL и FLUX.

Сколько hires.fix занимает по времени? Примерно 60–80% от времени основного прохода. То есть полный пайплайн с hires.fix — в 1.6–1.8 раза дольше, чем простая генерация.

Можно ли использовать ControlNet с hires.fix? Да, но обычно ControlNet включают только на первом проходе для композиции. На втором проходе с малым denoise он чаще мешает, чем помогает.

Что лучше: hires.fix или генерация сразу в высоком разрешении? Hires.fix почти всегда. Прямая генерация в 1536+ на SD 1.5 ломает композицию, на SDXL — даёт «двух людей вместо одного». Hires.fix решает обе проблемы.

Главное

Hires.fix — это техника двух проходов: композиция в комфортном для модели разрешении, потом детали в финальном. Решает главный конфликт Stable Diffusion: или чистая композиция (на маленьком разрешении), или богатые детали (на большом). Первый проход даёт первое, второй — второе. Стандартные настройки: апскейл ×1.5, denoise 0.4, 15 шагов второго прохода. Включается одной галочкой в AUTOMATIC1111 и собирается тремя нодами в ComfyUI. Для финальных картинок — обязательная часть пайплайна.