|
import flask |
|
from flask import Flask, request, json, send_file, Response |
|
import torch |
|
from diffusers import StableDiffusionPipeline, EulerAncestralDiscreteScheduler |
|
from random import randrange |
|
from io import BytesIO |
|
|
|
repo = "Bingsu/my-korean-stable-diffusion-v1-5" |
|
euler_ancestral_scheduler = EulerAncestralDiscreteScheduler.from_config(repo, subfolder="scheduler") |
|
pipe = StableDiffusionPipeline.from_pretrained( |
|
repo, scheduler=euler_ancestral_scheduler, torch_dtype=torch.float16, |
|
) |
|
pipe.to("cuda") |
|
|
|
app = Flask(__name__) |
|
|
|
@app.post('/sd') |
|
def generate(): |
|
text = request.json['text'] |
|
seed = randrange(1, 9999999999) |
|
generator = torch.Generator('cuda').manual_seed(seed) |
|
image = pipe(text, num_inference_steps=25, generator=generator).images[0] |
|
img_io = BytesIO() |
|
image.save(img_io, 'PNG') |
|
img_io.seek(0) |
|
return send_file(img_io, mimetype='image/png') |
|
|
|
|
|
if __name__ == '__main__': |
|
app.run('0.0.0.0', 8282, debug=False) |