使用 PAI-Blade 优化 Stable Diffusion 推理流程(二)
内容提要
本文介绍了使用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模型的支持最为全面,性能和显存使用最佳。