HunyuanVideo-Avatar是腾讯混元推出的多模态扩散Transformer模型,能够生成动态、情感可控的多人物对话视频,提供云原生构建版本,用于生成高质量的音视频驱动的人物动画。
设计人物图像注入模块,替代传统基于叠加的人物条件方案,解决训练与推理阶段的条件不匹配问题,能保证生成视频中人物动作动态自然且特征高度一致。
引入音频情感模块,从情感参考图像中提取情感线索并迁移至目标生成视频,实现细粒度、高精度的情感风格控制,让人物表情与音频情感深度契合。
提出人脸感知音频适配器,通过潜在级人脸掩码分离音频驱动的人物主体,支持在多人物场景中通过交叉注意力独立注入音频信号,实现多角色对话的自然交互。
• 输入任意比例和分辨率的多风格人物图像,包括写实、卡通、3D渲染、拟人化等多种类型。
• 支持人像、上半身、全身多尺度生成,能适应不同场景的需求。
• 基于简单音频条件,将输入人物图像驱动为高动态视频,生成包含动态前景与背景的场景,能提升画面真实感和自然度。
• 支持根据输入音频控制人物面部情感,能实现情感和音频的同步输出。
通过人脸感知音频适配器技术,实现多角色独立音频驱动,支持多人物对话场景的自然动画生成。
电商与直播:生成虚拟主播讲解视频,提高商品的展示效果。
社交媒体内容创作:快速制作个性化动画视频,满足短视频平台对内容生产的需求。
影视与广告制作:辅助多角色对话场景的动画制作,降低实拍成本和实现复杂度。
教育与培训:创建互动性强的教学动画,增强知识传递效果。
GPU支持:需NVIDIA GPU并启用CUDA,推荐96GB显存显卡以保证生成质量,最低24GB显存可运行但速度较慢。
操作系统:测试环境为Linux系统。
1、克隆仓库
git clone https://github.com/Tencent-Hunyuan/HunyuanVideo-Avatar.git
cd HunyuanVideo-Avatar
2、创建Conda环境
conda create -n HunyuanVideo-Avatar python==3.10.9
conda activate HunyuanVideo-Avatar
3、安装PyTorch及依赖 CUDA 11.8
conda install pytorch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 pytorch-cuda=11.8 -c pytorch -c nvidia
CUDA 12.4
conda install pytorch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 pytorch-cuda=12.4 -c pytorch -c nvidia
4、安装Pip依赖
python -m pip install -r requirements.txt
5、安装Flash Attention V2(可选,用于加速)
python -m pip install ninja
python -m pip install git+https://github.com/Dao-AILab/[email protected]
CUDA 12.4版本
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 gradio==3.39.0 diffusers==0.33.0 transformers==4.41.2
CUDA 11.8版本
docker pull hunyuanvideo/hunyuanvideo:cuda_11
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_11
pip install gradio==3.39.0 diffusers==0.33.0 transformers==4.41.2
cd HunyuanVideo-Avatar
export PYTHONPATH=./
export MODEL_BASE="./weights"
checkpoint_path=${MODEL_BASE}/ckpts/hunyuan-video-t2v-720p/transformers/mp_rank_00_model_states.pt
torchrun --nnodes=1 --nproc_per_node=8 --master_port 29605 hymm_sp/sample_batch.py \
--input 'assets/test.csv' \
--ckpt ${checkpoint_path} \
--sample-n-frames 129 \
--seed 128 \
--image-size 704 \
--cfg-scale 7.5 \
--infer-steps 50 \
--use-deepcache 1 \
--flow-shift-eval-video 5.0 \
--save-path ${OUTPUT_BASEPATH}
cd HunyuanVideo-Avatar
export PYTHONPATH=./
export MODEL_BASE=./weights
OUTPUT_BASEPATH=./results-single
checkpoint_path=${MODEL_BASE}/ckpts/hunyuan-video-t2v-720p/transformers/mp_rank_00_model_states_fp8.pt
export DISABLE_SP=1
CUDA_VISIBLE_DEVICES=0 python3 hymm_sp/sample_gpu_poor.py \
--input 'assets/test.csv' \
--ckpt ${checkpoint_path} \
--sample-n-frames 129 \
--seed 128 \
--image-size 704 \
--cfg-scale 7.5 \
--infer-steps 50 \
--use-deepcache 1 \
--flow-shift-eval-video 5.0 \
--save-path ${OUTPUT_BASEPATH} \
--use-fp8 \
--infer-min
cd HunyuanVideo-Avatar
export PYTHONPATH=./
export MODEL_BASE=./weights
OUTPUT_BASEPATH=./results-poor
checkpoint_path=${MODEL_BASE}/ckpts/hunyuan-video-t2v-720p/transformers/mp_rank_00_model_states_fp8.pt
export CPU_OFFLOAD=1
CUDA_VISIBLE_DEVICES=0 python3 hymm_sp/sample_gpu_poor.py \
--input 'assets/test.csv' \
--ckpt ${checkpoint_path} \
--sample-n-frames 129 \
--seed 128 \
--image-size 704 \
--cfg-scale 7.5 \
--infer-steps 50 \
--use-deepcache 1 \
--flow-shift-eval-video 5.0 \
--save-path ${OUTPUT_BASEPATH} \
--use-fp8 \
--cpu-offload \
--infer-min
cd HunyuanVideo-Avatar
bash ./scripts/run_gradio.sh