TypemovieInfer 是一个统一、面向生产环境的多 GPU 推理框架,专为消费级 GPU(RTX 4090/5090)设计,为当前先进的图像和视频生成模型提供优化的多 GPU 并行能力。
用途
该框架旨在让消费级显卡也能高效运行大型图像与视频生成模型,通过多 GPU 并行、量化与内存优化,降低硬件门槛,同时提供统一、简洁的调用接口。
主要能力
- 多 GPU 加速:支持多种并行策略。Para-Attention(ParaAttn)将注意力计算拆分到多张 GPU,适用于 FLUX、Kontext 和 WAN 模型;分布式数据并行(DDP)用于 Qwen 模型的批处理分发;通过 xfuser 集成支持序列并行(USP)。
- 内存优化:FP8 量化可减少约 50% 内存占用且质量损失极小;智能 CPU 卸载支持 3 级粒度;LoRA 缓存管理可高效加载/卸载权重。
- 统一 API:所有模型使用一致的接口,仅需 3 行代码即可运行任意模型。
- 灵活配置:基于 YAML 的配置系统,支持热重载,无需修改代码即可调参。
- 可扩展架构:插件式系统,可快速添加新模型。
- 生产就绪:已测试 5/7 模型(71% 覆盖率),提供 4090/5090 性能基准和错误诊断。
支持的模型
图像生成
- flux_paraattn:文生图,2× RTX 4090/5090,默认 1024×1024,支持多种 LoRA 风格(Film、Realistic、Cartoon、Anime、Sketch、Pixar、Ghibli 等),启用 FP8 量化,自动前置触发词。
- kontext_paraattn:上下文感知图像编辑,支持文生图与图生图,可自动拼接多张输入图像,支持多种宽高比(16:9、9:16、1:1 等)。
- qwen_ddp / qwen_edit_ddp:支持中文的文生图,通过 DDP 使用多 GPU,提供图像编辑变体,支持多种宽高比。注意:需要 diffusers 中的 QwenImagePipeline。
视频生成
- video_wan_lora_4090 / video_wan_lora_5090:图生视频(I2V),8× RTX 4090 或 8× RTX 5090,生成 81 帧 @ 15-16 fps。支持多种 LoRA 类别:基础运动(0_x)、说话动画(1_x)、宠物动作(2_x)、风景动画(3_x)、特效(5x、6x)。4090 变体提供加速 LoRA 选项(8 步 vs 30 步);5090 变体增强稳定性,推理速度提升 27%。启用 FP8 量化,支持 CPU 卸载内存优化。
使用方式
环境要求
- Python 3.8 或更高
- CUDA 11.8 或更高
- GPU:RTX 4090/5090 或类似(建议 24GB+ 显存)
- 操作系统:Linux(已测试),Windows(应可运行)
安装
提供基础安装和可选功能安装,安装后需验证。
快速开始
3 行代码即可生成图像:
model = load_model("flux_paraattn")
images = model.inference(prompt="A beautiful landscape", style_idx=0)
示例
- 图像生成(FLUX):
model = load_model("flux_paraattn"),调用inference传入 prompt 和 style_idx。 - 图像编辑(Kontext):
model = load_model("kontext_paraattn"),调用inference传入 prompt 和 image。 - 视频生成(WAN Video):
model = load_model("video_wan_lora_5090"),调用inference传入 input_image、lora_id、seed。 - 中文图像生成(Qwen):
model = load_model("qwen_ddp"),调用inference传入 prompt 和 ratio。
配置
每个模型有独立的 config.yaml,位于 typemovie_infer/models/<model_name>/config.yaml。关键参数包括:gpu_num、quant_type、model_path、world_size、num_frames、fps、high_cpu_memory、parameters_level、keep_lora_gpu、quant_model。
环境变量:MASTER_ADDR(默认 '127.0.0.1')、MASTER_PORT(默认 '23456')、NCCL_DEBUG、NCCL_IB_DISABLE。注意所有 handler 默认使用同一端口 23456,并发运行多个模型时需为每个模型设置不同的 MASTER_PORT。
适用场景
- 在消费级 GPU 上运行大型图像/视频生成模型。
- 需要多 GPU 并行加速的推理任务。
- 需要统一 API 快速切换不同模型的开发场景。
- 需要灵活配置和热重载的快速迭代环境。
限制
- 主要针对 RTX 4090/5090 优化,其他 GPU 兼容性未明确。
- 视频生成需要 8 张 GPU,硬件要求较高。
- Qwen 模型需要特定版本的 diffusers 支持。
- 已测试模型覆盖率为 71%(5/7),部分模型可能未完全验证。
- 多模型并发需手动设置不同端口。
- 性能数据基于特定硬件测试,实际表现可能因环境而异。
性能基准
在 8× RTX 4090(24GB)和 8× RTX 5090(32GB)上测试,CPU 为 Intel Xeon / AMD EPYC。整体性能 5090 比 4090 快 12%,推理阶段快 27%。8-GPU 设置下每 GPU 内存占用约 1.65GB。ParaAttn 模型随 GPU 数量线性扩展。
扩展与贡献
支持通过创建模型目录、config.yaml、实现 handler.py 中的 Handler 类并导出,快速添加新模型。项目采用 MIT 许可证,欢迎通过 GitHub Issues 报告问题或提交 PR。