
👋 加入我们的<a href="https://github.com/Tencent-Hunyuan/HunyuanVideo-I2V/raw/main/assets/WECHAT.md" target="_blank">微信社区</a>和<a href="https://discord.gg/tv7FkG4Nwf" target="_blank">Discord</a>
继我们成功开源HunyuanVideo后,我们很高兴推出HunyuanVideo-I2V,一个新的图像到视频生成框架,加速开源社区的探索!
本仓库包含官方PyTorch模型定义、预训练权重及推理/采样代码。更多可视化效果请访问项目主页。同时,我们发布了LoRA训练代码,用于定制化特效生成,可创建更有趣的视频效果。
HunyuanVideo: A Systematic Framework For Large Video Generation Model
联合创作 @D-aiY 导演 丁一
| 参考图 | 生成视频 |
|---|---|
| | |
|
| | |
| 特效类型 | 参考图像 | 生成视频 |
|---|---|---|
| 头发生长 | ![]() |
|
| 拥抱 | ![]() |
如果您的项目中有开发或使用 HunyuanVideo-I2V,欢迎告知我们。
基于HunyuanVideo强大的视频生成能力,我们将其扩展至图像到视频生成任务。为此,我们采用首帧Token替换方案,有效重构并融合参考图像信息至视频生成流程中。
由于我们使用预训练的Decoder-Only架构多模态大语言模型(MLLM)作为文本编码器,可用于显著增强模型对输入图像语义内容的理解能力,并实现图像与文本描述信息的深度融合。具体而言,输入图像经MLLM处理后生成语义图像tokens,这些tokens与视频隐空间tokens拼接,实现跨模态的全注意力计算。
我们的系统架构旨在最大化图像与文本模态的协同效应,确保从静态图像生成连贯的视频内容。该集成不仅提升了生成视频的保真度,还增强了模型对复杂多模态输入的解析能力。整体架构如下图所示:

下表展示了运行HunyuanVideo-I2V模型(batch size=1)生成视频的硬件要求:
| 模型 | 分辨率 | GPU显存峰值 |
|---|---|---|
| HunyuanVideo-I2V | 720p | 60GB |
首先克隆仓库:
git clone https://github.com/Tencent-Hunyuan/HunyuanVideo-I2V
cd HunyuanVideo-I2V
我们推荐使用 CUDA 12.4 或 11.8 的版本。
Conda 的安装指南可以参考这里。
# 1. 创建conda环境
conda create -n HunyuanVideo-I2V python==3.11.9
# 2. 激活环境
conda activate HunyuanVideo-I2V
# 3. 通过conda安装PyTorch等依赖
# 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加速(需CUDA 11.8及以上)
python -m pip install ninja
python -m pip install git+https://github.com/Dao-AILab/flash-attention.git@v2.6.3
# 6. Install xDiT for parallel inference (It is recommended to use torch 2.4.0 and flash-attn 2.6.3)
python -m pip install xfuser==0.4.0
如果在特定 GPU 型号上遭遇 float point exception(core dump) 问题,可尝试以下方案修复:
# 确保已安装CUDA 12.4、CUBLAS>=12.4.5.8和CUDNN>=9.00(或直接使用我们的CUDA 12 docker镜像)
pip install nvidia-cublas-cu12==12.4.5.8
export LD_LIBRARY_PATH=/opt/conda/lib/python3.8/site-packages/nvidia/cublas/lib/
另外,我们提供了一个预构建的 Docker 镜像,可以使用如下命令进行拉取和运行。
# CUDA 12.4镜像(避免浮点异常)
docker pull hunyuanvideo/hunyuanvideo-i2v:cuda12
docker run -itd --gpus all --init --net=host --uts=host --ipc=host --name hunyuanvideo-i2v --security-opt=seccomp=unconfined --ulimit=stack=67108864 --ulimit=memlock=-1 --privileged hunyuanvideo/hunyuanvideo-i2v:cuda12
下载预训练模型的详细信息请参见 here。
类似于 HunyuanVideo,HunyuanVideo-I2V 支持高分辨率视频生成,分辨率最高可达 720P,视频长度最高可达 129 帧(5 秒)。
如果想生成更稳定的视频,可以设置--i2v-stability和--flow-shift 7.0。执行命令如下
cd HunyuanVideo-I2V
python3 sample_image2video.py \
--model HYVideo-T/2 \
--prompt "An Asian man with short hair in black tactical uniform and white clothes waves a firework stick." \
--i2v-mode \
--i2v-image-path ./assets/demo/i2v/imgs/0.jpg \
--i2v-resolution 720p \
--i2v-stability \
--infer-steps 50 \
--video-length 129 \
--flow-reverse \
--flow-shift 7.0 \
--seed 0 \
--embedded-cfg-scale 6.0 \
--use-cpu-offload \
--save-path ./results
如果想要生成更高动态的视频,可以取消设置--i2v-stability和--flow-shift 17.0。执行命令如下
cd HunyuanVideo-I2V
python3 sample_image2video.py \
--model HYVideo-T/2 \
--prompt "An Asian man with short hair in black tactical uniform and white clothes waves a firework stick." \
--i2v-mode \
--i2v-image-path ./assets/demo/i2v/imgs/0.jpg \
--i2v-resolution 720p \
--infer-steps 50 \
--video-length 129 \
--flow-reverse \
--flow-shift 17.0 \
--embedded-cfg-scale 6.0 \
--seed 0 \
--use-cpu-offload \
--save-path ./results
我们列出了一些常用的配置以方便使用:
| 参数 | 默认 | 描述 |
|---|---|---|
--prompt |
None | 用于视频生成的文本提示。 |
--model |
HYVideo-T/2-cfgdistill | 这里我们使用 HYVideo-T/2 用于 I2V,HYVideo-T/2-cfgdistill 用于 T2V 模式。 |
--i2v-mode |
False | 是否开启 I2V 模式。 |
--i2v-image-path |
./assets/demo/i2v/imgs/0.png | 用于视频生成的参考图像。 |
--i2v-resolution |
720p | 生成视频的分辨率。 |
--i2v-stability |
False | 是否使用稳定模式进行 i2v 推理。 |
--video-length |
129 | 生成视频的长度。 |
--infer-steps |
50 | 采样步骤的数量。 |
--flow-shift |
7.0 | 流匹配调度器的偏移因子。我们建议开启--i2v-stability时设置为 7,以获得更稳定的视频;关闭--i2v-stability时设置为 17,以获得更动态的视频 |
--flow-reverse |
False | 如果反转,从 t=1 学习/采样到 t=0。 |
--seed |
None | 生成视频的随机种子,如果为 None,则初始化一个随机种子。 |
--use-cpu-offload |
False | 使用 CPU 卸载模型加载以节省更多内存,对于高分辨率视频生成是必要的。 |
--save-path |
./results | 保存生成视频的路径。 |
下表显示了训练 HunyuanVideo-I2V lora 模型(批量大小 = 1)以生成视频的要求:
| 模型 | 分辨率 | GPU 峰值内存 |
|---|---|---|
| HunyuanVideo-I2V | 360p | 79GB |
pip install -r requirements.txt
提示描述:触发词直接写在视频说明中。建议使用短语或简短句子。
例如,AI 头发生长效果(触发词):rapid_hair_growth, The hair of the characters in the video is growing rapidly. + 原始提示
准备好训练视频和提示对后,参考 这里 进行训练数据构建。
cd HunyuanVideo-I2V
sh scripts/run_train_image2video_lora.sh
我们列出了一些训练特定配置以方便使用:
| 参数 | 默认 | 描述 |
|---|---|---|
SAVE_BASE |
. | 保存实验结果的根路径。 |
EXP_NAME |
i2v_lora | 保存实验结果的路径后缀。 |
DATA_JSONS_DIR |
./assets/demo/i2v_lora/train_dataset/processed_data/json_path | 由 hyvideo/hyvae_extract/start.sh 生成的数据 jsons 目录。 |
CHIEF_IP |
127.0.0.1 | 主节点 IP 地址。 |
```bash cd HunyuanVideo-I2V
python3 sample_image2video.py \ --model HYVideo-T/2 \ --prompt "Two people hugged tightly, In the video, two people are standing apart from each other. They then move closer to each other and begin to hug tightly. The hug i
$ claude mcp add HunyuanVideo-I2V \
-- python -m otcore.mcp_server <graph>