File size: 1,118 Bytes
1c817fd
 
 
 
 
 
 
 
 
 
 
 
e83e49f
 
 
 
 
1c817fd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import os
from flask import jsonify, send_file, request
from io import BytesIO
from PIL import Image
from main import *
import torch

def generate_image(prompt, output_path="output_image.png"):
    if imagegen_model is None:
        return "Image generation model not initialized."

    generator = torch.Generator(device=device).manual_seed(0)
    with torch.no_grad():
        image = imagegen_model(
            prompt,
            generator=generator,
        ).images[0]
    image.save(output_path)
    return output_path

def imagegen_api():
    data = request.get_json()
    prompt = data.get('prompt')
    if not prompt:
        return jsonify({"error": "Prompt is required"}), 400
    output_file = generate_image(prompt)
    if output_file == "Image generation model not initialized.":
        return jsonify({"error": "Image generation failed"}), 500
    image_io = BytesIO()
    pil_image = Image.open(output_file)
    pil_image.save(image_io, 'PNG')
    image_io.seek(0)
    return send_file(image_io, mimetype='image/png', as_attachment=True, download_name="output.png")