Hy-Nomas:腾讯混元开源的自由交互世界生成模型 · 干货攻略

  • 链接: https://x.com/_akhaliq/status/2115563792180588875
  • 分类: x-tips
  • 来源: X @_akhaliq(Akhalq,AI 资讯搬运型账号)
  • 作者: Jay
  • 更新: 2026-10-29
  • 仓库: https://github.com/Tencent-Hunyuan/Hy-Nomas (Apache-2.0)
  • 权重: https://huggingface.co/tencent/Hy-Nomas
  • 技术报告: https://arxiv.org/abs/2610.36729
  • 官方 Demo: https://hy-nomas.hy.tencent.com/demo
  • 原帖指向的 Space: https://huggingface.co/spaces/tencent/hy-nomas

这是什么

@_akhaliq 于 2026-10-28 转推腾讯混元(Tencent Hunyuan)开源的 Hy-Nomas——一个「视频世界模型」(video world model),并给出两个链接:论文(t.co/by82MMznL9 → Hugging Face papers 页面)和在线应用(t.co/clt7ItswBD → huggingface.co/spaces/tencent/hy-nomas)。

它和普通「文生视频」的区别是:不是一次生成一段固定短片,而是让用户在一个持续生成中的世界里多轮交互。每一轮用户都可以用自由文本下指令(换物体、换风格、换场景、描述动作),或者用相机轨迹控制视角;模型用持久 KV cache 携带此前生成的历史,保证跨轮次的一致性。

按官方模型卡(tencent/Hy-Nomas README)的定义,核心组件为:

  • Segment-autoregressive DiT:分段的稠密多模态扩散 Transformer,推理配置为 54 个双流 MMDiT block,hidden size 2048,16 头 / 每头 128 维,FFN 4×(中间层 8192),latent 通道 32 进 32 出。
  • 文本编码器:取自 Qwen/Qwen2.5-VL-7B-Instruct 的语言模型部分,3584 维隐状态经两层 token refiner 投影到 DiT 的 2048 维空间。
  • 相机条件:extrinsics_attn 路径,归一化 4×4 外参矩阵按 4 帧一组展平为 64 维输入,在每个双流 block 内通过 cross-attention 注入视频流。
  • 视频解码器:微调后的 PixelUMM(36 层、4096 隐维、32 query 头 / 8 KV 头,RGB 按 4×16×16 tubelet 处理),把 DCAE-V f32t4c32 latent 解码成画面。
  • Prompt Enhancer(PE):Nomas-PE,在线 prompt 增强服务,把用户的自由指令翻成结构化生成 prompt(离线推理可直接读预写好的 prompt 文件,不依赖它)。

论文 arXiv:2610.36729(2026-10-27 上线)的核心方法描述是:把结构化视频字幕与动作感知的因果注意力对齐——描述性上下文(谁、在哪、什么风格)跨段持续可查,而动作指令被限制在其指定的时间窗内生效;训练用多阶段课程(先因果生成,再文本交互,再相机控制,再在模型自己生成的历史上训练),最后做扩散蒸馏。


核验来源

本文所有数字、命令、版本均取自以下官方出处(未使用二手推文数字):

  1. arXiv 技术报告 — https://arxiv.org/abs/2610.36729 (HTML: https://arxiv.org/html/2610.36729 )
  2. 官方 GitHub 仓库 README — https://raw.githubusercontent.com/Tencent-Hunyuan/Hy-Nomas/main/README.md
  3. 官方 Hugging Face 模型卡 — https://huggingface.co/tencent/Hy-Nomas/raw/main/README.md
  4. 官方评测集 Hy-Nomas-Bench — https://huggingface.co/datasets/tencent/Hy-Nomas-Bench

关键官方事实:

  • 输出规格:720×1280 @ 24 FPS;DiT 去噪 8 步(Euler ODE 采样);文本/相机 CFG 均为 1.0;随机种子默认 42;相机平移/旋转强度默认 1.0 / 2.5。
  • 标准推理需要 8 卡:configs/experiment/inference.yaml 默认 sp_size=8(8 路序列并行)+ 分布式 PixelUMM 解码。
  • 单卡方案:官方提供 configs/experiment/single_gpu_low_mem_inference.yaml,可在单张 NVIDIA GeForce RTX 4090 上跑,靠 INT8 DiT 权重、INT8 KV cache、FP8 解码器、滑窗历史(默认 18 个 latent frame 预算)、CPU offload、FlexAttention + CUTLASS FP8 实现。
  • 环境:官方强烈推荐预打包 Docker 镜像 hynomasoss/hynomasoss:cu130;手动安装需 Linux、Python 3.12+、uv、CUDA 13.0 Toolkit(nvcc)、C++ 编译器,all extra 含 PyTorch 2.10.0 (CUDA 13.0)、FlashAttention 2/3、MagiAttention。
  • 评测集规模:Hy-Nomas-Bench 共 280 个 test case、220 条参考相机轨迹,四个 split 覆盖多轮自由文本交互、相机导航、文本+相机混合控制、空间记忆;数据集包含结构化 prompt、交互序列、键盘时间线与参考轨迹,但不含生成视频、抽帧与评分。
  • 许可:仓库代码 Apache-2.0;官方对整体发布的表述是「开放权重 + 开源实现」,而非单一许可证完全自包含的包。

上手步骤

路线 A:先玩在线 Demo(零成本)

直接打开官方 Demo:https://hy-nomas.hy.tencent.com/demo 。输入一段世界描述开始生成,之后用文本指令继续改变世界,或用键盘方向键 / WASD 做相机移动。

原帖给的那个 Space(https://huggingface.co/spaces/tencent/hy-nomas )是社区在 HF 上的托管入口,页面本身信息很少;腾讯官方主入口仍是上面那个 hy-nomas.hy.tencent.com/demo。

路线 B:本地跑(Docker,推荐)

git clone https://github.com/Tencent-Hunyuan/Hy-Nomas.git
cd Hy-Nomas

# 官方推荐:预置环境的 Docker 镜像
export HY_NOMAS_IMAGE="hynomasoss/hynomasoss:cu130"
docker pull "$HY_NOMAS_IMAGE"
docker run --rm -it --gpus all --ipc=host --network=host \
  -v "$PWD:/workspace/Hy-Nomas" \
  -w /workspace/Hy-Nomas \
  "$HY_NOMAS_IMAGE" bash

手动安装则需要 Linux、Python 3.12+、uv、兼容的 NVIDIA 驱动、CUDA 13.0 Toolkit(nvcc)、C++ 编译器:

uv sync --extra all
source .venv/bin/activate

(all extra 含 PyTorch 2.10.0 + CUDA 13.0、FlashAttention 2、FlashAttention 3、MagiAttention;官方明确提示 attention kernel 编译耗时较长。)

下载权重

export HY_NOMAS_MODEL_DIR="/path/to/Hy-Nomas-models"
hf download tencent/Hy-Nomas --local-dir "${HY_NOMAS_MODEL_DIR}"

必须保持仓库目录结构(DiT/、VAE/、PE/)。关键资产:

  • DiT/distilled/diffusion_pytorch_model_ema_0_995.safetensors — 蒸馏 DiT(FP32),8 步推理 / Demo 主力,也是合并 LoRA 的基底。
  • DiT/distilled_int8/diffusion_pytorch_model_ema_0_995_int8.safetensors — INT8 量化版,供单卡低显存配置。
  • DiT/base_ar/diffusion_pytorch_model_fp32.safetensors — 非蒸馏基座,用于 segment forcing 式 LoRA 训练。
  • VAE/PixelUMM_FT/diffusion_pytorch_model.safetensors — 蒸馏 FP32 解码器;VAE/PixelUMM_FT_FP8/diffusion_pytorch_model_fp8.safetensors — FP8 版(单卡配置用)。
  • VAE/DCAE-V/dc-ae-v-1.0-f32t4c32-bf16.pt — 视频自编码器。
  • PE/ — Nomas-PE 在线 prompt 增强服务(Demo 必需,离线推理不依赖)。
  • LoRA 适配器:DiT/lora_weights/cinematic(画质)、DiT/lora_weights/dual_arm_robotics(基于 RealSource-World 机械臂数据集,增强机器人仿真能力)。

文本编码器 Qwen/Qwen2.5-VL-7B-Instruct 由 HuggingFace 自动下载并复用本地缓存;已有本地副本可加 model.text_encoder.model_name=/path/to/Qwen2.5-VL-7B-Instruct。

标准推理(8 卡)

bash scripts/inference/inference_from_config.sh configs/experiment/inference.yaml \
  dit_weight="$HY_NOMAS_MODEL_DIR/DiT/distilled/diffusion_pytorch_model_ema_0_995.safetensors" \
  model.vae.checkpoint="$HY_NOMAS_MODEL_DIR/VAE/PixelUMM_FT/diffusion_pytorch_model.safetensors" \
  inference.prompt="$HY_NOMAS_MODEL_DIR/examples/prompts.json" \
  inference.save_path=./outputs/distill

常用覆盖项:inference.video_size=[480,832](降分辨率)、inference.infer_steps_video=8、inference.solver_type=euler、inference.cfg_scale_video=1.0、inference.camera_cfg_scale=1.0、inference.seed=42;相机控制追加 inference.camera_trajectory=/path/to/camera.npz(该 .npz 内含 c2ws [N,4,4] 与 intrinsics [N,3,3])。

单卡 4090 低显存推理

bash scripts/inference/inference_from_config.sh configs/experiment/single_gpu_low_mem_inference.yaml \
  dit_weight="$HY_NOMAS_MODEL_DIR/DiT/distilled_int8/diffusion_pytorch_model_ema_0_995_int8.safetensors" \
  model.vae.checkpoint="$HY_NOMAS_MODEL_DIR/VAE/PixelUMM_FT_FP8/diffusion_pytorch_model_fp8.safetensors" \
  inference.prompt="$HY_NOMAS_MODEL_DIR/examples/prompts.json" \
  inference.save_path=./outputs/single_gpu

Diffusers 路线(最省事的多轮编程接口)

pip install -e "diffusers[hy-nomas] @ git+https://github.com/jiaxiangc/diffusers.git@hy-nomas"
from diffusers import HyNomasModularPipeline
pipe = HyNomasModularPipeline.from_pretrained("tencent/Hy-Nomas-Diffusers")
pipe.load_components(dtype=torch.bfloat16)
pipe.to(device="cuda", dtype=torch.bfloat16)
pipe.transformer.enable_reference_attention(text_backend="flash_varlen", deterministic=True)

videos = pipe(
    prompt=[json.dumps(p) for p in prompts],  # 每轮一个结构化 prompt
    height=704, width=1280, num_frames=240,
    segment_latent_lengths=[30, 30], fps=24,
    num_inference_steps=4, generator=torch.Generator("cpu").manual_seed(42),
    output="videos",
)

离线 prompt JSON 格式

一个 request 可含多个 segments;segments 与 contained_actions 的 start_time / end_time 使用 MM:SS.mmm 格式。第一段用 visual_description_long 描述初始世界,后续段用 description_change 描述演化:

[
  {
    "test_id": "forest_world",
    "Style": "Cinematic fantasy",
    "perspective_view": "Third-person view",
    "subject_list": [
      {"subject_id": "fox", "display_name": "a small orange fox",
       "subject_attribute": "Orange fur, white chest, and a fluffy tail."}
    ],
    "segments": [
      {
        "start_time": "00:00.000", "end_time": "00:05.000",
        "visual_description_long": "A small orange fox stands on a stone path in a luminous forest. Blue fireflies drift between the trees.",
        "contained_actions": [
          {"start_time": "00:00.000", "end_time": "00:05.000",
           "action_description": "The fox walks slowly along the path."}
        ]
      },
      {
        "start_time": "00:05.000", "end_time": "00:10.000",
        "description_change": "Glowing blue flowers open beside the path as the fox continues forward.",
        "contained_actions": [
          {"start_time": "00:05.000", "end_time": "00:10.000",
           "action_description": "The fox passes the flowers and looks around."}
        ]
      }
    ]
  }
]

适用边界

  • 一致性不是保证。持久 KV cache 只提供「历史可寻址」,不等于稳定的 3D 场景图;物体在复杂相机运动或长序列编辑后仍可能外观漂移、消失或前后不一致。这是世界模型当前的共性局限,不是本仓库的 bug。
  • 长序列误差会累积。每个生成段都会成为下一段的证据,小误差会放大成外观漂移、动作不 plausible、场景崩坏。论文用「在模型自己生成的历史上训练」来缓解,但不能根除。
  • 显存门槛是真实约束。标准配置需要 8 卡一组;单卡 4090 路线靠 INT8 权重 + INT8 KV cache + FP8 解码 + CPU offload + 18 latent frame 滑窗历史换来的,官方明确提示:CPU offload 需要足够系统内存且带来 CPU–GPU 传输开销,峰值显存仍取决于分辨率与段长。
  • INT8 loader 限制:官方注明,INT8 加载路径在推理时不支持再额外挂载独立的 LoRA adapter(LoRA 需先合并进浮点 DiT)。
  • Diffusers 管线是社区 fork:pip install 指向 github.com/jiaxiangc/diffusers.git@hy-nomas 分支,而权重仓库是 tencent/Hy-Nomas-Diffusers;它不在官方主仓库的发布承诺内,升级前请自行验证。
  • 评测数据的边界:Hy-Nomas-Bench 只发布 280 个 case 的 prompt / 交互序列 / 键盘时间线 / 220 条参考相机轨迹,不含生成视频、参考抽帧和评分,因此不能直接拿它做端到端打分,需要自己跑推理再评估。
  • 社区集成不等于官方支持:README 中列出的 SGLang、ComfyUI、WanGP、Reactor Runtime、TPU demo 均为社区贡献,官方只提供指向链接;生产使用请自行核验。

不确定处

  • 原帖正文极简,仅给出标题、paper、app 三个链接,没有任何参数、版本或性能数字;本文所有技术细节均来自上述官方仓库与论文,未从原帖推断,也未混入其他推文的数字。
  • 论文中的人评「优于现有世界模型」为相对结论,未给出可复现的绝对分数数字;本指南因此没有引用任何具体评测分数。
  • HF Space tencent/hy-nomas 的实际运行模型与排队策略,页面未公开说明;不确定它与官方 Demo 是否完全一致。
  • 官方 GitHub README 与 HF 模型卡在部分细节表述上略有差异(例如去噪步数写作「4–8 步」与默认 8 步),文中已按各自来源分别标注,未做统一。

本文所有命令、路径与参数均逐条对照官方 README / 模型卡;如官方仓库后续更新,以官方为准。