Model Merge

model merge — смешивание весов двух моделей в одну

Раздел
Обучение
Обновлено
18.05.26

Model Merge — объединение весов двух или нескольких моделей в одну новую. Применяется в Stable Diffusion и SDXL: смешивают чекпоинты, чтобы получить стиль и навыки сразу нескольких моделей в одном файле. Самые частые методы — Weighted Sum, Add Difference и Block Merge. Делается за минуты, не требует тренировки на GPU и работает без датасета.

Коротко

Коротко. Model Merge — это смешивание весов двух чекпоинтов Stable Diffusion в один новый файл. Берут «Модель А × 0.6 + Модель Б × 0.4» — и получают гибрид: стиль одной модели, анатомию другой. Делается за пару минут в ComfyUI или AUTOMATIC1111, никаких видеокарт-монстров не нужно. На Civitai большинство популярных «миксов» (DreamShaper, RealisticVision, AnythingMix) — это десятки слоёв merge.

Что это такое

Художник скачал две модели Stable Diffusion. Первая — RealisticVision: фотореалистичные лица, кожа с порами, пыль на свету. Вторая — AnythingMix: аниме-стилизация, чистая графика, выразительные глаза. Каждая хороша по-своему, но ни одна не делает того, что нужно автору: «фотореалистичный портрет с лёгкой стилизацией».

Можно тренировать новую модель неделю на 100 тысячах картинок. А можно за полторы минуты слить веса:

new_model = RealisticVision × 0.7 + AnythingMix × 0.3

Файл получается тот же по размеру (~2 ГБ для SD 1.5, ~6 ГБ для SDXL), но поведение — гибридное. Лица остаются фотореалистичными, но с лёгкой выразительной стилизацией глаз и губ.

Это и есть model merge — арифметика над тензорами весов. Никакой тренировки. Никакого датасета. Просто перемножение чисел внутри файлов.

История термина началась в 2022-м, когда сообщество Stable Diffusion открыло для себя AUTOMATIC1111 с вкладкой «Checkpoint Merger». За полгода появились сотни «миксов»: художники мешали модели как краски на палитре. К 2026-му больше 80% популярных моделей на Civitai — это merge-композиции, иногда из 5–10 источников.

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

Модель — это огромный набор тензоров. У SDXL — около 2,5 миллиарда параметров, разложенных по слоям U-Net, текстовому энкодеру и VAE. Merge перебирает каждый параметр и применяет одну и ту же формулу.

Три основных метода:

  1. Weighted Sum (взвешенное среднее). Самый простой: new = α·A + (1−α)·B. Параметр α от 0 до 1 — пропорция первой модели. При α=0.5 модели смешиваются поровну.
  2. Add Difference. Берёт «разницу» между двумя моделями и добавляет к третьей: new = A + α·(B − C). Удобно, когда есть базовая модель C, файнтюн на её основе B, и нужно перенести «дельту» обучения на другую базу A.
  3. Block Merge (или Hierarchical Merge). Тонкий контроль: разные слои U-Net мешаются с разными пропорциями. Например, нижние слои (отвечают за композицию) — 70% модели А, верхние (детали) — 30%. Дает огромную свободу, но требует понимания архитектуры.

После merge новый файл часто требует VAE-fix: стандартный VAE может оказаться «чужим» для смешанной модели и давать пересвет или цветовые артефакты. Решается подменой VAE на родной от одной из исходных моделей.

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

3D-художник делает раскадровку для рекламы. Нужны портреты в стиле «гламурный реализм»: фотография, но с лёгкой иллюстративной обработкой, как в журнальной рекламе.

Стек ComfyUI:

  1. Скачивает три модели: RealVisXL (фотореализм), JuggernautXL (универсальный), Pony Diffusion XL (стилизация и динамика).
  2. Открывает ноду CheckpointMerger или скрипт sd-scripts merge_models.py.
  3. Первый merge: RealVis × 0.6 + Juggernaut × 0.4. Сохраняет как realjugger.safetensors. Размер 6,9 ГБ.
  4. Второй merge: realjugger × 0.85 + Pony × 0.15. Получает glamglow.safetensors.

Тестирует на промпте studio portrait, model agency look, soft window light. Результат — фотореалистичные лица с чуть «нарисованным» свечением. Pony в малой пропорции добавил выразительности позам, не сломав реализм.

Файлы сохраняются как обычный .safetensors. Их можно загрузить в ComfyUI, AUTOMATIC1111 или поделиться на Civitai. Никаких прав на исходные модели merge не нарушает, если только их лицензия это разрешает — у некоторых коммерческих чекпоинтов merge явно запрещён в EULA.

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

  • Model Merge и Fine-tuning — fine-tuning меняет веса через тренировку на датасете (час–сутки на GPU). Merge просто смешивает уже готовые веса (минута на CPU).
  • Model Merge и LoRA — LoRA добавляет маленький слой поверх модели в момент инференса. Merge переписывает веса самой модели в новый файл. После merge LoRA не нужна.
  • Model Merge и Model Soup — Model Soup это академическое название для усреднения весов нескольких чекпоинтов одной тренировки (для уменьшения шума). Это частный случай merge.
  • Weighted Sum и Add Difference — Weighted Sum смешивает две модели, Add Difference переносит «изменение» с одной пары на другую. Разные применения.
  • Merge и Quantization — quantization уменьшает размер файла за счёт точности (FP16 → INT8). Merge меняет поведение, не размер.

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

  • «Merge сильнее, чем тренировка с нуля». Не работает. Merge — это интерполяция между уже выученными точками. Если ни одна из исходных моделей не умеет делать что-то — гибрид тоже не научится.
  • «Чем больше моделей в миксе, тем лучше». Не всегда. После 4–5 уровней merge модель становится «средней по больнице»: теряет характер всех источников и начинает галлюцинировать. Большинство удачных миксов — 2–3 модели максимум.
  • «Можно смешать SD 1.5 с SDXL». Нет. У них разное количество слоёв, разные размерности эмбеддингов. Merge возможен только внутри одного семейства архитектуры.
  • «Merge сохраняет лицензию исходных моделей». Часто да, но не всегда. У некоторых моделей merge коммерчески запрещён даже если оба источника разрешены. Читать EULA каждой исходной модели обязательно.
  • «После merge нужно опять тренировать». Нет, новый чекпоинт работает сразу. Но иногда полезно сделать LoRA-finetuning поверх — чтобы «закрепить» характер микса.

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

  • Checkpoint — основной файл с весами модели; объект merge.
  • Fine-tuning — альтернатива merge, требует датасет и GPU.
  • LoRA — облегчённый способ менять поведение модели без merge.
  • Safetensors — формат, в котором обычно хранятся merge-результаты.
  • Block Merge — продвинутый merge с разными пропорциями по слоям.
  • VAE — после merge может потребоваться подмена.
  • Civitai — главная площадка для публикации merge-моделей.

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

Сколько занимает merge по времени? В ComfyUI на обычном CPU — 30–90 секунд для SD 1.5, 2–4 минуты для SDXL. Видеокарта не нужна, операция идёт в RAM.

Сколько RAM нужно для merge SDXL? Минимум 16 ГБ системной памяти, комфортно — 32 ГБ. Чекпоинты грузятся целиком в RAM, две модели по 6,5 ГБ + рабочая память съедают много.

Можно ли смержить с LoRA? Да, есть специальная операция «Merge LoRA into Checkpoint»: она встраивает LoRA внутрь чекпоинта навсегда. После этого LoRA уже не нужна, но и отключить эффект нельзя.

Что такое «exotic merge»? Жаргон Civitai. Так называют миксы из 5+ источников с экспериментальными весами по слоям. Часто они дают красивые случайные эффекты, но плохо предсказуемы.

Безопасно ли качать merge с Civitai? Если файл в формате .safetensors — да, в нём нельзя выполнить код. Старые .ckpt-файлы потенциально опасны (использовали Python-pickle). По возможности всегда выбирайте safetensors-версию.

Как откатить плохой merge? Никак, это новый файл. Просто удалить и попробовать другие пропорции. Исходные модели не повреждаются — merge их не трогает, только читает.

Главное

Model Merge — это арифметика над весами моделей: пара минут вместо суток тренировки. Самый частый рецепт — Weighted Sum двух чекпоинтов в пропорции 60/40 или 70/30. Block Merge даёт тонкий контроль по слоям, но требует понимания архитектуры. Главное правило — не смешивать больше трёх источников и держать долю «характера» добавок в диапазоне 15–35%. Это превращает чужие модели в инструмент для собственного визуального стиля, не требуя ни датасета, ни GPU-кластера.