科学工具
科学工具让世界更美好
让世界更美好

实时交互的 3D 世界建模框架:腾讯混元 HY-World 1.5

HY-World 1.5(WorldPlay)是腾讯混元团队推出的系统化交互式世界建模框架,主打实时延迟长期几何一致性两大核心特性,解决了初代HY-World 1.0离线生成、无实时交互的问题,基于流视频扩散模型打造,能以24FPS生成长视野流视频,支持现实世界、风格化场景的第一/第三人称视角切换,可落地3D重建、可提示事件、无限世界扩展等多种应用,目前已完全开源,提供了不同参数量的模型版本与完整的训练、推理流程。

HY-World 1.5实现了实时交互,保证了长期几何一致性,破解了当前方法中速度与内存的权衡难题:

1、双动作表示:能对用户的键鼠输入做出稳健的动作控制,精准响应用户交互指令。

2、重构上下文记忆:从过往帧中动态重建上下文,通过时间重帧让几何关键的远帧保持可访问性,有效缓解内存衰减问题。

3、WorldCompass强化学习后训练框架:专门针对长视野自回归视频模型设计,直接提升模型的动作跟随能力与视觉质量。

4、上下文强制蒸馏方法:为内存感知模型打造,对齐师生模型间的内存上下文,保留学生模型使用长距离信息的能力,实现实时速度的同时防止误差漂移。

推理核心流程

输入单张图像或文本提示描述世界后,模型会执行下一个块(16视频帧)预测任务,基于用户动作生成未来视频。每个块生成时,会从过往块中动态重构上下文记忆,以此保证长期的时间与几何一致性。

系统配置要求

HY-World 1.5基于NVIDIA GPU的CUDA环境运行,不同推理、训练场景对GPU显存要求不同(以基于混元Video1.5的125帧为例)。

推理显存要求(AR蒸馏模型)

• sp=8:28G

• sp=4:34G

• sp=1:72G

训练显存要求

• sp=8:60G

环境搭建与依赖安装

框架采用Python 3.10环境开发,需通过conda创建独立环境,再依次安装依赖库、专属工具并下载模型,步骤清晰可复现。

1、创建并激活虚拟环境

conda create --name worldplay python=3.10 -y
conda activate worldplay
pip install -r requirements.txt

2、安装注意力库(可选,推荐安装)

提升推理速度并降低GPU显存占用,支持Flash Attention与SageAttention二选一。

Flash Attention

pip install flash-attn --no-build-isolation

SageAttention

git clone https://github.com/cooper1637/SageAttention.git
cd SageAttention
export EXT_PARALLEL=4 NVCC_APPEND_FLAGS="--threads 8" MAX_JOBS=32 # 可选配置
python3 setup.py install

3、安装AngelSlim与DeepGEMM

分别用于Transformer量化与开启fp8 gemm功能。

AngelSlim

pip install angelslim==0.2.2

DeepGEMM

git clone --recursive [email protected]:deepseek-ai/DeepGEMM.git
cd DeepGEMM
./develop.sh
./install.sh

4、下载所需模型

提供自动化下载脚本,可一键下载所有核心模型,需准备Hugging Face令牌:

python download_models.py --hf_token <your_huggingface_token>

关键说明

• 视觉编码器需要访问受限制的FLUX.1-Redux-dev模型,需先在 Hugging Face (huggingface.co/black-forest-labs/FLUX.1-Redux-dev)申请访问权限(通常即时通过),再在个人设置中生成**只读权限**令牌。

• 若无FLUX访问权限,可跳过视觉编码器:

python download_models.py --skip_vision_encoder

脚本下载内容

• HY-WorldPlay动作模型(每个约32GB)

• 混元Video-1.5基础模型(vae、调度器、480p transformer)

• Qwen2.5-VL-7B-Instruct文本编码器(约15GB)

• ByT5编码器(byt5-small + Glyph-SDXL-v2)

• SigLIP视觉编码器(来自FLUX.1-Redux-dev)

• 下载完成后,脚本会打印模型路径,需将其添加至run.sh文件中。

模型检查点

提供多款预训练模型检查点,涵盖双向、自回归、蒸馏等类型,部分模型暂未开放。

模型名称 描述 下载状态
HY-World1.5-Bidirectional-480P-I2V 带重构上下文记忆的双向注意力模型 可下载
HY-World1.5-Autoregressive-480P-I2V 带重构上下文记忆的自回归模型 可下载
HY-World1.5-Autoregressive-480P-I2V-rl 带RL后训练的自回归模型 待发布
HY-World1.5-Autoregressive-480P-I2V-distill 蒸馏自回归模型,优化快速推理(4步) 可下载
HY-World1.5-Autoregressive-480P-I2V-rl-distill 带RL后训练的蒸馏自回归模型 待发布

快速推理

提供两套推理管线,分别适配高性能与轻量型需求,核心配置与运行均在run.sh文件中完成。

管线选择

1、基于混元Video的管线(推荐):以HunyuanVideo-8B为骨干,动作控制与长期记忆表现更优。

2、WAN管线(轻量型):以WAN-5B为骨干,适配小显存GPU,动作控制与长期记忆表现略有妥协,详细说明见wan/README.md。

以下为基于混元Video的推理核心步骤:

1、配置模型路径

将下载脚本打印的模型路径,更新至run.sh的对应变量中:

MODEL_PATH=<path_printed_by_download_script>
AR_ACTION_MODEL_PATH=<path_printed_by_download_script>/ar_model
BI_ACTION_MODEL_PATH=<path_printed_by_download_script>/bidirectional_model
AR_DISTILL_ACTION_MODEL_PATH=<path_printed_by_download_script>/ar_distilled_action_model

2、配置核心参数

run.sh中可自定义场景描述、输入图像、生成帧数等关键参数:

参数 描述
PROMPT 场景的文本描述
IMAGE_PATH 输入图像路径(I2V任务必填)
NUM_FRAMES 生成帧数(默认125),需满足格式要求:双向模型[(num_frames-1)//4+1]%16==0;自回归模型[(num_frames-1)//4+1]%4==0
N_INFERENCE_GPU 并行推理的GPU数量
POSE 相机轨迹:姿态字符串(快速测试推荐)或JSON文件路径

3、选择模型

run.sh中取消注释对应推理命令,选择所需模型:

双向模型

--action_ckpt $BI_ACTION_MODEL_PATH --model_type 'bi'

自回归模型

--action_ckpt $AR_ACTION_MODEL_PATH --model_type 'ar'

蒸馏模型

--action_ckpt $AR_DISTILL_ACTION_MODEL_PATH --few_step true --num_inference_steps 4 --model_type 'ar'

4、相机轨迹控制

支持姿态字符串自定义JSON文件两种方式,满足快速测试与复杂轨迹需求。

方式1:姿态字符串(推荐快速测试)

run.sh中设置POSE变量,采用动作-时长格式,支持多动作组合:

POSE='w-31' # 向前移动31个潜在值,生成[1+31]个潜在值
# 组合示例:向前3个,向右旋转1个,向右移动4个
POSE='w-3, right-1, d-4'

支持的动作: • 移动:w(前)、s(后)、a(左)、d(右)

• 旋转:up(上仰)、down(下俯)、left(左偏航)、right(右偏航)

方式2:自定义JSON文件

适用于复杂轨迹,先生成自定义轨迹文件:

python generate_custom_trajectory.py

再在run.sh中设置JSON文件路径:

POSE='./assets/pose/your_custom_trajectory.json'

5、提示词重写(可选)

配合vLLM服务器开启提示词重写,提升场景描述效果:

export T2V_REWRITE_BASE_URL="<your_vllm_server_base_url>"
export T2V_REWRITE_MODEL_NAME="<your_model_name>"
REWRITE=true # 在run.sh中设置

6、运行推理

完成所有配置后,执行脚本启动推理:

bash run.sh