Stable Diffusion近来大热,但是插件开发的资料少之又少。
这里提供一些插件开发的经验,可供参考。
1.替换启动页。
如果你想要在运行Stable Diffusion的基础上想要一些独有的操作,不想要进行裁剪,直接替换启动页面,那么就需要在webui中进行替换
这里modules.ui.create_ui就是原来创建的逻辑,然后这个shared.demo.lauch的方法是启动页面的创建方法。如果要替换启动页只要替换webui.py的webui方法里面的shared.demo的ui
(1)这里需要注意的事,有可能会出现循环引用的问题。那么你最好把你需要创建的ui逻辑,放到modules文件夹里面。这样才能解决引用的问题。
(2)然后代码,如果索引不到那么请使用全路径。
2.中断和跳过的操作
如果你想要对正在运行的任务使用直接中断或者跳过步骤的操作,如果你直接发送一个中断命令去处理,会发现,你发送的命令是不会被打断的。而Stable Diffusion是提供了利用state的打断机制。
from modules.shared import statewith queue_lock:state.begin()运行逻辑state.end()//打断def interrupt():print("#################################interrupt###############################")state.interrupt()//跳过de