У MiniMax H3 есть знакомая беда: чем быстрее действие, тем охотнее модель превращает руки, ноги и оружие в резиновую лапшу. Японский автор Kamimoto решил не вылавливать такие кадры вручную и протестировал ComfyUI-MAINodes Motion Lab — систему, которая сама ищет резкие движения и запускает второй проход исправления.
Результат не выглядит как магическая кнопка «сделать идеально». В некоторых сценах разница заметна только на стоп-кадре или в замедлении. Вся цепочка проходит автоматически: от первой генерации до финального видео на 24 fps. Ручной выбор кадров и повторная постановка Queue не нужны.
Почему MiniMax H3 ломает быстрые сцены
В разборе Kamimoto причина описана через временную компрессию latent-представления. Один latent token, по его интерпретации, покрывает четыре кадра по времени. Если за эти четыре кадра персонаж успевает развернуться, махнуть мечом или сделать кувырок, модели приходится удерживать слишком резкую смену позы в маленьком временном участке.
Отсюда знакомые артефакты: вытянутые конечности, смазанные контуры, расплывшееся лицо, странные пальцы и оружие, которое будто продолжает движение за пределами кадра. Простая повторная денойзинг-обработка здесь помогает не всегда. Когда модель изначально не смогла нормально описать смену позы, повторный проход по тому же проблемному участку может сохранить ошибку.
Ключевая идея MAINodes: сначала сделать резкое движение временно более медленным, потом перерисовать его и вернуть исходную скорость.
Как работает MAINodes Motion Lab
Motion Lab не дообучает MiniMax H3. Он меняет порядок обработки во время инференса. Сначала создаётся обычный базовый ролик. Затем система анализирует, где движение меняется слишком резко, и отправляет на дополнительный проход только эти области.
Внутри схема выглядит так: • Pass 1 — базовая генерация видео из изображения и промпта. • H3 Jerk Oracle — поиск участков с резким изменением движения. • H3 Time Smear — временное дублирование кадров, то есть искусственное замедление проблемной зоны. • H3 Audio Smear — синхронное растягивание звука, чтобы голос и эффекты не уехали. • Pass 2 — V2V-перегенерация растянутого ролика с частичным denoise. • H3 Exact Recover и Audio Recover — удаление добавленных кадров и возврат к исходной скорости. • H3 Streamed Blocks — обработка токенов чанками, чтобы не упереться в нехватку VRAM.
Самая интересная часть — Jerk Oracle. Jerk в физике означает скорость изменения ускорения, то есть третью производную положения. Здесь это способ найти участки, где временная динамика latent слишком резко меняется. Oracle строит hold-map: карту, показывающую, какие кадры и насколько нужно удержать.
Пользователю не приходится смотреть весь ролик в поисках проблемных кадров. Это главный практический выигрыш. Система сама решает, где нужен второй проход, а спокойные участки не гоняет повторно без причины.
Настройки теста на RTX 4070 с 12 ГБ
Kamimoto взял за основу опубликованный motion_pipeline_lowvram.json, но заменил конфигурацию REF2VA W4A8 на I2V-схему с FL2VA INT8 ConvRot. Логика автоматического обнаружения и двух проходов сохранилась.
Железо — NVIDIA GeForce RTX 4070 с 12 ГБ VRAM. Видео собиралось в разрешении с короткой стороной 720 пикселей. Соотношение сторон исходного изображения сохранялось, поэтому встречались размеры 720×1052 и 720×1252. Генерация и коррекция шли на 124 кадрах, а в итоговый файл оставляли первые 120: это 5 секунд при 24 fps.
Основные параметры первого прохода: FL2VA INT8 ConvRot, 12 шагов, linear_quadratic, gradient_estimation и seed 20260901. Второй проход использовал Turbo LoRA 4step v1.0 bf16, strength_model=1.0, beta total_steps=6 и seed 20260902. Из-за preset faithful detail 0.50 фактическая выборка во втором проходе составила 3 шага.
Для поиска движения автор указал q=0.75, d_max=4, bridge=8, включил ramp и оставил abstain_below=0. Time Smear работал с dilation=4 и hold-map от Oracle. Streamed Blocks использовал kv_store=bf16 (exact), final_layer_chunk=0, а q_chunk, kv_chunk и mlp_chunk были выставлены в 8192 при min_tokens=32768.
На Windows настройки по умолчанию вызвали ошибки, связанные с прямым вызовом Torch Flash Attention и wrapper выходного слоя. Автору не пришлось переписывать код Torch или самих нодей: помогли изменения в workflow — kv_store=bf16 (exact) и final_layer_chunk=0.
Что изменилось в результате
В японском материале сравнения собраны в объединённых роликах: сначала пять секунд в обычной скорости, затем те же фрагменты в замедлении 4×. При обычном просмотре улучшения местами почти теряются. Автор прямо отмечает: в отдельных сценах оба варианта выглядят хорошо, а заметная разница появляется только после остановки кадра или увеличения.
Лучше всего второй проход проявился на деталях рук, кончиках пальцев, глазах и лице. В одной сцене с вращением улучшилась проработка руки и уменьшилось ощущение смазанности. В другой разница была слабой, вероятно потому, что движения оказалось недостаточно много. MAINodes не улучшает весь ролик одинаково. Он точечно добавляет второй шанс там, где видит резкую динамику.
Это важная оговорка. Перед нами визуальная оценка Kamimoto, без измерения числа исправленных артефактов. Автор сам пишет, что некоторые изменения заметны только в замедлении. Поэтому Motion Lab стоит воспринимать как автоматизацию ремонта, а не как гарантию идеальных пальцев.
Сколько памяти и времени съедает второй проход
Пиковое потребление VRAM в тестах держалось примерно на уровне 11,5–12,0 GiB. Для RTX 4070 на 12 ГБ это почти потолок, но Streamed Blocks смог разделить обработку и избежать OOM. Для локального видео хороший сигнал: схема, требовательная к памяти, всё же помещается в потребительскую карту.
Скорость зависит от того, сколько резких участков найдено. Если активных зон много, Pass 2 работает дольше. Kamimoto отдельно заметил, что сцена с человеком, который держит книгу и делает боковое вращение, действительно потребовала заметной коррекции. Нежданно долго обрабатывалась и сцена с мечом в лунном свете.
Как применить MAINodes в своём workflow
Я бы собирал тестовый pipeline так: 1. Установить MAINodes и начать с motion_pipeline_lowvram.json. 2. Проверить, какая именно I2V-модель подключена. В тесте использовалась FL2VA INT8 ConvRot, а REF2VA W4A8 была в исходном примере. 3. Оставить первый Pass 1 для базовой генерации. 4. Подключить Jerk Oracle и Time Smear, не выбирая кадры вручную. 5. Добавить Audio Smear, если в ролике есть речь, липсинк или важные звуковые эффекты. 6. Запустить Pass 2 через V2V с Turbo LoRA и частичным denoise. 7. Проверить, что Exact Recover вернул исходные 24 fps и нужную длину. 8. На Windows при ошибках сначала попробовать kv_store=bf16 (exact) и final_layer_chunk=0.
Для проверки результата не смотрите только обычный preview. Поставьте рядом Pass 1 и Pass 2, замедлите проблемный фрагмент в 4 раза и отдельно проверьте лицо, кисти, ступни, оружие и контуры одежды. Именно там эффект заметнее всего.
Первое ограничение — дополнительное время. Если в сцене почти нет быстрых движений, второй проход может дать минимальный визуальный выигрыш. В японском тесте несколько примеров выглядели почти одинаково до и после коррекции.
Локальные AI-workflow для генерации видео собрал в Workflow
Источникnote.com
