Re-use webui fastapi application rather than requiring one or the other, not both.

This commit is contained in:
Ryan Voots 2022-10-17 12:49:33 -04:00 committed by AUTOMATIC1111
parent f29b16bad1
commit c3851a853d
2 changed files with 9 additions and 11 deletions

View File

@ -2,15 +2,13 @@ from modules.api.processing import StableDiffusionProcessingAPI
from modules.processing import StableDiffusionProcessingTxt2Img, process_images from modules.processing import StableDiffusionProcessingTxt2Img, process_images
import modules.shared as shared import modules.shared as shared
import uvicorn import uvicorn
from fastapi import FastAPI, Body, APIRouter from fastapi import Body, APIRouter
from fastapi.responses import JSONResponse from fastapi.responses import JSONResponse
from pydantic import BaseModel, Field, Json from pydantic import BaseModel, Field, Json
import json import json
import io import io
import base64 import base64
app = FastAPI()
class TextToImageResponse(BaseModel): class TextToImageResponse(BaseModel):
images: list[str] = Field(default=None, title="Image", description="The generated image in base64 format.") images: list[str] = Field(default=None, title="Image", description="The generated image in base64 format.")
parameters: Json parameters: Json
@ -18,7 +16,7 @@ class TextToImageResponse(BaseModel):
class Api: class Api:
def __init__(self): def __init__(self, app):
self.router = APIRouter() self.router = APIRouter()
app.add_api_route("/v1/txt2img", self.text2imgapi, methods=["POST"]) app.add_api_route("/v1/txt2img", self.text2imgapi, methods=["POST"])

View File

@ -96,14 +96,11 @@ def initialize():
def api(): def api():
initialize()
from modules.api.api import Api from modules.api.api import Api
api = Api() api = Api(app)
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)
def webui(): def webui(launch_api=False):
initialize() initialize()
while 1: while 1:
@ -122,6 +119,9 @@ def webui():
app.add_middleware(GZipMiddleware, minimum_size=1000) app.add_middleware(GZipMiddleware, minimum_size=1000)
if (launch_api):
api(app)
while 1: while 1:
time.sleep(0.5) time.sleep(0.5)
if getattr(demo, 'do_restart', False): if getattr(demo, 'do_restart', False):
@ -143,6 +143,6 @@ def webui():
if __name__ == "__main__": if __name__ == "__main__":
if cmd_opts.api: if cmd_opts.api:
api() webui(True)
else: else:
webui() webui(False)