diff --git a/README.md b/README.md index 9c60319..8e03cde 100644 --- a/README.md +++ b/README.md @@ -40,10 +40,10 @@ HunyuanVideo-1.5 is a video generation model that delivers top-tier quality with - +
- + @@ -67,7 +67,9 @@ HunyuanVideo-1.5 is a video generation model that delivers top-tier quality with If you develop/use HunyuanVideo-1.5 in your projects, welcome to let us know. -- **ComfyUI** - [ComfyUI](https://github.com/comfyanonymous/ComfyUI): A powerful and modular diffusion model GUI with a graph/nodes interface. ComfyUI supports HunyuanVideo-1.5 with various engineering optimizations for fast inference. +- **ComfyUI** - [ComfyUI](https://github.com/comfyanonymous/ComfyUI): A powerful and modular diffusion model GUI with a graph/nodes interface. ComfyUI supports HunyuanVideo-1.5 with various engineering optimizations for fast inference. We provide a [ComfyUI Usage Guide](./ComfyUI/README.md) for HunyuanVideo-1.5. + +- **Community-implemented ComfyUI Plugin** - [comfyui_hunyuanvideo_1.5_plugin](https://github.com/yuanyuan-spec/comfyui_hunyuanvideo_1.5_plugin): A community-implemented ComfyUI plugin for HunyuanVideo-1.5, offering both simplified and complete node sets for quick usage or deep workflow customization, with built-in automatic model download support. - **LightX2V** - [LightX2V](https://github.com/ModelTC/LightX2V): A lightweight and efficient video generation framework that integrates HunyuanVideo-1.5, supporting multiple engineering acceleration techniques for fast inference. @@ -95,6 +97,7 @@ If you develop/use HunyuanVideo-1.5 in your projects, welcome to let us know. - [Text to Video](#text-to-video) - [Image to Video](#image-to-video) - [Command Line Arguments](#command-line-arguments) + - [Optimal Inference Configurations](#optimal-inference-configurations) - [🧱 Models Cards](#-models-cards) - [🎬 More Examples](#-more-examples) - [📊 Evaluation](#-evaluation) @@ -157,8 +160,8 @@ pip install -i https://mirrors.tencent.com/pypi/simple/ --upgrade tencentcloud-s ### Step 3: Install Attention Libraries * Flash Attention: - It's recommended to install Flash Attention for faster inference and reduced GPU memory consumption. -Detailed installation instructions are available at [Flash Attention](https://github.com/Dao-AILab/flash-attention). + Install Flash Attention for faster inference and reduced GPU memory consumption. + Detailed installation instructions are available at [Flash Attention](https://github.com/Dao-AILab/flash-attention). * Flex-Block-Attention: flex-block-attn is only required for sparse attention to achieve faster inference and can be installed by the following command: @@ -169,6 +172,8 @@ Detailed installation instructions are available at [Flash Attention](https://gi ``` * SageAttention: + To enable SageAttention for faster inference, you need to install it by the following command: + > **Note**: Enabling SageAttention will automatically disable Flex-Block-Attention. ```bash git clone https://github.com/cooper1637/SageAttention.git cd SageAttention @@ -223,10 +228,11 @@ OUTPUT_PATH=./outputs/output.mp4 # Configuration N_INFERENCE_GPU=8 # Parallel inference GPU count CFG_DISTILLED=true # Inference with CFG distilled model, 2x speedup -SPARSE_ATTN=true # Inference with sparse attention +SPARSE_ATTN=false # Inference with sparse attention (only 720p models are equipped with sparse attention). Please ensure flex-block-attn is installed SAGE_ATTN=false # Inference with SageAttention +REWRITE=true # Enable prompt rewriting. Please ensure rewrite vLLM server is deployed and configured. +OVERLAP_GROUP_OFFLOADING=true # Only valid when group offloading is enabled, significantly increases CPU memory usage but speeds up inference MODEL_PATH=ckpts # Path to pretrained model -REWRITE=true # Enable prompt rewriting torchrun --nproc_per_node=$N_INFERENCE_GPU generate.py \ --prompt "$PROMPT" \ @@ -239,10 +245,18 @@ torchrun --nproc_per_node=$N_INFERENCE_GPU generate.py \ --use_sageattn $SAGE_ATTN \ --rewrite $REWRITE \ --output_path $OUTPUT_PATH \ + --overlap_group_offloading $OVERLAP_GROUP_OFFLOADING \ --save_pre_sr_video \ --model_path $MODEL_PATH ``` +> **Tips:** If your GPU memory is > 14GB but you encounter OOM (Out of Memory) errors during generation, you can try setting the following environment variable before running: +> ```bash +> export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True,max_split_size_mb:128 +> ``` + + + ### Command Line Arguments | Argument | Type | Required | Default | Description | @@ -264,6 +278,7 @@ torchrun --nproc_per_node=$N_INFERENCE_GPU generate.py \ | `--sparse_attn` | bool | No | `false` | Enable sparse attention for faster inference (~1.5-2x speedup, requires H-series GPUs, auto-enables CFG distilled, use `--sparse_attn` or `--sparse_attn true` to enable) | | `--offloading` | bool | No | `true` | Enable CPU offloading (use `--offloading false` or `--offloading 0` to disable for faster inference if GPU memory allows) | | `--group_offloading` | bool | No | `None` | Enable group offloading (default: None, automatically enabled if offloading is enabled. Use `--group_offloading` or `--group_offloading true/1` to enable, `--group_offloading false/0` to disable) | +| `--overlap_group_offloading` | bool | No | `true` | Enable overlap group offloading (default: true). Significantly increases CPU memory usage but speeds up inference. Use `--overlap_group_offloading` or `--overlap_group_offloading true/1` to enable, `--overlap_group_offloading false/0` to disable | | `--dtype` | str | No | `bf16` | Data type for transformer: `bf16` (faster, lower memory) or `fp32` (better quality, slower, higher memory) | | `--use_sageattn` | bool | No | `false` | Enable SageAttention (use `--use_sageattn` or `--use_sageattn true/1` to enable, `--use_sageattn false/0` to disable) | | `--sage_blocks_range` | str | No | `0-53` | SageAttention blocks range (e.g., `0-5` or `0,1,2,3,4,5`) | @@ -271,22 +286,43 @@ torchrun --nproc_per_node=$N_INFERENCE_GPU generate.py \ **Note:** Use `--nproc_per_node` to specify the number of GPUs. For example, `--nproc_per_node=8` uses 8 GPUs. +### Optimal Inference Configurations + +The following table provides the optimal inference configurations (CFG scale, embedded CFG scale, flow shift, and inference steps) for each model to achieve the best generation quality: + +| Model | CFG Scale | Embedded CFG Scale | Flow Shift | Inference Steps | +|-------|-----------|-------------------|------------|-----------------| +| 480p T2V | 6 | None | 5 | 50 | +| 480p I2V | 6 | None | 5 | 50 | +| 720p T2V | 6 | None | 9 | 50 | +| 720p I2V | 6 | None | 7 | 50 | +| 480p T2V CFG Distilled | 1 | None | 5 | 50 | +| 480p I2V CFG Distilled | 1 | None | 5 | 50 | +| 720p T2V CFG Distilled | 1 | None | 9 | 50 | +| 720p I2V CFG Distilled | 1 | None | 7 | 50 | +| 720p T2V CFG Distilled Sparse | 1 | None | 7 | 50 | +| 720p I2V CFG Distilled Sparse | 1 | None | 9 | 50 | +| 480→720 SR Step Distilled | 1 | None | 2 | 6 | +| 720→1080 SR Step Distilled | 1 | None | 2 | 8 | + +**Please note that the cfg distilled model we provided, must use 50 steps to generate correct results.** + ## 🧱 Models Cards |ModelName| Download | |-|---------------------------| |HunyuanVideo-1.5-480P-T2V|[480P-T2V](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/480p_t2v) | |HunyuanVideo-1.5-480P-I2V |[480P-I2V](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/480p_i2v) | -|HunyuanVideo-1.5-480P-T2V-distill | [480P-T2V-distill](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/480p_t2v_distilled) | -|HunyuanVideo-1.5-480P-I2V-distill |[480P-I2V-distill](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/480p_i2v_distilled) | +|HunyuanVideo-1.5-480P-T2V-cfg-distill | [480P-T2V-cfg-distill](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/480p_t2v_distilled) | +|HunyuanVideo-1.5-480P-I2V-cfg-distill |[480P-I2V-cfg-distill](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/480p_i2v_distilled) | |HunyuanVideo-1.5-720P-T2V|[720P-T2V](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/720p_t2v) | |HunyuanVideo-1.5-720P-I2V |[720P-I2V](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/720p_i2v) | -|HunyuanVideo-1.5-720P-T2V-distiill| Comming soon | -|HunyuanVideo-1.5-720P-I2V-distiill |[720P-I2V-distiill](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/720p_i2v_distilled) | -|HunyuanVideo-1.5-720P-T2V-sparse-distiill| Comming soon | -|HunyuanVideo-1.5-720P-I2V-sparse-distiill |[720P-I2V-sparse-distiill](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/720p_i2v_distilled_sparse) | -|HunyuanVideo-1.5-720P-sr |[720P-sr](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/720p_sr_distilled) | -|HunyuanVideo-1.5-1080P-sr |[1080P-sr](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/1080p_sr_distilled) | +|HunyuanVideo-1.5-720P-T2V-cfg-distill| Comming soon | +|HunyuanVideo-1.5-720P-I2V-cfg-distill |[720P-I2V-cfg-distill](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/720p_i2v_distilled) | +|HunyuanVideo-1.5-720P-T2V-sparse-cfg-distill| Comming soon | +|HunyuanVideo-1.5-720P-I2V-sparse-cfg-distill |[720P-I2V-sparse-cfg-distill](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/720p_i2v_distilled_sparse) | +|HunyuanVideo-1.5-720P-sr-step-distill |[720P-sr](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/720p_sr_distilled) | +|HunyuanVideo-1.5-1080P-sr-step-distill |[1080P-sr](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/1080p_sr_distilled) | diff --git a/README_CN.md b/README_CN.md index 96aebf6..b17e1b0 100644 --- a/README_CN.md +++ b/README_CN.md @@ -24,10 +24,10 @@ HunyuanVideo-1.5作为一款轻量级视频生成模型,仅需83亿参数即 - +
- + @@ -51,6 +51,8 @@ HunyuanVideo-1.5作为一款轻量级视频生成模型,仅需83亿参数即 如果您在项目中使用或开发了 HunyuanVideo-1.5,欢迎告知我们。 - **ComfyUI** - [ComfyUI](https://github.com/comfyanonymous/ComfyUI): 一个强大且模块化的扩散模型图形界面,采用节点式工作流。ComfyUI 支持 HunyuanVideo-1.5,并提供多种工程加速优化以实现快速推理。 +我们提供了一个 [ComfyUI 使用指南](./ComfyUI/README.md) 用于 HunyuanVideo-1.5。 +- **社区实现的 ComfyUI 插件** - [comfyui_hunyuanvideo_1.5_plugin](https://github.com/yuanyuan-spec/comfyui_hunyuanvideo_1.5_plugin): 社区实现的 HunyuanVideo-1.5 ComfyUI 插件,提供简化版和完整版节点集,支持快速使用或深度工作流定制,内置自动模型下载功能。 - **LightX2V** - [LightX2V](https://github.com/ModelTC/LightX2V): 一个轻量级高效的视频生成框架,集成了 HunyuanVideo-1.5,支持多种工程加速技术以实现快速推理。 @@ -77,6 +79,7 @@ HunyuanVideo-1.5作为一款轻量级视频生成模型,仅需83亿参数即 - [🔑 使用方法](#-使用方法) - [视频生成](#视频生成) - [命令行参数](#命令行参数) + - [最优推理配置](#最优推理配置) - [🧱 模型卡片](#-模型卡片) - [🎬 更多示例](#-更多示例) - [📊 性能评估](#-性能评估) @@ -140,7 +143,7 @@ pip install -i https://mirrors.tencent.com/pypi/simple/ --upgrade tencentcloud-s ### 步骤 3:安装注意力库 * Flash Attention: - 建议安装 Flash Attention 以实现更快的推理速度和更低的 GPU 内存消耗。 + 安装 Flash Attention 以实现更快的推理速度和更低的 GPU 内存消耗。 详细安装说明请参考 [Flash Attention](https://github.com/Dao-AILab/flash-attention)。 * Flex-Block-Attention: @@ -152,7 +155,8 @@ pip install -i https://mirrors.tencent.com/pypi/simple/ --upgrade tencentcloud-s ``` * SageAttention: - + 要启用 SageAttention 以实现更快的推理,您需要通过以下命令安装: + > **注意**: 启用 SageAttention 将自动禁用 Flex-Block-Attention。 ```bash git clone https://github.com/cooper1637/SageAttention.git cd SageAttention @@ -211,10 +215,11 @@ OUTPUT_PATH=./outputs/output.mp4 # 配置 N_INFERENCE_GPU=8 # 并行推理 GPU 数量 CFG_DISTILLED=true # 使用 CFG 蒸馏模型进行推理,2倍加速 -SPARSE_ATTN=true # 使用稀疏注意力进行推理 +SPARSE_ATTN=false # 使用稀疏注意力进行推理(仅 720p 模型配备了稀疏注意力)。请确保 flex-block-attn 已安装 SAGE_ATTN=false # 使用 SageAttention 进行推理 +REWRITE=true # 启用提示词重写。请确保 rewrite vLLM server 已部署和配置。 +OVERLAP_GROUP_OFFLOADING=true # 仅在组卸载启用时有效,会显著增加 CPU 内存占用,但能够提速 MODEL_PATH=ckpts # 预训练模型路径 -REWRITE=true # 启用提示词重写 torchrun --nproc_per_node=$N_INFERENCE_GPU generate.py \ --prompt "$PROMPT" \ @@ -227,10 +232,16 @@ torchrun --nproc_per_node=$N_INFERENCE_GPU generate.py \ --use_sageattn $SAGE_ATTN \ --rewrite $REWRITE \ --output_path $OUTPUT_PATH \ + --overlap_group_offloading $OVERLAP_GROUP_OFFLOADING \ --save_pre_sr_video \ --model_path $MODEL_PATH ``` +> **Tips:** 如果您的 GPU 内存 > 14GB 但您在生成过程中遇到 OOM (Out of Memory) 错误,可以尝试在运行前设置以下环境变量: +> ```bash +> export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True,max_split_size_mb:128 +> ``` + ### 命令行参数 | 参数 | 类型 | 是否必需 | 默认值 | 描述 | @@ -252,6 +263,7 @@ torchrun --nproc_per_node=$N_INFERENCE_GPU generate.py \ | `--sparse_attn` | bool | 否 | `false` | 启用稀疏注意力以加速推理(约 1.5-2 倍加速,需要 H 系列 GPU,会自动启用 CFG 蒸馏,使用 `--sparse_attn` 或 `--sparse_attn true` 来启用) | | `--offloading` | bool | 否 | `true` | 启用 CPU 卸载(使用 `--offloading false` 或 `--offloading 0` 来禁用,如果 GPU 内存允许,禁用后速度会更快) | | `--group_offloading` | bool | 否 | `None` | 启用组卸载(默认:None,如果启用了 offloading 则自动启用。使用 `--group_offloading` 或 `--group_offloading true/1` 来启用,`--group_offloading false/0` 来禁用) | +| `--overlap_group_offloading` | bool | 否 | `true` | 启用重叠组卸载(默认:true)。会显著增加 CPU 内存占用,但能够提速。使用 `--overlap_group_offloading` 或 `--overlap_group_offloading true/1` 来启用,`--overlap_group_offloading false/0` 来禁用 | | `--dtype` | str | 否 | `bf16` | Transformer 的数据类型:`bf16`(更快,内存占用更低)或 `fp32`(质量更好,速度更慢,内存占用更高) | | `--use_sageattn` | bool | 否 | `false` | 启用 SageAttention(使用 `--use_sageattn` 或 `--use_sageattn true/1` 来启用,`--use_sageattn false/0` 来禁用) | | `--sage_blocks_range` | str | 否 | `0-53` | SageAttention 块范围(例如:`0-5` 或 `0,1,2,3,4,5`) | @@ -259,22 +271,43 @@ torchrun --nproc_per_node=$N_INFERENCE_GPU generate.py \ **注意:** 使用 `--nproc_per_node` 指定使用的 GPU 数量。例如,`--nproc_per_node=8` 表示使用 8 个 GPU。 +### 最优推理配置 + +下表提供了每个模型的最优推理配置(CFG 缩放、嵌入 CFG 缩放、流偏移和推理步数),以获得最佳生成质量: + +| 模型 | CFG 缩放 | 嵌入 CFG 缩放 | 流偏移 | 推理步数 | +|-------|-----------|-------------------|------------|-----------------| +| 480p T2V | 6 | None | 5 | 50 | +| 480p I2V | 6 | None | 5 | 50 | +| 720p T2V | 6 | None | 9 | 50 | +| 720p I2V | 6 | None | 7 | 50 | +| 480p T2V cfg 蒸馏 | 1 | None | 5 | 50 | +| 480p I2V cfg 蒸馏 | 1 | None | 5 | 50 | +| 720p T2V cfg 蒸馏 | 1 | None | 9 | 50 | +| 720p I2V cfg 蒸馏 | 1 | None | 7 | 50 | +| 720p T2V cfg 蒸馏稀疏 | 1 | None | 7 | 50 | +| 720p I2V cfg 蒸馏稀疏 | 1 | None | 9 | 50 | +| 480→720 超分 步数蒸馏 | 1 | None | 2 | 6 | +| 720→1080 超分 步数蒸馏 | 1 | None | 2 | 8 | + +**请注意我们提供的cfg蒸馏模型,需要50步的推理步数来获得正确的结果.** + ## 🧱 模型卡片 |模型名称| 下载链接 | |-|---------------------------| |HunyuanVideo-1.5-480P-T2V|[480P-T2V](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/480p_t2v) | |HunyuanVideo-1.5-480P-I2V |[480P-I2V](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/480p_i2v) | -|HunyuanVideo-1.5-480P-T2V-distill | [480P-T2V-distill](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/480p_t2v_distilled) | -|HunyuanVideo-1.5-480P-I2V-distill |[480P-I2V-distill](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/480p_i2v_distilled) | +|HunyuanVideo-1.5-480P-T2V-cfg-distill | [480P-T2V-cfg-distill](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/480p_t2v_distilled) | +|HunyuanVideo-1.5-480P-I2V-cfg-distill |[480P-I2V-cfg-distill](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/480p_i2v_distilled) | |HunyuanVideo-1.5-720P-T2V|[720P-T2V](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/720p_t2v) | |HunyuanVideo-1.5-720P-I2V |[720P-I2V](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/720p_i2v) | -|HunyuanVideo-1.5-720P-T2V-distiill| Comming soon | -|HunyuanVideo-1.5-720P-I2V-distiill |[720P-I2V-distiill](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/720p_i2v_distilled) | -|HunyuanVideo-1.5-720P-T2V-sparse-distiill| Comming soon | -|HunyuanVideo-1.5-720P-I2V-sparse-distiill |[720P-I2V-sparse-distiill](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/720p_i2v_distilled_sparse) | -|HunyuanVideo-1.5-720P-sr |[720P-sr](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/720p_sr_distilled) | -|HunyuanVideo-1.5-1080P-sr |[1080P-sr](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/1080p_sr_distilled) | +|HunyuanVideo-1.5-720P-T2V-cfg-distill| Comming soon | +|HunyuanVideo-1.5-720P-I2V-cfg-distill |[720P-I2V-cfg-distill](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/720p_i2v_distilled) | +|HunyuanVideo-1.5-720P-T2V-sparse-cfg-distill| Comming soon | +|HunyuanVideo-1.5-720P-I2V-sparse-cfg-distill |[720P-I2V-sparse-cfg-distill](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/720p_i2v_distilled_sparse) | +|HunyuanVideo-1.5-720P-sr-step-distill |[720P-sr](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/720p_sr_distilled) | +|HunyuanVideo-1.5-1080P-sr-step-distill |[1080P-sr](https://huggingface.co/tencent/HunyuanVideo-1.5/tree/main/transformer/1080p_sr_distilled) |