Hires.fix

hires.fix — увеличение между двумя проходами диффузионной генерации

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

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

Коротко

Коротко. Hires.fix — двухпроходная техника генерации. Первый проход создаёт цельный базовый кадр. Затем изображение или его латентное представление увеличивается, получает часть шума и снова проходит через диффузионную модель. Второй проход добавляет фактуры и мелкие формы, но может изменить лицо, одежду, предметы и другие детали первого кадра.

Что это такое

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

  1. модель создаёт базовый кадр;
  2. кадр увеличивается до целевого размера;
  3. в увеличенное представление добавляется шум;
  4. модель снова удаляет шум, опираясь на исходный кадр и текстовое условие.

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

Это не гарантированное разделение обязанностей. Второй проход видит всю сцену и тоже способен менять композицию. Просто при умеренном количестве шума исходный кадр заметно ограничивает его свободу.

Зачем нужны два прохода

У генеративной модели есть привычный масштаб объектов и связей, сложившийся во время обучения. Если резко увеличить рабочее поле, знакомая структура может повториться несколько раз: на месте одного окна появляются два, узор клонируется, а персонаж получает лишние детали.

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

Однако современные модели обучаются на разных разрешениях и соотношениях сторон. Поэтому Hires.fix не является обязательным лекарством от любого большого кадра. Его ценность зависит от конкретной модели, желаемого размера и характера сцены.

Первый проход

Базовый кадр должен содержать всё, что важно сохранить дальше. Если на нём уже перепутаны руки, исчез предмет или сломана перспектива, второй проход может аккуратно детализировать именно эту ошибку.

На первом этапе особенно важны:

  • расположение крупных объектов;
  • позы и силуэты;
  • направление света;
  • соотношение переднего и заднего плана;
  • общий цветовой ритм;
  • исходное соотношение сторон.

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

Увеличение между проходами

Промежуточное увеличение выполняется в пикселях или в латентном пространстве.

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

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

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

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

Шум перед вторым проходом

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

Параметр, который регулирует эту долю преобразования, часто называют denoising strength или просто strength.

  • небольшая сила удерживает исходные формы, но добавляет мало новой фактуры;
  • средняя оставляет композицию узнаваемой и заметно перерабатывает детали;
  • высокая даёт модели больше свободы и повышает риск изменения лиц, поз, надписей и предметов.

Универсальной границы между этими режимами нет. Одна модель заметно меняет кадр уже при небольшом шуме, другая дольше держится за исходник. На результат также влияют sampler, расписание шума, число доступных шагов и способ кодирования изображения.

Что сохраняется, а что может измениться

Лучше всего обычно удерживаются крупные силуэты, контрастные границы и основные цветовые пятна. Меньше определённости остаётся у небольших и неоднозначных участков:

  • черт лица вдали;
  • пальцев и тонких аксессуаров;
  • мелкого текста;
  • узоров на ткани;
  • листвы и шерсти;
  • отражений;
  • повторяющихся архитектурных деталей.

Если исходный участок занимал несколько пикселей, у модели нет точного ответа, какой формы он был. Второй проход выбирает вероятный вариант. Поэтому крупная версия может выглядеть убедительнее, но не обязательно точнее.

Текстовое условие второго прохода

Во многих реализациях второй этап получает тот же промпт, что и первый. Иногда его можно изменить или дополнить описанием фактур и мелких объектов.

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

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

Память и время

Второй проход обрабатывает больше пространственных данных. Если ширина и высота растут, площадь увеличивается ещё быстрее. Вместе с ней растут активации, рабочие буферы и время вычислений.

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

Hires.fix почти всегда дороже одного базового прохода, потому что включает и увеличение, и дополнительное денойзинг-вычисление. Конкретная разница зависит от размеров обоих этапов и реализации.

Когда техника особенно заметна

Два прохода хорошо проявляют себя там, где крупная композиция уже удачна, а финальному изображению не хватает фактур:

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

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

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

  • С обычным upscaler. Upscaler увеличивает готовое изображение. Hires.fix после увеличения запускает ещё один генеративный проход.
  • С img2img. По механике второй этап близок к img2img, но исходником служит только что созданный базовый кадр. У img2img начальное изображение может прийти откуда угодно.
  • С refiner. Refiner улучшает результат отдельной моделью или стадией и не обязан менять размер. Hires.fix определяется увеличением между проходами.
  • С outpainting. Outpainting расширяет сцену за прежние границы. Hires.fix обычно сохраняет поле зрения и увеличивает всю композицию.
  • С повышением резкости. Резкость усиливает локальный контраст. Второй диффузионный проход способен создавать новые формы и фактуры.
  • С тайловой обработкой. Тайлы описывают способ уложить большой кадр в память. Они могут быть частью Hires.fix, но не определяют саму технику.

Частые ошибки

  • Ожидать исправления базовой композиции. Второй проход часто сохраняет и усиливает исходную проблему.
  • Слишком сильно зашумлять увеличенный кадр. Деталей становится больше, но предметы и лица начинают меняться.
  • Слишком слабо зашумлять. Результат остаётся похожим на обычное растянутое изображение.
  • Менять соотношение сторон без отдельного решения. Растяжение, обрезка и дорисовка краёв дают разные кадры.
  • Оценивать только общий вид. Мелкие лица, руки, текст и повторяющиеся узоры могут испортиться незаметно на уменьшенном превью.
  • Считать латентное увеличение полноценным восстановлением. Оно меняет размер представления, а новые детали создаёт второй проход.
  • Игнорировать расход памяти. Увеличение каждой стороны заметно повышает объём промежуточных данных.
  • Принимать одинаковый seed за гарантию идентичности. Размер, расписание шума и второй проход меняют траекторию генерации.

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

Hires.fix — это просто апскейл?

Нет. Увеличение — промежуточный этап. После него модель снова денойзит изображение и создаёт детали.

Почему лицо изменилось на втором проходе?

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

Второй проход всегда работает в латентах?

Само диффузионное денойзинг-вычисление обычно идёт в представлении модели, но промежуточное увеличение может быть латентным или пиксельным с повторным кодированием.

Можно ли изменить промпт между проходами?

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

Почему после увеличения повторяются окна или узоры?

Повторяющиеся структуры могут появиться из-за масштаба, способа увеличения, ограниченного контекста или тайловой обработки. Второй проход иногда усиливает этот паттерн вместо исправления.

Hires.fix нужен любой современной модели?

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

Чем Hires.fix отличается от повторного img2img вручную?

По сути это удобная сборка той же идеи: базовая генерация, увеличение и частичное img2img-преобразование. Различия появляются в том, какие данные и настройки реализация переносит между этапами автоматически.

Главное

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