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 })