From 95f44ed4fef1af146d16b314c193276916eb037f Mon Sep 17 00:00:00 2001 From: Sora <654163754@qq.com> Date: Fri, 1 Dec 2023 10:13:42 +0800 Subject: [PATCH] =?UTF-8?q?update=20server=5Ffastapi.py:=20=E7=BC=BA?= =?UTF-8?q?=E5=B0=91web=E6=96=87=E4=BB=B6=E6=97=B6=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF=E3=80=82configyml=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=9B=B4=E5=A4=9A=E5=B8=AE=E5=8A=A9=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- default_config.yml | 4 +++- server_fastapi.py | 24 ++++++++++++++++-------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/default_config.yml b/default_config.yml index 6094698..eb6872f 100644 --- a/default_config.yml +++ b/default_config.yml @@ -121,8 +121,10 @@ server: port: 5000 # 模型默认使用设备:但是当前并没有实现这个配置。 device: "cuda" - # 需要加载的所有模型的配置 + # 需要加载的所有模型的配置,可以填多个模型,也可以不填模型,等网页成功后手动加载模型 + # 不加载模型的配置格式:删除默认给的两个模型配置,给models赋值 [ ],也就是空列表。参考模型2的speakers 即 models: [ ] # 注意,所有模型都必须正确配置model与config的路径,空路径会导致加载错误。 + # 也可以不填模型,等网页加载成功后手动填写models。 models: - # 模型的路径 model: "" diff --git a/server_fastapi.py b/server_fastapi.py index 562fad1..571a4b8 100644 --- a/server_fastapi.py +++ b/server_fastapi.py @@ -149,17 +149,24 @@ if __name__ == "__main__": app = FastAPI() app.logger = logger # 挂载静态文件 + logger.info("开始挂载网页页面") StaticDir: str = "./Web" - dirs = [fir.name for fir in os.scandir(StaticDir) if fir.is_dir()] - files = [fir.name for fir in os.scandir(StaticDir) if fir.is_dir()] - for dirName in dirs: - app.mount( - f"/{dirName}", - StaticFiles(directory=f"./{StaticDir}/{dirName}"), - name=dirName, + if not os.path.isdir(StaticDir): + logger.warning( + "缺少网页资源,无法开启网页页面,如有需要请在 https://github.com/jiangyuxiaoxiao/Bert-VITS2-UI 或者Bert-VITS对应版本的release页面下载" ) + else: + dirs = [fir.name for fir in os.scandir(StaticDir) if fir.is_dir()] + files = [fir.name for fir in os.scandir(StaticDir) if fir.is_dir()] + for dirName in dirs: + app.mount( + f"/{dirName}", + StaticFiles(directory=f"./{StaticDir}/{dirName}"), + name=dirName, + ) loaded_models = Models() # 加载模型 + logger.info("开始加载模型") models_info = config.server_config.models for model_info in models_info: loaded_models.init_model( @@ -605,7 +612,8 @@ if __name__ == "__main__": logger.warning("本地服务,请勿将服务端口暴露于外网") logger.info(f"api文档地址 http://127.0.0.1:{config.server_config.port}/docs") - webbrowser.open(f"http://127.0.0.1:{config.server_config.port}") + if os.path.isdir(StaticDir): + webbrowser.open(f"http://127.0.0.1:{config.server_config.port}") uvicorn.run( app, port=config.server_config.port, host="0.0.0.0", log_level="warning" )