File size: 981 Bytes
9b3b1b4
 
 
 
 
2c53c97
9b3b1b4
 
 
 
 
 
201dbf7
9b3b1b4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2c53c97
 
9b3b1b4
2c53c97
 
9b3b1b4
2c53c97
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import os
import sys
import time
import signal
import io
from PIL import Image

from fastapi import FastAPI, Request, status, Form, UploadFile
from fastapi.staticfiles import StaticFiles
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel, Field
from fastapi.exceptions import RequestValidationError
from fastapi.responses import Response

import fn
import gradio as gr
from app import demo

app = FastAPI()

app.add_middleware(
    CORSMiddleware,
    allow_origins=['*'],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

gr.mount_gradio_app(app, demo, path="/gradio")

fn.load_model()

@app.post("/katanuki")
async def katanuki_image(file: UploadFile = Form(...)):
    file_content = await file.read()
    file_stream = io.BytesIO(file_content)

    dst_image = fn.animeseg(Image.open(file_stream))
    binary = fn.pil_to_webp(Image.fromarray(dst_image))

    return Response(content=binary, media_type="image/webp")