FramePack 项目设计文档
1. 项目概述
1.1 项目简介
FramePack 是一个基于深度学习的图像到视频(I2V)生成系统,采用"下一帧预测模型"架构。该项目由 Lvmin Zhang 开发,能够从单张静态图像生成高质量的长视频,支持长达60秒的视频生成。

1.2 项目定位
- 技术方向: 深度学习视频生成、扩散模型
- 应用场景: 内容创作、视频编辑、艺术生成、AI辅助创作
- 目标用户: 创作者、研究人员、AI爱好者、开发者
- 核心价值: 低显存需求、高质量输出、可配置性强、易于使用
1.3 核心特性
| 特性 | 描述 |
|---|---|
| 渐进式生成 | 采用下一帧预测策略,逐段生成视频内容 |
| 上下文压缩 | 将输入上下文压缩到固定长度,使生成工作量与视频长度无关 |
| 内存优化 | 仅需6GB显存即可使用13B模型生成1分钟视频 |
| TeaCache加速 | 可选的缓存加速机制,可提升约1.5-2倍速度 |
| UniPC采样器 | 自研流匹配采样器,支持多阶预测和校正 |
| Web UI界面 | 基于Gradio的友好用户界面 |
| 实时预览 | 生成过程中可实时查看潜在空间预览 |
| 分辨率自适应 | 自动调整输入图像到最接近的标准分辨率桶 |
2. 系统架构设计
2.1 整体架构图
┌─────────────────────────────────────────────────────────────────┐
│ 用户交互层 │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │
│ │ 图像上传 │ │ 提示词输入 │ │ 参数配置面板 │ │
│ └──────────────┘ └──────────────┘ └──────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ Web UI 层 │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ demo_gradio.py (Gradio 应用) │ │
│ │ - 用户输入验证 - 异步任务调度 - 进度实时反馈 │ │
│ └───────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 业务逻辑层 │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌─────────────┐ │
│ │ 图像处理 │ │ 文本编码 │ │ 采样生成 │ │ 视频拼接 │ │
│ └───────────┘ └───────────┘ └───────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 核心模型层 │
│ ┌───────────────┐ ┌──────────────┐ ┌─────────────────────┐ │
│ │ HunyuanVideo │ │ FramePack │ │ CLIP Vision │ │
│ │ Transformer │ │ I2V Model │ │ Encoder │ │
│ └───────────────┘ └──────────────┘ └─────────────────────┘ │
│ ┌──────────────────┐ ┌──────────────────┐ ┌───────────────┐ │
│ │ Llama Text Encoder│ │ CLIP Text Encoder│ │ VAE │ │
│ └──────────────────┘ └──────────────────┘ └───────────────┘ │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 支撑服务层 │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌─────────────┐ │
│ │ 内存管理 │ │ 设备管理 │ │ 缓存加速 │ │ 进度管理 │ │
│ │ memory.py │ │ CUDA │ │ TeaCache │ │ AsyncStream │ │
│ └───────────┘ └───────────┘ └───────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────┘
2.2 目录结构设计
d:/MyDrivers/update/framepack_cu126_torch26/
├── environment.bat # 环境配置脚本
├── run.bat # 启动脚本
├── update.bat # 更新脚本
│
├── system/ # 系统依赖目录
│ ├── git/ # Git版本控制工具
│ └── python/ # Python 3.10 环境
│ ├── Lib/ # Python标准库
│ └── site-packages/ # 第三方库
│
└── webui/ # Web UI主目录
├── demo_gradio.py # 主Web UI程序(FramePack版本)
├── demo_gradio_f1.py # F1版本的Web UI程序
├── requirements.txt # Python依赖列表
├── README.md # 项目文档
├── .gitignore # Git忽略配置
│
├── outputs/ # 输出视频存储
├── hf_download/ # Hugging Face模型缓存
│ └── hub/ # 下载的模型仓库
│ ├── models--hunyuanvideo-community--HunyuanVideo/
│ ├── models--lllyasviel--flux_redux_bfl/
│ └── models--lllyasviel--FramePackI2V_HY/
│
└── diffusers_helper/ # 辅助模块
├── hunyuan.py # 混元模型相关函数
├── memory.py # 内存管理工具
├── utils.py # 通用工具函数
├── clip_vision.py # CLIP视觉编码
├── bucket_tools.py # 分辨率桶工具
├── thread_utils.py # 线程工具
├── hf_login.py # Hugging Face登录
├── dit_common.py # DiT通用组件
│
├── models/ # 模型定义
│ └── hunyuan_video_packed.py
│
├── pipelines/ # 采样管道
│ └── k_diffusion_hunyuan.py
│
├── k_diffusion/ # K-Diffusion采样器
│ ├── uni_pc_fm.py # UniPC流匹配采样器
│ └── wrapper.py # 采样器包装器
│
└── gradio/ # Gradio UI组件
└── progress_bar.py
3. 功能需求分析
3.1 核心功能模块
3.1.1 图像到视频生成
功能描述: 从单张静态图像生成动态视频
输入参数:
- 输入图像: 支持 PNG、JPG、JPEG 等常见图像格式
- 提示词: 文本描述,指导视频生成方向
- 负提示词: 需要避免的内容
- 随机种子: 控制生成结果的随机性
- 视频时长: 1-60秒可调
- 采样步数: 1-50步,影响质量和速度
- 潜在窗口大小: 控制生成策略(默认32)
- CFG Scale: 分类器自由引导强度(1.0-10.0)
- GS (Distilled CFG Scale): 蒸馏引导比例(1.0-10.0)
- Rescale: 重新缩放参数(0.0-1.0)
- GPU内存保留: 低显存模式下预留显存大小(GB)
- TeaCache开关: 启用/禁用加速缓存
- MP4 CRF: 输出视频质量参数(0-51)
输出:
- MP4格式的视频文件
- 实时潜在空间预览
- 生成进度和描述
实现要点:
- 图像预处理: 调整尺寸、中心裁剪到标准分辨率桶
- VAE编码: 将图像编码到潜在空间
- 文本编码: 使用Llama和CLIP双编码器
- 图像特征提取: 使用CLIP Vision提取视觉特征
- 渐进式生成: 逐段生成潜在帧
- VAE解码: 将潜在空间解码为像素
- 视频拼接: 使用软连接平滑过渡
3.1.2 实时进度预览
功能描述: 在生成过程中实时显示进度和预览
功能点:
- 潜在空间预览: 显示当前生成的潜在帧(快速解码)
- 进度条: 百分比可视化
- 进度描述: 文本形式的当前状态
- 支持用户中断: 随时停止生成
实现方式:
- 使用 AsyncStream 实现异步通信
- 快速解码使用 vae_decode_fake() 跳过完整VAE
- Gradio 组件实时更新
3.1.3 内存优化管理
功能描述: 根据显卡显存自动优化模型加载策略
策略:
-
高显存模式(>60GB):
- 所有模型常驻GPU
- 最快速度
- 无需模型卸载
-
低显存模式(6-60GB):
- 使用 DynamicSwapInstaller 动态加载
- 按需加载和卸载模型
- 保持指定的预留显存
- VAE启用分片和瓦片处理
实现技术:
- 动态交换: 比Hugging Face官方实现快3倍
- VAE分片: 大特征图分块处理
- VAE瓦片: 空间分块减少峰值显存
- 模型卸载: 及时释放不需要的模型
3.1.4 加速优化
功能描述: 提供多种加速策略提升生成速度
技术方案:
-
TeaCache加速:
- 原理: 跳过变化小的采样步骤
- 加速比: 1.5x-2.1x
- 配置: rel_l1_thresh=0.15
- 权衡: 轻微质量损失
-
注意力优化:
- Flash Attention: 快速注意力实现
- Memory Efficient SDP: 内存高效SDP
- cuDNN SDP: NVIDIA优化实现
- Xformers: 第三方加速库
- SageAttention: 另一种高效注意力实现
-
采样器优化:
- UniPC: 自研流匹配采样器
- 支持多阶预测和校正
- 比传统采样器更高效
3.1.5 分辨率自适应
功能描述: 自动调整输入图像到最接近的标准分辨率
分辨率桶(640基准):
- (416, 960), (448, 864), (480, 832), (512, 768)
- (544, 704), (576, 672), (608, 640), (640, 608)
- (672, 576), (704, 544), (768, 512), (832, 480)
- (864, 448), (960, 416)
实现:
- find_nearest_bucket() 函数计算最近距离
- 保持宽高比或调整到标准比例
- 避免非标准分辨率导致的效率问题
3.2 Web界面功能
3.2.1 图像上传组件
- 支持拖拽上传
- 图像预览
- 自动格式验证
3.2.2 文本输入组件
- 提示词输入框(多行)
- 负提示词输入框
- 快速提示词示例数据集
3.2.3 参数配置面板
- 滑块: 连续参数调整
- 数字框: 精确数值输入
- 复选框: 开关选项
- 下拉框: 离散选项
3.2.4 输出展示区
- 视频播放器: MP4播放
- 图像预览: 潜在空间可视化
- 进度条: HTML渲染的进度条
- 状态描述: Markdown格式文本
3.2.5 控制按钮
- Start Generation: 开始生成
- End Generation: 中断生成
4. 技术栈设计
4.1 深度学习框架
| 库 | 版本 | 用途 |
|---|---|---|
| PyTorch | 2.7.1+cu126 | 核心深度学习框架 |
| torchvision | 0.22.1+cu126 | 图像处理工具 |
| torchaudio | 2.7.1+cu126 | 音频处理工具 |
| diffusers | 0.33.1 | 扩散模型库 |
| transformers | 4.46.2 | Transformer模型库 |
| accelerate | 1.6.0 | 分布式训练和推理加速 |
4.2 模型架构
文本编码:
- LlamaModel: 主文本编码器(HunyuanVideo)
- CLIPTextModel: 辅助文本编码器
图像编码:
- SiglipVisionModel: CLIP Vision编码器
- SiglipImageProcessor: 图像预处理
视频生成:
- HunyuanVideoTransformer3DModelPacked: 3D变换器
- AutoencoderKLHunyuanVideo: 混元视频VAE
4.3 Web UI技术
- Gradio 5.23.0: Web界面框架
- HTML/CSS: 自定义样式
- JavaScript: 动态更新
4.4 图像视频处理
| 库 | 版本 | 用途 |
|---|---|---|
| Pillow | 11.1.0 | 图像处理 |
| opencv-contrib-python | 最新 | 计算机视觉 |
| av | 12.1.0 | 音视频编解码 |
| ffmpy | - | FFmpeg封装 |
4.5 数值计算
| 库 | 版本 | 用途 |
|---|---|---|
| NumPy | 1.26.2 | 数值计算 |
| SciPy | 1.12.0 | 科学计算 |
| einops | - | 张量操作 |
| torchsde | 0.2.6 | 随机微分方程 |
4.6 其他依赖
- safetensors: 安全张量存储
- sentencepiece 0.2.0: 分词工具
- requests 2.31.0: HTTP请求
5. 数据流设计
5.1 生成流程数据流
┌─────────────┐
│ 输入图像 │ (H×W×3 numpy数组)
└──────┬──────┘
↓
┌─────────────────────────────┐
│ resize_and_center_crop │ → 调整到标准分辨率桶
└──────┬──────────────────────┘
↓
┌─────────────────────────────┐
│ VAE Encode │ → 潜在空间 (C×T×H/8×W/8)
└──────┬──────────────────────┘
↓
┌─────────────────────────────┐
│ CLIP Vision Encode │ → 图像视觉特征
└──────┬──────────────────────┘
↓
┌─────────────────────────────┐
│ Llama Encode (提示词) │ → 文本向量 (512)
└──────┬──────────────────────┘
↓
┌─────────────────────────────┐
│ CLIP Encode (提示词) │ → 池化向量
└──────┬──────────────────────┘
↓
┌─────────────────────────────┐
│ Transformer采样 │ → 逐段生成潜在帧
│ (UniPC采样器) │
└──────┬──────────────────────┘
↓
┌─────────────────────────────┐
│ VAE Decode │ → 像素帧
└──────┬──────────────────────┘
↓
┌─────────────────────────────┐
│ soft_append_bcthw │ → 视频拼接(平滑过渡)
└──────┬──────────────────────┘
↓
┌─────────────────────────────┐
│ save_bcthw_as_mp4 │ → MP4输出文件
└─────────────────────────────┘
5.2 渐进式生成策略
分段生成:
python
# 示例:24段生成
total_latent_sections = 24
latent_paddings = [3] + [2] * 21 + [1, 0]
# 含义:
# 第1段:padding=3 (跳过前3段)
# 第2-22段:padding=2 (跳过前2段)
# 第23段:padding=1 (跳过前1段)
# 第24段:padding=0 (不跳过)
历史管理:
- history_latents: 存储已生成的潜在帧
- history_pixels: 存储已解码的像素帧
- 重叠区域: 使用软连接实现平滑过渡
5.3 异步通信数据流
Worker线程 UI主线程
│ │
│──('progress', data)──────→│ 更新进度条和预览
│ │
│──('file', filename)──────→│ 显示输出视频
│ │
│──('end', None)────────────→│ 重置界面状态
│ │
│←──────────────────────────│
│ 检查中断信号 │
│ │
6. 核心算法设计
6.1 FramePack架构原理
核心思想: 压缩上下文到固定长度
传统方法问题:
- 计算量随视频长度线性增长
- 长视频需要极大显存
- 生成速度随长度下降
FramePack解决方案:
- 上下文压缩: 将历史帧压缩到固定长度
- 滑动窗口: 只关注近期上下文
- 渐进式生成: 逐段生成,实时输出
优势:
- 计算量与视频长度无关
- 支持任意长度视频
- 内存需求恒定
6.2 TeaCache加速算法
原理:
python
# 跟踪相邻步骤的潜在空间变化
rel_l1_dist = norm(x_t - x_{t-1}) / norm(x_{t-1})
# 如果变化小于阈值,跳过计算
if accumulated_rel_l1 < rel_l1_thresh:
skip = True
else:
accumulated_rel_l1 = 0
skip = False
阈值函数:
python
# 多项式拟合的阈值
rel_l1_thresh = 0.15 # 提供2.1x加速
# 可调节:0.1-0.2范围
效果:
- 速度提升: 1.5x-2.1x
- 质量影响: 细节可能略有损失
- 适用场景: 快速预览
6.3 UniPC采样器
全称: Unified Predictor-Corrector
算法特点:
- 流匹配: 基于Flow Matching的扩散采样
- 多阶预测: 使用历史预测提高精度
- 校正步骤: 对预测结果进行校正
- 变体支持: bh1, bh2 两种模式
核心代码:
python
class FlowMatchUniPC:
def __init__(self, order=3, variant='bh1'):
self.order = order # 预测阶数
self.variant = variant # 变体类型
def step(self, x, t, model):
# 预测步骤
x_pred = self.predict(x, t, model)
# 校正步骤
x_corrected = self.correct(x_pred, t, model)
return x_corrected
6.4 动态交换算法
问题: Hugging Face的sequential offload太慢
解决方案: DynamicSwapInstaller
原理:
python
# 修改模块的__getattr__方法
def __getattr__(self, name):
# 按需加载模块
if not loaded:
load_to_gpu()
# 正常访问
return super().__getattr__(name)
优势:
- 速度快3倍
- 按需加载
- 自动卸载
6.5 注意力机制优化
支持的注意力实现:
- Flash Attention: NVIDIA优化的快速注意力
- Memory Efficient SDP: 内存高效的SDP
- cuDNN SDP: cuDNN优化的SDP
- Xformers: Meta的高效注意力库
- SageAttention: 另一种高效注意力实现
自动选择策略:
python
enabled_backends = []
if torch.backends.cuda.flash_sdp_enabled():
enabled_backends.append("flash")
if torch.backends.cuda.math_sdp_enabled():
enabled_backends.append("math")
if torch.backends.cuda.mem_efficient_sdp_enabled():
enabled_backends.append("mem_efficient")
if torch.backends.cuda.cudnn_sdp_enabled():
enabled_backends.append("cudnn")
7. 模块设计
7.1 demo_gradio.py - 主Web UI程序
职责: 提供用户界面和任务调度
主要功能:
- Gradio界面构建
- 用户输入验证
- 异步任务调度
- 进度实时反馈
- 文件输出管理
关键函数:
worker(): 主生成工作线程generate(): 生成任务入口end_generation(): 中断生成
7.2 hunyuan.py - 混元模型相关函数
职责: 封装混元模型的编码和解码操作
主要功能:
- 文本编码(Llama + CLIP)
- VAE编码和解码
- 快速潜在空间解码
关键函数:
encode_prompt_conds(): 编码提示词vae_encode(): VAE编码vae_decode(): VAE解码vae_decode_fake(): 快速潜在解码
7.3 memory.py - 内存管理工具
职责: 管理GPU显存和模型加载
主要功能:
- 显存监控
- 动态模型加载/卸载
- 内存保留策略
关键类和函数:
DynamicSwapInstaller: 动态交换安装器get_cuda_free_memory_gb(): 获取空闲显存move_model_to_device_with_memory_preservation(): 移动模型到设备offload_model_from_device_for_memory_preservation(): 卸载模型
7.4 utils.py - 通用工具函数
职责: 提供各种通用工具函数
主要功能:
- 图像处理(调整大小、裁剪)
- 张量操作
- 视频保存
- 分辨率桶计算
关键函数:
resize_and_center_crop(): 调整大小并中心裁剪soft_append_bcthw(): 软连接拼接视频save_bcthw_as_mp4(): 保存为MP4crop_or_pad_yield_mask(): 裁剪或填充并返回掩码
7.5 k_diffusion_hunyuan.py - 采样管道
职责: 实现Hunyuan模型的采样流程
主要功能:
- 流匹配时间变换
- Sigma计算
- 采样器包装
- 引导缩放
关键函数:
sample_hunyuan(): Hunyuan采样主函数flux_time_shift(): Flux时间变换calculate_flux_mu(): 计算Mu参数get_flux_sigmas_from_mu(): 从Mu计算Sigma
7.6 hunyuan_video_packed.py - 3D变换器模型
职责: 定义HunyuanVideo的3D变换器模型
主要功能:
- 3D注意力机制
- 旋转位置编码
- 多种注意力后端支持
- Flash Attention集成
关键类:
HunyuanAttnProcessorFlashAttnDouble: 双流Flash AttentionHunyuanAttnProcessorFlashAttnSingle: 单流Flash AttentionHunyuanVideoTransformer3DModelPacked: 主变换器模型
7.7 uni_pc_fm.py - UniPC采样器
职责: 实现流匹配的UniPC采样器
主要功能:
- 多阶预测
- 校正步骤
- 变体支持(bh1, bh2)
关键类:
FlowMatchUniPC: 流匹配UniPC采样器sample_unipc(): 采样入口函数
7.8 clip_vision.py - CLIP视觉编码
职责: 封装CLIP Vision的编码操作
主要功能:
- 图像特征提取
- 视觉编码器调用
关键函数:
hf_clip_vision_encode(): Hugging Face CLIP Vision编码
7.9 bucket_tools.py - 分辨率桶工具
职责: 管理标准分辨率桶
主要功能:
- 查找最近分辨率桶
- 分辨率标准化
关键函数:
find_nearest_bucket(): 查找最近的分辨率桶
7.10 thread_utils.py - 线程工具
职责: 提供异步通信机制
主要功能:
- 异步流通信
- 线程间消息传递
关键类:
AsyncStream: 异步流通信类
8. 性能优化设计
8.1 内存优化策略
1. 动态模型加载:
- 按需加载模型到GPU
- 及时卸载不使用的模型
- 保持预留显存
2. VAE优化:
- 启用分片(slicing)
- 启用瓦片(tiling)
- 减少峰值显存占用
3. 精度优化:
- Transformer使用bfloat16
- VAE使用float16
- 混合精度计算
8.2 计算优化策略
1. TeaCache加速:
- 跳过变化小的采样步骤
- 累积相对L1距离
- 自适应阈值
2. 注意力优化:
- Flash Attention(最快)
- Memory Efficient SDP
- cuDNN SDP
- Xformers
3. 采样器优化:
- UniPC多阶预测
- 流匹配算法
- 高效的时间变换
8.3 I/O优化策略
1. 异步处理:
- Worker线程处理生成
- UI线程处理显示
- 异步流通信
2. 预览优化:
- 快速潜在解码
- 跳过完整VAE
- 实时进度更新
3. 批处理:
- 批量编码文本
- 批量处理图像
- 减少数据传输
9. 部署设计
9.1 环境要求
硬件要求:
- GPU: NVIDIA GPU(支持CUDA 12.6)
- 显存: 最低6GB(推荐12GB+)
- 内存: 16GB+
- 磁盘: 50GB+(用于模型存储)
软件要求:
- 操作系统: Windows/Linux
- Python: 3.10+
- CUDA: 12.6
- cuDNN: 8.x
9.2 安装步骤
1. 环境准备:
bash
# 克隆仓库
git clone <repository_url>
cd framepack_cu126_torch26
# 运行环境配置
environment.bat
2. 依赖安装:
bash
cd webui
pip install -r requirements.txt
3. 模型下载:
- 自动从Hugging Face下载
- 或手动下载到hf_download目录
4. 启动服务:
bash
run.bat
9.3 配置说明
环境变量:
HF_HOME: Hugging Face缓存目录CUDA_VISIBLE_DEVICES: GPU选择
启动参数:
--share: 创建公共链接--server: 服务器地址--port: 端口号--inbrowser: 自动打开浏览器
9.4 性能调优
高显存模式(>60GB):
python
high_vram = True
# 所有模型常驻GPU
低显存模式(6-60GB):
python
high_vram = False
# 启用动态交换
DynamicSwapInstaller.install_model(transformer, device=gpu)
TeaCache配置:
python
use_teacache = True
rel_l1_thresh = 0.15 # 可调节0.1-0.2
10. 扩展性设计
10.1 模型扩展
支持新模型:
- 实现新的Transformer模型
- 添加新的VAE编码器
- 集成新的文本编码器
接口设计:
python
class BaseTransformer(nn.Module):
def forward(self, x, t, **kwargs):
pass
class BaseVAE(nn.Module):
def encode(self, x):
pass
def decode(self, x):
pass
10.2 采样器扩展
添加新采样器:
- 实现采样器接口
- 注册到采样器工厂
- 在UI中添加选项
接口设计:
python
def sample_custom(model, noise, sigmas, extra_args=None):
# 实现自定义采样逻辑
pass
10.3 UI扩展
添加新组件:
- Gradio组件扩展
- 自定义CSS样式
- JavaScript交互
示例:
python
with gr.Blocks(css=custom_css) as demo:
# 自定义UI组件
pass
10.4 插件系统
插件接口:
python
class Plugin:
def on_before_generate(self, **kwargs):
pass
def on_after_generate(self, **kwargs):
pass
def on_progress(self, **kwargs):
pass
11. 安全性设计
11.1 输入验证
图像验证:
- 格式检查
- 尺寸限制
- 内容过滤
文本验证:
- 长度限制
- 特殊字符过滤
- 敏感词检测
11.2 资源限制
显存限制:
- 预留显存设置
- 峰值显存监控
- 自动降级策略
计算限制:
- 最大视频时长
- 最大分辨率
- 并发任务限制
11.3 文件安全
输出文件:
- 安全的文件名生成
- 输出目录隔离
- 定期清理
模型文件:
- 完整性校验
- 安全下载
- 版本管理
12. 测试设计
12.1 单元测试
测试覆盖:
- 工具函数测试
- 模型组件测试
- 采样器测试
测试框架:
- pytest
- unittest
12.2 集成测试
测试场景:
- 完整生成流程
- 多种参数组合
- 边界条件
12.3 性能测试
测试指标:
- 生成速度
- 显存占用
- 输出质量
测试工具:
- timeit
- memory_profiler
- FID/IS指标
13. 维护设计
13.1 日志系统
日志级别:
- DEBUG: 调试信息
- INFO: 一般信息
- WARNING: 警告信息
- ERROR: 错误信息
日志内容:
- 模型加载状态
- 生成进度
- 错误堆栈
13.2 错误处理
错误类型:
- 显存不足
- 模型加载失败
- 生成中断
- 文件操作错误
处理策略:
- 友好的错误提示
- 自动恢复机制
- 错误日志记录
13.3 版本管理
版本策略:
- 语义化版本
- 变更日志
- 向后兼容
更新机制:
- 自动检查更新
- 增量更新
- 回滚支持
14. 未来规划
14.1 短期目标
- 支持更多采样器
- 优化TeaCache算法
- 添加更多分辨率桶
- 改进UI交互
14.2 中期目标
- 支持音频生成
- 添加视频编辑功能
- 支持批量生成
- 添加API接口
14.3 长期目标
- 支持实时生成
- 多模态输入
- 分布式部署
- 云端服务
15. 参考资源
15.1 论文
- HunyuanVideo: 原始论文
- Flow Matching: 流匹配理论
- UniPC: 采样器论文
15.2 开源项目
- Diffusers: Hugging Face扩散模型库
- ComfyUI: 节点式UI框架
- Stable Diffusion: 稳定扩散模型
15.3 文档
- PyTorch文档
- Gradio文档
- CUDA编程指南
附录
A. 配置文件示例
requirements.txt:
accelerate==1.6.0
diffusers==0.33.1
transformers==4.46.2
gradio==5.23.0
sentencepiece==0.2.0
pillow==11.1.0
av==12.1.0
numpy==1.26.2
scipy==1.12.0
requests==2.31.0
torchsde==0.2.6
einops
opencv-contrib-python
safetensors
B. 命令行参数
run.bat:
batch
@echo off
call environment.bat
cd %~dp0webui
"%DIR%\python\python.exe" demo_gradio.py --server 127.0.0.1 --inbrowser
:done
pause
C. 环境变量
environment.bat:
batch
@echo off
set DIR=%~dp0system
set PATH=%DIR%\git\bin;%DIR%\python;%DIR%\python\Scripts;%PATH%
set PY_LIBS=%DIR%\python\Scripts\Lib;%DIR%\python\Scripts\Lib\site-packages
set PY_PIP=%DIR%\python\Scripts
set SKIP_VENV=1
set PIP_INSTALLER_LOCATION=%DIR%\python\get-pip.py

FramePack 使用时间接近性或特征相似性的帧打包方法。

抗漂移采样和训练方法。生成不同时序顺序帧的采样方法。阴影方块表示每次迭代中生成的帧,而白色方块表示迭代输入。将帧历史转换为离散表示的方法。