为了解决在内存中快速切换模型的问题,我查阅了以下资料:
知乎罗培宇stable-diffusion-webui源码分析系列,我看了1至3:
1.Gradio的基本用法
2.txt2img的实现
3.模型加载的过程
4.启动流程
5.多语言的实现方式
6.脚本的实现方式
7.扩展的实现方式
8.Lora功能的实现方式
9.euler a 采样器
10.unet网络结构
b站 :stable diffusion api 实现多人列队及切换模型的方法
Hardy的小屋:部署支持多人在线排队的Stable Diffusion服务
某issue中的点评:
这个思想是使用django做了一层外壳,使用django完成后续的接口调用操作吗?这样写的目的是什么,为什么不是在原有的基础上做出修改?谢谢
原有的sd-webui无法支持多人场景,多人加载不同的模型会乱掉。原来的代码对我来说太复杂了,所以就没在原来基础上改。
我的点评:其提到的reload_model_weights方法有用,确实能重新加载制定模型,但是每次都是从硬盘重新加载的。而stable-diffusion-webui是可以设置在内存中缓存模型的,这时用web方式切换模型就很快,基本是零点几秒。但使用API方式在切换模型时仍然慢。借鉴web方式切换模型的代码,就可以做到很快切换。
其它:
How to switch the model in the api?
Is there a way to define a checkpoint with API?