Проблема: почему видео-инпейнтинг «дрожит»
При попытке заменить объект в видео (например, машину на собаку) стандартные подходы часто приводят к артефактам. Если каждый кадр обрезать вокруг движущегося субъекта отдельно, модель видео-диффузии считывает микро-сдвиги кадра как движение камеры. Это вызывает визуальный «дрож» (jitter) и размытие границ.
Пакет MaskVidExperiments от разработчика drozbay предлагает архитектурное решение: вместо обработки каждого кадра изолированно, система создает стабильный «batch» (набор кадров), где обрезка вокруг объекта вычисляется глобально для всей клипы. Это позволяет маске и кадру двигаться синхронно с объектом, а не реагировать на шум сегментации.
Ключевые ноды и их функции
Основной пайплайн состоит из трех этапов: очистка маски, стабильная обрезка (Subject Crop) и обратная вставка (Subject Uncrop). Ниже приведено сравнение режимов обрезки, которые предлагает пакет:
| Режим обрезки | Описание поведения | Когда использовать |
|---|---|---|
| combined | Статичная рамка с отступами, покрывающая весь путь объекта за всю клипу. | Для коротких клип или когда объект не выходит за пределы кадра. |
| tracked | Рамка фиксированного размера. Она стоит на месте, пока объект в ней, и сдвигается минимально, если объект приближается к краю. | Для сохранения стабильности фона и плавного слежения. |
| zoomed | Рамка следует за объектом, масштабируясь так, чтобы он занимал постоянную долю кадра. Требуется ресемплинг. | Когда важно сохранить размер объекта, а не фона. |
Решение проблемы масок: Mask To Latent Space
Одна из самых частых ошибок при инпейнтинге видео — использование пиксельных масок напрямую. При их трилинейном ресемплинге в ComfyUI границы размываются, и «загрязнение» (bleed) от исходного объекта просачивается в результат.
Нода MVEx Mask To Latent Space решает это, приводя маску к разрешению латентного пространства VAE. Она учитывает пространственное и временное сжатие (включая специфичные для моделей типа MiniMax H3 или LTX-2 циклы кадров). Результат — чистая инпейнтинг-маска, где границы жестко привязаны к токенам модели.
Дополнительные возможности
- Audio Mask To Latent: Позволяет маскировать и регенерировать только определенные временные диапазоны в аудио-латентах (для моделей с AV-латентами, таких как MiniMax H3, LTX-2). Нода автоматически накладывает маску шума, так как стандартный Set Latent Noise Mask не работает с аудио-частью совместных латентов.
- Differential Diffusion (Soft): Мягкая версия дифференциальной диффузии. В отличие от стоковой ноды, которая превращает серую маску в жесткую бинарную, эта версия сохраняет мягкие края (feathered edges) на каждом шаге денoising, что критично для временной стабильности видео.
- Mask Cleanup: Удаление «шума» сегментации (мелких пятен и мерцаний) с сохранением реальных мягких краев объекта.
Технические детали и установка
Пакет не требует внешних зависимостей, кроме самого ComfyUI. Он совместим с версиями ComfyUI v0.15.0 и новее.
Установка осуществляется стандартным способом через терминал:
cd ComfyUI/custom_nodes
git clone https://github.com/drozbay/MaskVidExperiments
Лицензия: GNU GPLv3. Код частично написан с помощью ИИ (Claude Fable 5), но архитектура является независимой реализацией, вдохновленной идеями из ComfyUI-KJNodes и ComfyUI-Inpaint-CropAndStitch, но адаптированной специально для видео-пайплайнов.
Источник: Github ↗
