在嘗試調用Stable Diffusion WebUI API的時候,打開http://127.0.0.1:7860/docs遇到了以下頁面
網絡診斷是這樣的原因:
修bug,改來改去遇到了以下兩種頁面:
此時http://127.0.0.1:7860可以如下正常顯示:
查資料的時候找到說可能是swagger配置時出了問題
?
解決辦法:
步驟一:解壓文章綁定的資源包static,放在項目的根目錄下
步驟二:找到路徑形如:\Lib\site-packages\fastapi\openapi\docs.py 這個docs.py文件
swagger_js_url: str="/static/swagger-ui/swagger-ui-bundle.js",swagger_css_url: str="/static/swagger-ui/swagger-ui.css",swagger_favicon_url: str="/static/swagger-ui/favicon.png",
將這里的內容替換為本地文件
redoc_js_url: str = "/static/redoc/bundles/redoc.standalone.js",
redoc_favicon_url: str = "/static/redoc/favicon.png",
步驟三:將webui.py里的api_only()替換為這樣,即引入靜態文件
def api_only():from fastapi import FastAPIfrom modules.shared_cmd_options import cmd_optsfrom fastapi.staticfiles import StaticFiles##initialize.initialize()app = FastAPI()app.mount('/static', StaticFiles(directory='static'))##initialize_util.setup_middleware(app)api = create_api(app)from modules import script_callbacksscript_callbacks.before_ui_callback()script_callbacks.app_started_callback(None, app)print(f"Startup time: {startup_timer.summary()}.")api.launch(server_name="0.0.0.0" if cmd_opts.listen else "127.0.0.1",port=cmd_opts.port if cmd_opts.port else 7861,root_path=f"/{cmd_opts.subpath}" if cmd_opts.subpath else "")
參考了這篇知乎的方法二
fastapi docs 空白(2022年5月,已解決) - 知乎 (zhihu.com)
最終實現: