b
File size: 1,312 Bytes
6437aa7
722f396
670283b
722f396
6437aa7
 
722f396
6437aa7
 
 
722f396
188cd68
722f396
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9cdcff4
722f396
 
 
 
9cdcff4
722f396
9cdcff4
 
722f396
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
43
44
import os
os.system("pip install flask")

from flask import Flask, request, send_file, abort
from io import BytesIO
from PIL import Image
import random

app = Flask(__name__)

# モデルのロードをシミュレートするためのスタブ
def load_model(model_name):
    # モデルをロードするロジックをここに追加
    # ここでは、PILで空の画像を生成する簡易的な例を示します
    def model(prompt):
        img = Image.new('RGB', (256, 256), color = (73, 109, 137))
        return img
    return model

# モデルのロード
models_load = {f'model_{i}': load_model(f'model_{i}') for i in range(1, 7)}

@app.route('/generate_image', methods=['GET'])
def generate_image():
    prompt = request.args.get('prompt')
    model_str = request.args.get('model')
    
    if model_str not in models_load:
        abort(404, description="Model not found")
    
    model = models_load[model_str]
    noise = str(random.randint(0, 99999999999))
    image = model(f'{prompt} {noise}')
    
    # 画像をバイナリで保存し、レスポンスとして返す
    img_bytes = BytesIO()
    image.save(img_bytes, format='PNG')
    img_bytes.seek(0)
    
    return send_file(img_bytes, mimetype='image/png')

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)