Introduction

Tencent's Hy-Nomas world model now runs natively in ComfyUI on 12GB NVIDIA cards, thanks to ComfyUI-Hy-Nomas, an open-source node pack released on October 23 (UTC) that adds start-from-image worlds and a keyboard Drive mode. The renamed weights sit on Hugging Face, and on October 24 Tencent added an official BF16 Diffusers build of the distilled model.

We covered the Hy-Nomas launch yesterday: a video world model that generates one segment at a time while you steer it with text and camera paths. The catch was setup. Tencent's low-memory path targets a single RTX 4090 through Docker and config files. This port puts it in a graph most of you already have open.

What shipped

  • Tool: ComfyUI-Hy-Nomas (custom nodes) plus Hy-Nomas-ComfyUI (weight files)
  • Author: PedroMarinhoDev, community port of Tencent Hunyuan's Hy-Nomas
  • Also new: tencent/Hy-Nomas-Diffusers, Tencent's official BF16 Diffusers conversion with HyNomasModularPipeline
  • Modality: text, image, and camera path to a continuing video world
  • Access: open source. Node code is GPL-3.0; Tencent's model is Apache-2.0
  • Where to run it today: locally in ComfyUI 0.42 or newer on an NVIDIA GPU with 12GB+ VRAM
  • Status: the author labels it a work in progress, checked against Tencent's code

What the nodes add

  • Native ComfyUI model. The DiT loads as a normal ComfyUI MODEL, sampled by the stock KSampler (euler, simple, 8 steps, cfg 1) and streamed by ComfyUI's own memory management.
  • Start from an image. Hy-Nomas has no image input. The pack encodes your picture as the world's first segment, so later segments continue from it. The author is clear this isn't something Tencent trained, but says the look carries through in tests.
  • Camera control. Fly a path inside the node with W/A/S/D and the arrow keys, or type a timeline such as W 2, W+Left 1.5, idle 0.5.
  • Drive mode. Hold keys on the node's video and the world extends one short turn at a time, streaming frames back in. It isn't real time: a 1-second turn takes about 3.5 to 4 seconds at 832×480 on an RTX 4090.
  • Long worlds. Chain as many segments as you like. History beyond the last 18 latent frames moves to system RAM.

Hardware and speed

From the repo's own measurements on an RTX 4090, Tencent's two-segment fox example (10 seconds of video):

1280×704832×480

Total time

85 s

34 s

Decode share

42 s

19 s

With memory held back to simulate smaller cards at 1280×704, the author reports 89 s at 24GB, 91 s at 16GB, and 93 s at 12GB. The speed comes from running Tencent's INT8 weights on INT8 tensor cores (RTX 30-series and newer) and the decoder in FP8 (RTX 40-series and newer).

Budget the rest of the machine too: at least 32GB of system RAM (history grows about 5.9GB per 5-second segment at 1280×704) and about 27GB of disk.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/PedroMarinhoDev/ComfyUI-Hy-Nomas

hf download PedroMarinhoDev/Hy-Nomas-ComfyUI hy_nomas_distil_int8.safetensors --local-dir ComfyUI/models/diffusion_models
hf download PedroMarinhoDev/Hy-Nomas-ComfyUI hy_nomas_pixelumm_fp8.safetensors --local-dir ComfyUI/models/vae
hf download Comfy-Org/Qwen-Image_ComfyUI split_files/text_encoders/qwen_2.5_vl_7b_fp8_scaled.safetensors --local-dir ComfyUI/models/text_encoders

Restart ComfyUI, then drag in one of the five workflows from the repo's workflows/ folder: per-segment, one-node Generate World, start from image, camera control, or Drive. The author says the weight files are byte-identical to Tencent's INT8 DiT and FP8 decoder, so existing downloads work too.

Prompt it the way it was trained

The README's biggest practical tip: write worlds in Tencent's structured JSON. Loose follow-ups like "the fox sits down" are mostly ignored, and the subject keeps doing what it was doing. Name the subject as <|Subject1|>, set perspective_view and Style (one of which is literally video game), and wrap each action in tags with its own time range:

{"start_time": "00:05.000", "end_time": "00:07.500",
 "action_description": "<Action1><|Subject1|> stops beside the flowers and turns around to face the camera</Action1>."}

Local changes (flowers opening, light turning golden) land inside a segment. A sudden whole-scene swap doesn't: the author's "heavy snowstorm" test barely whitened the frame edges, because the model holds to its memory of the world. For camera moves, use the Camera Keys or Camera Recording nodes rather than a written camera sentence.

The Diffusers route

If you script instead of wiring nodes, Tencent's Hy-Nomas-Diffusers repo loads the transformer, decoder, Qwen text encoder, and scheduler through HyNomasModularPipeline. For now it needs a diffusers fork branch, per the model card:

pip install -e "diffusers[hy-nomas] @ git+https://github.com/jiaxiangc/diffusers.git@hy-nomas"

The card's example renders two 5-second segments at 1280×704 with 4 denoising steps each. It takes structured prompts directly and doesn't run the Nomas-PE prompt-enhancer service.

Licensing note

The ComfyUI weight repo flags that the PixelUMM decoder file (which also holds the encoder) falls under NVIDIA's One-Way Noncommercial License, research and evaluation only, even though Tencent releases Hy-Nomas itself under Apache-2.0. Check that before you put renders into a commercial project.

Conclusion

Within a day of launch, Hy-Nomas went from a Docker-and-config-file setup to cloning a node pack and dragging in a workflow. For game makers, the Drive node is the interesting part: it's the closest thing yet to steering an open, text-directable world model with WASD inside a tool you already use for asset work. It's slow and not a game engine, but for previs, mood tests, and pitching a level, a 12GB card is now enough to try it.

—Titus