File size: 1,211 Bytes
c07dcdb
 
 
 
 
038fa24
c07dcdb
772924f
 
c07dcdb
 
 
772924f
c07dcdb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
772924f
c07dcdb
 
 
772924f
038fa24
c07dcdb
 
772924f
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 io
from flask import Flask, request, send_file, jsonify
from flask_cors import CORS
from src.solle_img_generation import imggenrator
from asgiref.wsgi import WsgiToAsgi

flask_app = Flask(__name__)
CORS(flask_app)

image_generator = imggenrator()

@flask_app.route('/generate_image', methods=['POST'])
def generate_image_api():
    try:
        data = request.get_json()
        user_prompt = data.get('prompt')
        if not user_prompt:
            return jsonify({"error": "Prompt is missing"}), 400
    except Exception:
        return jsonify({"error": "Invalid JSON"}), 400

    base_image_path = "solle_base.jpg"
    
    generated_images_data = image_generator.generate(base_image_path, user_prompt)

    if generated_images_data:
        img_data = generated_images_data[0]
        image_stream = io.BytesIO(img_data)
        return send_file(image_stream, mimetype='image/png')
    
    return jsonify({"message": "No image was generated."}), 500

@flask_app.route('/', methods=['GET'])
def health_check():
    return jsonify({"status": "running"}), 200

app = WsgiToAsgi(flask_app)

if __name__ == '__main__':
    import uvicorn
    uvicorn.run(flask_app, host="0.0.0.0", port=7860)