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