|
|
from typing import Any, Dict, List, Optional, Tuple, Generator |
|
|
import gradio as gr |
|
|
|
|
|
import inspect |
|
|
def _signature_src( |
|
|
prompt: str |
|
|
) -> Tuple[str, Optional[List[str]], Optional[str]]: |
|
|
raise NotImplementedError |
|
|
|
|
|
def clone_signature(src): |
|
|
def deco(dst): |
|
|
dst.__signature__ = inspect.signature(src) |
|
|
dst.__annotations__ = src.__annotations__.copy() |
|
|
return dst |
|
|
return deco |
|
|
|
|
|
@clone_signature(_signature_src) |
|
|
def generate_image1(**kwargs) -> Tuple[str, Optional[List[str]], Optional[str]]: |
|
|
return ("COMPLETE", kwargs["prompt"], None) |
|
|
|
|
|
def generate_image2(prompt: str) -> Tuple[str, Optional[List[str]], Optional[str]]: |
|
|
return ("COMPLETE", prompt, None) |
|
|
|
|
|
with gr.Blocks() as app: |
|
|
gr.api(fn=generate_image1, api_name="generate_image1", show_api=True, queue=True, concurrency_id="gpu") |
|
|
gr.api(fn=generate_image2, api_name="generate_image2", show_api=True, queue=True, concurrency_id="gpu") |
|
|
|
|
|
app.launch(show_error=True) |
|
|
|