在尝试调用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 FastAPI
from modules.shared_cmd_options import cmd_opts
from 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_callbacks
script_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)
最终实现:文章来源:https://www.toymoban.com/news/detail-850489.html
文章来源地址https://www.toymoban.com/news/detail-850489.html
到了这里,关于Stable Diffusion WebUI API http://127.0.0.1:7860/docs空白的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!