50 lines
1.7 KiB
Python
50 lines
1.7 KiB
Python
import os
|
|
|
|
import uvicorn
|
|
from fastapi import FastAPI
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
|
|
from workflow_service import database
|
|
from workflow_service.config import Settings
|
|
from workflow_service.routes import service, workflow, run
|
|
|
|
settings = Settings()
|
|
|
|
web_app = FastAPI(title="ComfyUI Workflow Service & Management API")
|
|
|
|
# 配置跨域支持
|
|
web_app.add_middleware(
|
|
CORSMiddleware,
|
|
allow_origins=["*"], # 允许所有来源,生产环境中建议限制具体域名
|
|
allow_credentials=True,
|
|
allow_methods=["*"], # 允许所有HTTP方法
|
|
allow_headers=["*"], # 允许所有请求头
|
|
)
|
|
|
|
web_app.include_router(service.service_router)
|
|
web_app.include_router(workflow.workflow_router)
|
|
web_app.include_router(run.run_router)
|
|
|
|
|
|
@web_app.on_event("startup")
|
|
async def startup_event():
|
|
"""服务启动时,初始化数据库并为所有配置的服务器创建输入/输出目录。"""
|
|
await database.init_db()
|
|
try:
|
|
servers = settings.SERVERS
|
|
print(f"检测到 {len(servers)} 个 ComfyUI 服务器配置。")
|
|
for server in servers:
|
|
print(f" - 正在为服务器 {server.http_url} 准备目录...")
|
|
os.makedirs(server.input_dir, exist_ok=True)
|
|
print(f" - 输入目录: {os.path.abspath(server.input_dir)}")
|
|
os.makedirs(server.output_dir, exist_ok=True)
|
|
print(f" - 输出目录: {os.path.abspath(server.output_dir)}")
|
|
except ValueError as e:
|
|
print(f"错误: 无法在启动时初始化服务器目录: {e}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
uvicorn.run(
|
|
"workflow_service.main:web_app", host="0.0.0.0", port=18000, reload=True
|
|
)
|