Hy-Nomas: интерактивная модель мира от Tencent Hunyuan

ComfyUI Wikinews

Tencent Hunyuan выпустила Hy-Nomas: интерактивную модель мира с 8 шагами выборки, которая генерирует видео 720p под управлением текста и камеры, а порт для ComfyUI уже вышел.

Hy-Nomas — интерактивная модель мира от Tencent Hunyuan: вы описываете мир, а затем продолжаете управлять им текстовыми инструкциями и движениями камеры, пока модель продолжает генерировать. 21 октября 2026 года команда опубликовала веса, код вывода, обучения и разметки данных (tencent/Hy-Nomas | GitHub), а также онлайн-демо и отдельный бенчмарк. Порт для ComfyUI от сообщества появился днём позже.

Релиз ещё очень молод по счётчикам: 21 лайк на Hugging Face и 21 звезда на GitHub на момент написания. Всё ниже взято из карточки модели, репозитория и официальной галереи, а не из сторонних тестов.

Один мир, генерируемый сегментами

Hy-Nomas работает авторегрессивно по сегментам видео, а не по кадрам. Каждый сегмент очищается от гауссова шума в сжатом латентном пространстве модели, одновременно обращаясь к key/value-кэшу всех сегментов, созданных до него. Промпт текущего хода, траектория камеры и этот кэш — единственные входы, а внимание между сегментами причинное, поэтому для генерации сегмента никогда не нужен будущий.

Дистиллированная конфигурация выполняет 8 шагов удаления шума решателем Euler ODE при направлении текста и камеры 1.0 и выдаёт 720 × 1280 при 24 FPS. Длина сегмента задаётся в файле промпта: в JSON-запросе перечисляются segments с начальными и конечными метками времени, visual_description_long для открывающего сегмента, description_change для каждого следующего хода и contained_actions с собственными метками времени. Если задать inference.video_length=event, длины сегментов вычисляются по времени этих событий.

Официальная галерея показывает, как это выглядит на длинном прогоне. Это один 60-секундный клип clockwork-flight, собранный из пяти чисто текстовых ходов по 12 секунд каждый, со следящей камерой от третьего лица в CG-стиле:

На 1 сНа 30 сНа 48 с
1 с: «Механическая птица летит над крышами, впереди высокие шпили».30 с: «Она огибает арку и направляется к шестерням и конструкциям внутри башни».48 с: «Птица движется под шестернями над головой и синим светом внутри башни».

Шестисекундный фрагмент того же клипа, из хода, где птица влетает в часовую башню. Сгенерировано Tencent Hunyuan, записано из официальной галереи.

Управление камерой как полноценный вход

Движение камеры — не подсказка в промпте, а отдельный путь условия. Файл траектории содержит матрицы «камера-в-мир» c2ws формы [N, 4, 4] и внутренние параметры формы [N, 3, 3]; модель нормализует внешние параметры, группирует их по четыре видеокадра и разворачивает каждую группу во вход размерности 64, к которому видео-токены обращаются через cross-attention в каждом блоке с двумя потоками. Управление доступно в двух масштабах: trajectory_translation_scale по умолчанию равен 1.0, а trajectory_rotation_scale — 2.5.

Текст и камера также могут чередоваться в рамках одного прогона. Галерея разделяет свои примеры по стилю (реальная съёмка, CG, видеоигра, анимация и аниме) и по перспективе (от первого лица, следящая от третьего лица, наблюдатель от третьего лица), а демо позволяет удерживать WASD и стрелки или тянуть мышь, чтобы двигаться по сгенерированному миру, при этом движение записывается при 24 FPS и воспроизводится на следующем ходе.

Вождение от первого лица

Пример от первого лица из галереи, circuit-drive: уличная трасса, вид из кокпита гоночного автомобиля. Сгенерировано Tencent Hunyuan.

Внутри модели

Архитектура Hy-Nomas

Схема архитектуры из репозитория релиза: текст, латентные представления видео и траектории камеры подаются в двухпоточные блоки MMDiT.

СвойствоКонфигурация
Основа54 двухпоточных блока MMDiT, без однопоточных блоков
Размер скрытого слоя2 048, 16 голов по 128 измерений
Feed-forwardРасширение в 4 раза, промежуточный размер 8 192
Латентные представления32 канала на входе и выходе, патч 1 × 1 × 1
Кодирование положения3D RoPE, размеры [16, 56, 56], theta 256
Текстовое условиеСкрытые состояния Qwen2.5-VL-7B-Instruct размерности 3 584, двухслойный уточнитель токенов
Условие камерыЭмбеддинги внешних параметров через cross-attention в двухпоточных блоках
ПредсказаниеСкорость потока, выборка Euler ODE

Видео хранится в латентах DCAE-V f32t4c32: 32 канала, 32-кратное пространственное сжатие по каждому направлению и 4-кратное временное сжатие. Декодированием занимается дообученный декодер PixelUMM с 36 слоями, скрытым размером 4 096, 32 головыми запросов и 8 KV-головами, который восстанавливает RGB в 4 × 16 × 16 тьюблетах по временным окнам в 10 латентных кадров с перекрытием в 5 кадров. Это декодирование выполняется за один шаг и отдельно от 8 шагов удаления шума в DiT.

Конфигурация для одной RTX 4090

Эталонная установка распределяет одну группу вывода по восьми GPU с 8-кратным параллелизмом по последовательности и распределённым декодированием. Вторая конфигурация рассчитана на одну RTX 4090, и все изменения касаются управления памятью:

  • Веса DiT и закэшированные ключи и значения хранятся в INT8, при этом линейные слои и внимание по-прежнему вычисляются в BF16.
  • Декодер PixelUMM работает в FP8 через ядра CUTLASS, а в DiT используется FlexAttention.
  • Текстовый энкодер, DiT и декодер перемещаются на GPU для своего этапа и после него выгружаются на CPU.
  • История на GPU ограничена 18 историческими латентными кадрами, выбираемыми через temporal_context, а более старая история архивируется в системной RAM.

Карточка прямо говорит о компромиссах: системная RAM должна вмещать выгруженные модели и растущий архив истории, передача данных с CPU на GPU добавляет задержку, а бюджет истории не ограничивает память для текущего сегмента. Время на сегмент не публикуется, поэтому скорость на 4090 на момент написания не проверена.

Дообучение LoRA и сервис промптов

С релизом поставляются два адаптера. Cinematic LoRA предлагается как опциональный адаптер визуального качества для совместимого DiT с плавающей точкой, а Robotics LoRA обучен на наборе данных роботизированной руки RealSource-World и предназначен для слияния с дистиллированным DiT, чтобы усилить имитацию манипуляций в генерируемом мире. Загрузчик INT8 не может загрузить отдельную LoRA во время вывода, поэтому работа с адаптерами идёт через веса BF16 или FP32.

Репозиторий также содержит путь дообучения: подготовка данных SFT, офлайн-упаковка последовательностей для длинных последовательностей, затем обучение и слияние. Для веб-демо есть одна жёсткая зависимость: Nomas-PE, отдельный сервис, который превращает инструкцию пользователя в структурированный промпт генерации; офлайн-вывод может читать подготовленные файлы промптов и обходиться без него. Готовый Docker-образ (hynomasoss/hynomasoss:cu130) содержит PyTorch, FlashAttention и MagiAttention, что избавляет от ручной сборки ядер CUDA.

Hy-Nomas-Bench

Вместе с моделью команда выпустила Hy-Nomas-Bench — четыре бенчмарка с 280 тестовыми случаями, охватывающими многоходовое свободное текстовое взаимодействие, навигацию камерой, чередующееся управление текстом и камерой, а также пространственную память. Набор данных поставляется со структурированными промптами, последовательностями взаимодействия, таймлайнами клавиатуры и эталонными траекториями камеры, что делает его пригодным для оценки согласованности на длинном сгенерированном прогоне, а не на отдельных клипах.

Доступность

В этом релизе нет нативной поддержки ComfyUI: ни основных нод, ни перепаковки от Comfy-Org. Официальные пути — репозиторий GitHub с Docker-образом и размещённое интерактивное демо.

Для ComfyUI порт от сообщества Nynxz/ComfyUI-HyNomas появился 23 октября с конвертированными весами в nynxz/Hy-Nomas:

ФайлПапкаРазмер
nomas_dit_distilled_int8_convrot.safetensorsmodels/diffusion_models9,0 ГБ, INT8 ConvRot
nomas_dit_distilled_bf16.safetensorsmodels/diffusion_models17,1 ГБ, база для слияния LoRA
nomas_pixelumm_vae_bf16.safetensorsmodels/vae15,8 ГБ, декодер PixelUMM плюс энкодер DCAE-V

Порт загружает DiT через штатную ноду Загрузить модель диффузии, текстовый энкодер через Загрузить CLIP, используя собственный файл ComfyUI qwen_2.5_vl_7b.safetensors с типом qwen_image из Comfy-Org/Qwen-Image_ComfyUI, а декодер через Загрузить VAE, поэтому пользовательские ядра не нужны. Автор порта сообщает о примерно 21 секунде на 3-секундный ход на RTX 5090 с INT8-чекпоинтом при 1280 × 704, плюс около 4 секунд декодирования на окно. Считайте эти цифры измерением одного пользователя на порте, которому был один день, и не путайте их с целевыми показателями официальной конфигурации для 4090.

Комментарии

Войдите через GitHub, чтобы участвовать в обсуждении.

Загрузка комментариев…
Hy-Nomas: интерактивная модель мира от Tencent Hunyuan | ComfyUI Wiki