Commit 8d5d863a authored by arcticfaded's avatar arcticfaded
Browse files

gradio and FastAPI

parent 1df3ff25
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -16,9 +16,11 @@ class TextToImageResponse(BaseModel):


class Api:
    def __init__(self, app):
    def __init__(self, app, queue_lock):
        self.router = APIRouter()
        app.add_api_route("/sdapi/v1/txt2img", self.text2imgapi, methods=["POST"])
        self.app = app
        self.queue_lock = queue_lock
        self.app.add_api_route("/sdapi/v1/txt2img", self.text2imgapi, methods=["POST"])

    def text2imgapi(self, txt2imgreq: StableDiffusionProcessingAPI ):
        populate = txt2imgreq.copy(update={ # Override __init__ params
@@ -30,6 +32,7 @@ class Api:
        )
        p = StableDiffusionProcessingTxt2Img(**vars(populate))
        # Override object param
        with self.queue_lock:
            processed = process_images(p)
        
        b64images = []
@@ -52,5 +55,5 @@ class Api:
        raise NotImplementedError

    def launch(self, server_name, port):
        app.include_router(self.router)
        uvicorn.run(app, host=server_name, port=port)
        self.app.include_router(self.router)
        uvicorn.run(self.app, host=server_name, port=port)
+7 −9
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ import time
import importlib
import signal
import threading

from fastapi import FastAPI
from fastapi.middleware.gzip import GZipMiddleware

from modules.paths import script_path
@@ -31,7 +31,6 @@ from modules.paths import script_path
from modules.shared import cmd_opts
import modules.hypernetworks.hypernetwork


queue_lock = threading.Lock()


@@ -97,7 +96,7 @@ def initialize():

def create_api(app):
    from modules.api.api import Api
    api = Api(app)
    api = Api(app, queue_lock)
    return api

def wait_on_server(demo=None):
@@ -153,11 +152,10 @@ def webui(launch_api=False):
        print('Restarting Gradio')



task = []
if __name__ == "__main__":
    if not cmd_opts.nowebui:
    if cmd_opts.nowebui:
        api_only()

    if cmd_opts.api:
        webui(True)
    else:
        webui(False)
        webui(cmd_opts.api)
 No newline at end of file