使用 PAI-Blade 优化 Stable Diffusion 推理流程(二)

💡 原文中文,约4400字,阅读约需11分钟。
📝

内容提要

本文介绍了使用PAI-Blade优化LoRA和Controlnet的推理流程,并在Stable Diffusion模型上进行了测试。PAI-Blade支持LoRA、ControlNet等常用功能,扩展了PAI-Blade的实用性。同时,PAI-Blade在Stable-Diffusion-webui中也提供了优化支持,通过extension的形式集成,可以便于用户使用。经过测试,PAI-Blade对Stable DIffusion模型的支持最为全面,同时性能和显存使用也是最佳水平。

🎯

关键要点

  • 本文介绍了使用PAI-Blade优化LoRA和Controlnet的推理流程。
  • PAI-Blade支持LoRA、ControlNet等常用功能,扩展了其实用性。
  • 在Stable-Diffusion-webui中,PAI-Blade提供了优化支持,便于用户使用。
  • PAI-Blade优化LoRA的方式包括加载模型、优化模型、替换原始模型。
  • 使用LoRA时,需传入freeze_module=False以便于权重切换。
  • 通过torch_blade.monkey_patch优化Stable Diffusion模型中的unet和vae部分。
  • 在A100/A10上测试LoRA优化的结果,测试模型为runwayml/stable-diffusion-v1-5。
  • ControlNet的推理分为两部分,优化ControlNet和Unet模型。
  • 使用Wrapper包装Unet以便于trace和优化。
  • PAI-Blade支持LoRA和ControlNet权重替换,提升模型灵活性。
  • 在webui中,PAI-Blade支持模型权重切换、LoRA、ControlNet等功能。
  • webui中采用逐个子模块优化的方法,几乎不影响模型推理速度。
  • PAI-Blade在加载LoRA权重时,将多个LoRA的权重与scale预先fuse,减少运行时开销。
  • 在A10上测试webui中Stable Diffusion V1模型的推理速度,结果显示PAI-Blade优化效果显著。
  • PAI-Blade对Stable Diffusion模型的支持最为全面,性能和显存使用最佳。
➡️

继续阅读