Viggle Remake переснимает любое видео с двумя LoRA для H3
Viggle Remake это открытая пара LoRA для MiniMax H3, которая заменяет людей и персонажей или редактирует готовое видео: нарисуйте от одного до четырёх кадров, сохраните звуковую дорожку и запустите всё в ComfyUI даже на 12 ГБ.
Слева: исходный клип. Справа: тот же кадр с заменённым маскотом-ананасом, движение, камера и тайминг не тронуты.
Viggle развивает это направление с конца августа, с Viggle-Animate, который заменял персонажа в кадре по одному перерисованному кадру на сильно дистиллированном файнтюне H3 ref2va. Remake это то, что карточка модели называет «Viggle-Animate v2», анонсированным там, и отличий два: это LoRA на штатном трансформере H3, а не файнтюн, и она редактирует не только людей.
Два режима
Оба режима принимают исходный клип и от одной до четырёх референсных картинок, обозначаемых в промпте как <Picture 1> ... <Picture 4>. Эти референсы вы рисуете сами, либо поверх кадров, взятых из клипа, либо с нуля, и каждый из них можно закрепить за исходным кадром, с которого он нарисован.
swapзаменяет людей и персонажей, одного или нескольких сразу.editделает остальное: заменяет, удаляет или вставляет объекты, меняет фон, погоду или свет.
LoRA edit удаляет объекты из кадра, при этом движение камеры и остальная часть кадра остаются на месте.
Идентичность берётся из нарисованных кадров, а не из энкодера лиц или маски сегментации. Поэтому пайплайну не нужны оценка позы и трекинг, и поэтому же карточка модели прямо говорит, что не может проверить согласие: идентичность определяется только в той картинке, которую вы нарисовали.
Что это технически
Каждый режим это PEFT LoRA, ранг 256 и alpha 256, поверх 302 линейных слоёв трансформера FL2VA от H3, хранится в bf16, а четыре тензора proj_in / proj_out в fp32. Больше в базовой модели ничего не меняется; LoRA это дельта, применяемая при загрузке. В репозитории также лежат те же веса, переупакованные под имена слоёв ComfyUI, объединённые трансформеры int8 и GGUF и референсный сэмплер в inference/sample.py.
Звук переносится, а не генерируется. Выход сохраняет звуковую дорожку исходного клипа, поэтому беззвучный исходник даёт беззвучный результат, а аудиокодирование дополняется в конце, потому что штатное аудиокодирование ComfyUI обрезает дорожку до целых блоков по 800 сэмплов с обоих концов, сдвигая её относительно картинки до 400 сэмплов.
Путь через ComfyUI
ComfyUI поддерживает H3 нативно, поэтому пакет узлов закрывает только те четыре вещи, которые штатные узлы делают иначе. Он добавляет три узла, протестированных с ComfyUI 0.42.0:
- Viggle Remake Conditioning: принимает исходные кадры, аудио, до четырёх референсов, кадры закрепления и промпт.
- Viggle Remake Keyframe Until: превращает закреплённые референсы в ключевые кадры до заданной доли сэмплируемого диапазона.
- Viggle Remake Noise: воспроизводит стартовый шум референсного сэмплера для заданного seed.
В остальном граф штатный: LoraLoaderBypassModelOnly, BasicGuider, KSamplerSelect с euler, ManualSigmas, SamplerCustomAdvanced, два декодирования VAE, Create Video на 24 fps.
Об одной настройке стоит сказать отдельно, потому что она меняет не скорость, а результат. Обычный LoraLoaderModelOnly вливает LoRA в веса bf16, и в bf16 значительная часть обновления округляется: проект измерил, что в слоях внимания и MLP выживает лишь от 37 до 73 процентов, а объединённый рендер в примере swap на 7 процентов менее резкий (21.2 дБ против 24.7 дБ). LoraLoaderBypassModelOnly держит LoRA отдельной ветвью ценой 2-3 процентов дополнительного времени на рендер.
| swap | edit | |
|---|---|---|
| LoRA | viggle_remake_swap_comfyui.safetensors | viggle_remake_edit_comfyui.safetensors |
| ManualSigmas | 1.0, 0.990476, 0.965243, 0.923077, 0.8, 0.631579, 0.0 | 1.0, 0.983607, 0.96, 0.923077, 0.857143, 0.705882, 0.0 |
Карты поменьше: int8 и GGUF
Путь через bf16 требует одной карты на 80 ГБ и около 144 ГБ под базовую модель. Ниже этого каждый режим поставляется одним файлом трансформера, где LoRA уже объединена в fp32 и квантована, заменяя в графе и базовую модель диффузии, и загрузчик LoRA.
| файл | размер | загрузчик |
|---|---|---|
int8/viggle_remake_{swap,edit}_pruned_int8_convrot.safetensors | 21,0 ГБ | Загрузить модель диффузии (ядро) |
gguf/*-Q8_0.gguf | 22,3 ГБ | Unet Loader (GGUF) |
gguf/*-Q6_K.gguf | 17,6 ГБ | Unet Loader (GGUF) |
gguf/*-Q4_K_M.gguf | 14,3 ГБ | Unet Loader (GGUF) |
Таблица по картам от проекта, измеренная на примере edit с 226 кадрами и двумя закреплёнными референсами:
- 12 ГБ: Q4_K_M или Q8_0 с
--reserve-vram 8; int8 тянет только 124 кадра. - 16 ГБ: int8 при 832x480; Q4_K_M или Q6_K с
--reserve-vram 6; при 1280x736 Q4_K_M с--reserve-vram 10и 124 кадрами. - 24 ГБ: int8 или Q4_K_M при 832x480; Q4_K_M или Q8_0 при 1280x736 с
--reserve-vram 20. - 32-80 ГБ: int8 или Q8_0 без проблем при 832x480; при 1280x736 файл int8 упирается в нехватку памяти на 226 кадрах на картах 48 и 80 ГБ, а Q8_0 помещается на 24 ГБ с запасом.
Качество относительно референса bf16 плюс LoRA, по PSNR на каждом кадре: int8 даёт 27.2 дБ на swap и 46.8 дБ на edit, Q8_0 26.9 и 49.8, Q6_K 24.6 и 44.6, Q4_K_M 20.6 и 38.3. Колонка swap шумная: округление тех же весов bf16 вторым, чуть иным способом уже сдвигает этот рендер до 29.6 дБ, так что разница в несколько дБ здесь не рейтинг форматов.
Скорость
На одной B200 при 832x480, 226 кадрах и двух закреплённых референсах ComfyUI тратит около 95 секунд на рендер после загрузки моделей, примерно 13.5 секунды на шаг при шести шагах, против примерно 58 секунд для sample.py. Первый рендер вместе с загрузкой занимает 2.5-3 минуты. При 1280x736 шаг стоит 64-72 секунды, а рендер 510-585 секунд. Проект измерял только B200 и прямо об этом говорит; потребительские карты будут медленнее.
Ограничения
- Один рендер покрывает окно от 90 до 345 кадров (
17n+5, 24 fps); проект рекомендует до 294 кадров, около 12 секунд, а более длинные видео разбиваются на окна, которые MCP-сервер нарезает по границам планов. - Обязателен шестисекционный промпт H3, и его таймстемпы должны совпадать с числом кадров.
- Нарисованные кадры определяют идентичность и внешний вид; закреплённые кадры ещё и фиксируют композицию на этом кадре.
- Известные сбои: нечеловекоподобный персонаж в одном длинном плане, мелкие артефакты в мелких деталях и уход планов по времени, когда клип из нескольких планов рендерится без закреплений.
Пример swap из поставляемых рабочих процессов ComfyUI: 226 кадров, два референса, закреплённые на кадрах 12 и 184.
Пример edit: ветряки уходят из кадра, а панорама и свет остаются.
Доступность
Веса, LoRA, файлы int8 и GGUF, пакет узлов и рабочие процессы лежат на Hugging Face, рядом COMFYUI.md, PROMPTING.md и MODIFICATIONS.md. Полный репозиторий занимает около 210 ГБ, поэтому руководство для ComfyUI скачивает только подмножества comfyui/ и examples/inputs/. Релиз опубликован 4 ноября 2026 года и в тот же день анонсирован @viggleai; в карточке нет сравнения с другими моделями редактирования, так что все числа выше получены самим проектом.
Комментарии
Войдите через GitHub, чтобы участвовать в обсуждении.