Hypernetwork

малая сеть, которая меняет сигнал внимания

Раздел
Адаптеры
Обновлено
11.08.26

Hypernetwork в генерации изображений — отдельный обучаемый модуль, который преобразует ключи и значения attention и добавляет к ним свою поправку. Базовую модель при таком обучении можно оставить замороженной, а силу эффекта менять при загрузке адаптера.

Коротко

Коротко. В экосистеме Stable Diffusion Hypernetwork — небольшой модуль, который подключается к attention и меняет проходящие через него ключи и значения. Обычно к исходному сигналу добавляется выход обученной малой сети, умноженный на коэффициент силы. Базовый checkpoint остаётся отдельным, а Hypernetwork должна быть совместима с его архитектурой.

Что это такое

Слово hypernetwork используется в двух близких, но не одинаковых смыслах.

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

В инструментах на базе Stable Diffusion этим словом обычно называют более конкретный адаптер для attention. Он хранит небольшие обучаемые сети и применяет их к внутренним представлениям модели во время генерации. Базовый checkpoint не заменяется: к нему подключается дополнительный файл.

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

Как меняются K и V

Attention работает с запросами, ключами и значениями — Q, K и V. В распространённой реализации Hypernetwork для генерации изображений маленькие сети преобразуют K и V, а затем их выход добавляется к исходным тензорам.

Упрощённо это можно записать так:

K' = K + Hₖ(K) × strength
V' = V + Hᵥ(V) × strength

Здесь Hₖ и Hᵥ — обученные малые сети, а strength — коэффициент их вклада. После сложения attention продолжает работу уже с изменёнными K и V.

Точные места подключения зависят от реализации. Один загрузчик может менять только определённые блоки, другой — ставить patch на несколько видов attention. Поэтому фраза «Hypernetwork всегда меняет только cross-attention U-Net» слишком узкая. Совместимость лучше определять по формату файла, размерам слоёв и коду конкретного загрузчика.

Что происходит при обучении

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

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

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

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

Что происходит при генерации

Загрузчик читает файл Hypernetwork, собирает малые сети нужных размерностей и подключает их к модели как patch. Когда attention получает K и V подходящего размера, patch вычисляет поправку и возвращает изменённые значения.

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

Базовая модель при этом остаётся отдельным объектом. Некоторые среды создают её копию с подключённым patch, чтобы исходный объект можно было использовать дальше без Hypernetwork.

Hypernetwork в ComfyUI

В ComfyUI для этого предусмотрена встроенная нода HypernetworkLoader. Она принимает объект MODEL, имя файла и коэффициент strength, а на выходе возвращает модель с подключённым patch.

Файлы ищутся в каталоге models/hypernetworks и в дополнительных путях, если они заданы в конфигурации. После добавления нового файла список иногда требуется обновить. Название категории в интерфейсе может меняться, поэтому надёжнее искать саму ноду по имени.

Типичная связь в графе выглядит так:

загрузчик checkpoint → HypernetworkLoader → сэмплер

Это встроенная возможность ComfyUI, а не обязательная сторонняя custom node. Сторонние ноды могут добавлять собственные форматы или управление несколькими адаптерами, но для базовой загрузки они не требуются.

Почему совместимость важнее расширения файла

Два файла с одинаковым расширением могут содержать разные структуры. Для Hypernetwork важны:

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

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

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

Чем отличается от LoRA

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

LoRA обычно представляет обновление матрицы слоя через произведение двух матриц низкого ранга. При применении это обновление добавляется к весам или вычисляется как эквивалентная добавочная ветвь.

Hypernetwork в распространённой Stable Diffusion-реализации применяет малую нейросеть к активациям attention — например, к K и V — и добавляет её выход к сигналу.

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

С чем ещё путают

  • Hypernetwork и полный checkpoint. Checkpoint содержит основную модель, Hypernetwork подключается к совместимой базе.
  • Hypernetwork и Textual Inversion. Textual Inversion обучает представление токена в пространстве текстового энкодера; Hypernetwork меняет внутренний сигнал attention.
  • Hypernetwork и DreamBooth. DreamBooth — способ персонализации модели через дообучение; результат может быть полным checkpoint или адаптером в зависимости от реализации. Это не название одного конкретного файла.
  • Hypernetwork и гиперпараметр. Гиперпараметр — внешняя настройка обучения, например скорость обучения. Гиперсеть — нейронный модуль.
  • Hypernetwork и исходная статья HyperNetworks. В статье основная идея — генерация весов другой сети. SD-формат использует название для своей attention-механики.

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

Считать Hypernetwork частью промпта. Тег в некоторых интерфейсах лишь включает внешний файл. Сам текст промпта не хранит параметры адаптера.

Ожидать совместимость со всякой моделью. Patch должен встретить ожидаемые размерности и точки подключения. Иначе эффект не определён.

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

Менять силу без контрольной серии. Полезно сравнивать несколько значений при одинаковых seed, промпте и остальных настройках. Так видно влияние именно Hypernetwork, а не случайность генерации.

Объявлять формат исчезнувшим. Он встречается реже многих LoRA-пайплайнов, но поддержка остаётся в распространённых инструментах, включая встроенный загрузчик ComfyUI. Точнее говорить о совместимости конкретного файла, а не о «смерти» формата.

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

Нужно ли изменять базовый checkpoint?

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

Можно ли использовать отрицательную силу?

Некоторые загрузчики разрешают отрицательные значения, математически меняя знак поправки. Это не гарантирует осмысленного «обратного стиля», поэтому результат проверяют на контрольной серии.

Почему один файл работает, а другой не загружается?

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

Можно ли заменить Hypernetwork на LoRA без изменения результата?

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

Главное

Hypernetwork в генерации изображений — отдельная малая сеть, которая добавляет обученную поправку к сигналам attention. Она не заменяет базовую модель и не является универсальным файлом для любой архитектуры. Понимание K/V, точки подключения и формата загрузчика помогает точнее оценивать совместимость, силу эффекта и воспроизводимость старых workflow.