Text-to-Image
Diffusers
Afar
art
son / app.py
sedefiizm's picture
Upload 2 files
34ae681 verified
from flask import Flask, request, jsonify
from tensorflow.keras.models import load_model
import numpy as np
import matplotlib.pyplot as plt
from io import BytesIO
import base64
app = Flask(__name__)
# Eğitilmiş modelinizi yükleyin
cnn_model = load_model("C:\\Users\\Sedef\\Downloads\\arcweb (1)\\arcweb\\cnn_model_epoch_100.h5")
def generate_prompt(params):
"""Kullanıcı girdilerinden bir prompt oluştur."""
prompt = (
f"{params['bedroom']} yatak odası, {params['bathroom']} banyo, "
f"{params['kitchen']} mutfak, {params['livingroom']} oturma odası, "
f"{params['diningroom']} yemek odası, {params['entrance']} m² giriş, "
f"{params['garage']} garaj ve {params['kidsroom']} çocuk odası içeren bir mimari plan."
)
return prompt
@app.route("/generate_plan", methods=["POST"])
def generate_plan():
# Kullanıcı verilerini al
data = request.json
prompt = generate_prompt(data)
# Modelin tahmin fonksiyonunu kullanarak gerçek bir çıktı üretin
# Burada, girdi olarak uygun bir formatta veri sağlamanız gerekecek.
# Örneğin, modelinizin beklediği şekli bilmiyorsanız, aşağıdaki gibi bir düzenleme yapabilirsiniz.
# Dummy bir girdi için uygun bir format oluşturun
input_data = np.array([[data['bedroom'], data['bathroom'], data['kitchen'],
data['livingroom'], data['diningroom'],
data['entrance'], data['garage'], data['kidsroom']]])
# Modelden tahmin al
prediction = cnn_model.predict(input_data)
# Tahmini görüntü oluşturma
# Örneğin, 64x64 boyutunda bir görsel oluşturun (modelinizin çıktısına göre ayarlayın)
img = prediction.reshape((64, 64, 3)) # Model çıktısını uygun boyuta çevirin
plt.imshow(img)
plt.axis("off")
# Görseli base64 formatına dönüştür
buffer = BytesIO()
plt.savefig(buffer, format="png")
buffer.seek(0)
img_base64 = base64.b64encode(buffer.getvalue()).decode()
return jsonify({"image_url": f"data:image/png;base64,{img_base64}"})
if __name__ == "__main__":
app.run(debug=True)