File size: 985 Bytes
8d3c364 | 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 | import numpy as np
import base64
import io
# import torch
from PIL import Image
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import JSONResponse
from fastapi.staticfiles import StaticFiles
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
app.mount('/static', StaticFiles(directory='static'), name='static')
# load model
# send to device
@app.get('/generate') # rate limit this
async def generate():
# create random latent vector
# forward latent vector to generator
# convert result tensor into image with ToPILImage()
# return image
arr = np.random.randint(0, 256, (256, 256, 3)).astype(np.uint8)
pil_img = Image.fromarray(arr)
buffer = io.BytesIO()
pil_img.save(buffer, format='PNG')
buffer.seek(0)
img_str = base64.b64encode(buffer.read()).decode('utf-8')
return JSONResponse({ 'image': img_str }) |