Hunyuan-GameCraft:基于混合历史条件的高动态交互游戏视频生成
摘要
基于扩散模型和可控视频生成技术的最新进展,已经能够实现高质量且时序连贯的视频合成,为沉浸式交互游戏体验奠定了基础。然而,当前方法在动态性、物理真实性、长期一致性和效率方面仍存在局限,制约了多样化游戏视频的生成能力。针对这些不足,我们提出了Hunyuan-GameCraft框架,专为游戏环境中的高动态交互视频生成而设计。
为实现细粒度动作控制,我们将标准键盘鼠标输入统一映射至共享相机表征空间,实现各类镜头与移动操作的平滑插值。通过提出的混合历史条件训练策略,模型能以自回归方式扩展视频序列,同时保持游戏场景信息。此外,为提升推理效率和可玩性,我们采用模型蒸馏技术降低计算开销,在长时序中保持一致性,使其适用于复杂交互环境的实时部署。
模型在超100款3A游戏的百万级游戏实录数据集上预训练,确保覆盖广度和多样性,再经过精细标注的合成数据集微调以提升精度控制。经筛选的游戏场景数据显著提升了视觉保真度、真实感和动作可控性。大量实验表明,Hunyuan-GameCraft在交互游戏视频生成的拟真度与可玩性上显著超越现有模型。
整体架构
给定参考图像及对应提示词、键盘或鼠标信号,我们将这些选项映射到连续的相机空间。随后设计一个轻量级动作编码器,对输入的相机轨迹进行编码。动作与图像特征在分块化后相加。针对长视频扩展,我们设计了可变掩码指示器,其中1和0分别代表历史帧与待预测帧。
📜 要求
- 需要支持 CUDA 的 NVIDIA GPU
- 该模型在配备 8 块 GPU 的机器上测试通过
- 最低配置:最低需要 24GB 显存,但运行速度极慢
- 推荐配置:建议使用 80GB 显存的 GPU 以获得更优生成质量
- 测试操作系统:Linux
🛠️ 依赖与安装
首先克隆代码仓库:
git clone https://github.com/Tencent-Hunyuan/Hunyuan-GameCraft-1.0.git
cd Hunyuan-GameCraft-1.0
Linux 安装指南
我们推荐使用 CUDA 12.4 版本进行手动安装。
Conda 的安装说明可参考此链接。
# 1. Create conda environment
conda create -n HYGameCraft python==3.10# 2. Activate the environment
conda activate HYGameCraft# 3. Install PyTorch and other dependencies using conda
conda install pytorch==2.5.1 torchvision==0.20.0 torchaudio==2.5.1 pytorch-cuda=12.4 -c pytorch -c nvidia# 4. Install pip dependencies
python -m pip install -r requirements.txt
# 5. Install flash attention v2 for acceleration (requires CUDA 11.8 or above)
python -m pip install ninja
python -m pip install git+https://github.com/Dao-AILab/flash-attention.git@v2.6.3
此外,您还可以使用HunyuanVideo的Docker镜像。使用以下命令拉取并运行该Docker镜像。
# For CUDA 12.4 (updated to avoid float point exception)
docker pull hunyuanvideo/hunyuanvideo:cuda_12
docker run -itd --gpus all --init --net=host --uts=host --ipc=host --name hunyuanvideo --security-opt=seccomp=unconfined --ulimit=stack=67108864 --ulimit=memlock=-1 --privileged hunyuanvideo/hunyuanvideo:cuda_12
pip install diffusers==0.34.0 transformers==4.54.1
🚀 多GPU并行推理
例如,要使用8个GPU生成视频,可使用以下命令。其中--action-list w s d a
模拟键盘操控信号,帮助生成对应内容的视频。--action-speed-list 0.2 0.2 0.2 0.2
表示位移距离,可替换为0至3之间的任意值,注意action-speed-list
的长度必须与action-list
保持一致:
#!/bin/bash
JOBS_DIR=$(dirname $(dirname "$0"))
export PYTHONPATH=${JOBS_DIR}:$PYTHONPATH
export MODEL_BASE="weights/stdmodels"
checkpoint_path="weights/gamecraft_models/mp_rank_00_model_states.pt"current_time=$(date "+%Y.%m.%d-%H.%M.%S")
modelname='Tencent_hunyuanGameCraft_720P'torchrun --nnodes=1 --nproc_per_node=8 --master_port 29605 hymm_sp/sample_batch.py \--image-path "asset/village.png" \--prompt "A charming medieval village with cobblestone streets, thatched-roof houses, and vibrant flower gardens under a bright blue sky." \--add-pos-prompt "Realistic, High-quality." \--add-neg-prompt "overexposed, low quality, deformation, a poor composition, bad hands, bad teeth, bad eyes, bad limbs, distortion, blurring, text, subtitles, static, picture, black border." \--ckpt ${checkpoint_path} \--video-size 704 1216 \--cfg-scale 2.0 \--image-start \--action-list w s d a \--action-speed-list 0.2 0.2 0.2 0.2 \--seed 250160 \--infer-steps 50 \--flow-shift-eval-video 5.0 \--save-path './results/'
此外,我们支持FP8优化和SageAttn。要启用FP8,只需在命令中添加--use-fp8
选项。
并通过以下命令安装SageAttention:
git clone https://github.com/thu-ml/SageAttention.git
cd SageAttention
python setup.py install # or pip install -e .
我们还提供加速模型,您可以使用以下命令:
#!/bin/bash
JOBS_DIR=$(dirname $(dirname "$0"))
export PYTHONPATH=${JOBS_DIR}:$PYTHONPATH
export MODEL_BASE="weights/stdmodels"
checkpoint_path="weights/gamecraft_models/mp_rank_00_model_states_distill.pt"current_time=$(date "+%Y.%m.%d-%H.%M.%S")
modelname='Tencent_hunyuanGameCraft_720P'torchrun --nnodes=1 --nproc_per_node=8 --master_port 29605 hymm_sp/sample_batch.py \--image-path "asset/village.png" \--prompt "A charming medieval village with cobblestone streets, thatched-roof houses, and vibrant flower gardens under a bright blue sky." \--add-neg-prompt "overexposed, low quality, deformation, a poor composition, bad hands, bad teeth, bad eyes, bad limbs, distortion, blurring, text, subtitles, static, picture, black border." \--ckpt ${checkpoint_path} \--video-size 704 1216 \--cfg-scale 1.0 \--image-start \--action-list w s d a \--action-speed-list 0.2 0.2 0.2 0.2 \--seed 250160 \--infer-steps 8 \--use-fp8 \--flow-shift-eval-video 5.0 \--save-path './results_distill/'
🔑 低显存单GPU推理
例如,要使用低显存(超过24GB)的1个GPU生成视频,可以使用以下命令:
#!/bin/bash
JOBS_DIR=$(dirname $(dirname "$0"))
export PYTHONPATH=${JOBS_DIR}:$PYTHONPATH
export MODEL_BASE="weights/stdmodels"
checkpoint_path="weights/gamecraft_models/mp_rank_00_model_states.pt"current_time=$(date "+%Y.%m.%d-%H.%M.%S")
modelname='Tencent_hunyuanGameCraft_720P'# disable sp and cpu offload
export DISABLE_SP=1
export CPU_OFFLOAD=1torchrun --nnodes=1 --nproc_per_node=1 --master_port 29605 hymm_sp/sample_batch.py \--image-path "asset/village.png" \--prompt "A charming medieval village with cobblestone streets, thatched-roof houses, and vibrant flower gardens under a bright blue sky." \--add-neg-prompt "overexposed, low quality, deformation, a poor composition, bad hands, bad teeth, bad eyes, bad limbs, distortion, blurring, text, subtitles, static, picture, black border." \--ckpt ${checkpoint_path} \--video-size 704 1216 \--cfg-scale 2.0 \--image-start \--action-list w a d s \--action-speed-list 0.2 0.2 0.2 0.2 \--seed 250160 \--sample-n-frames 33 \--infer-steps 50 \--flow-shift-eval-video 5.0 \--cpu-offload \--use-fp8 \--save-path './results/'