add CORS settings
This commit is contained in:
@@ -90,9 +90,11 @@ model_assets
|
||||
### API Server
|
||||
|
||||
構築した環境下で`python server_fastapi.py`するとAPIサーバーが起動します。
|
||||
|
||||
API仕様は起動後に`/docs`にて確認ください。
|
||||
|
||||
デフォルトではCORS設定を全てのドメインで許可しています。
|
||||
できる限り、`config.yml`の`server.origins`の値を変更し、信頼できるドメインに制限ください(キーを消せばCORS設定を無効にできます)。
|
||||
|
||||
## Bert-VITS2 v2.1との関係
|
||||
|
||||
基本的にはBert-VITS2 v2.1のモデル構造を少し改造しただけです。[事前学習モデル](https://huggingface.co/litagin/Style-Bert-VITS2-1.0-base)も、実質Bert-VITS2 v2.1と同じものを使用しています(不要な重みを削ってsafetensorsに変換したもの)。
|
||||
|
||||
@@ -173,12 +173,13 @@ class Webui_config:
|
||||
class Server_config:
|
||||
def __init__(
|
||||
self,
|
||||
port: int = 5000, device: str = "cuda", limit: int = 100, language: str = "JP"
|
||||
port: int = 5000, device: str = "cuda", limit: int = 100, language: str = "JP", origins: List[str] = None
|
||||
):
|
||||
self.port: int = port
|
||||
self.device: str = device
|
||||
self.language: str = language
|
||||
self.limit: int = limit
|
||||
self.origins: List[str] = origins
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, data: Dict[str, any]):
|
||||
|
||||
@@ -70,3 +70,5 @@ server:
|
||||
device: "cuda"
|
||||
language: "JP"
|
||||
limit: 100
|
||||
origins:
|
||||
- "*"
|
||||
|
||||
@@ -4,6 +4,7 @@ api服务 多版本多模型 fastapi实现
|
||||
import argparse
|
||||
from fastapi import FastAPI, Query, Request
|
||||
from fastapi.responses import Response, FileResponse
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from io import BytesIO
|
||||
from scipy.io import wavfile
|
||||
import uvicorn
|
||||
@@ -68,6 +69,16 @@ if __name__ == "__main__":
|
||||
load_models(model_holder)
|
||||
limit = config.server_config.limit
|
||||
app = FastAPI()
|
||||
allow_origins = config.server_config.origins
|
||||
if allow_origins:
|
||||
logger.warning(f"CORS allow_origins={config.server_config.origins}. If you don't want, modify config.yml")
|
||||
app.add_middleware(
|
||||
CORSMiddleware,
|
||||
allow_origins=config.server_config.origins,
|
||||
allow_credentials=True,
|
||||
allow_methods=["*"],
|
||||
allow_headers=["*"],
|
||||
)
|
||||
app.logger = logger
|
||||
|
||||
async def _voice(
|
||||
|
||||
Reference in New Issue
Block a user