Hires.fix
hires.fix — двухэтапная генерация с увеличением разрешения
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:
- Первый проход. Стандартная генерация в базовом разрешении модели (512×512 / 1024×1024). Получается latent размером
4 × 64 × 64(для SD 1.5). - Апскейл latent'а. Через одну из встроенных функций — bicubic, bilinear, ESRGAN, Latent. Чаще всего
Latent (nearest-exact)илиR-ESRGAN 4x+ Anime6B. - Повторный 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 нод: KSampler → Upscale Latent → второй KSampler. В AUTOMATIC1111 это одна галочка с настройками.
Пример на практике
Иллюстратор делает обложку для книги. SDXL, RTX 4070. Финальное разрешение — 1536×2048 (книжный портрет).
Без hires.fix. Запускает сразу 1536×2048. Получается: один из персонажей с третьей рукой, второй — без головы. Композиция плохая.
С hires.fix.
- Первый проход: 1024×1366 (соотношение 3:4 при базе 1024). 35 шагов sampler'а Euler A, CFG 7. Получает чистый портрет двух героев, композиция как нужно.
- Latent upscale: ×1.5 → 1536×2048.
- Второй проход: 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. Для финальных картинок — обязательная часть пайплайна.