ImgGenPro / app.py
Sourav6861's picture
Create app.py
8ebb1ad verified
import os
import requests
from flask import Flask, request, send_file, jsonify, render_template
from io import BytesIO
app = Flask(__name__, static_folder=".", template_folder=".")
HF_API_KEY = os.environ.get("HF_API_KEY")
if not HF_API_KEY:
raise ValueError("HF_API_KEY not set in environment variables")
@app.route("/")
def index():
return render_template("index.html")
@app.route("/generate", methods=["POST"])
def generate():
data = request.json
prompt = data.get("prompt", "")
model = data.get("model", "stabilityai/stable-diffusion-xl-base-1.0")
if not prompt.strip():
return jsonify({"error": "Prompt cannot be empty"}), 400
headers = {"Authorization": f"Bearer {HF_API_KEY}"}
payload = {"inputs": prompt}
try:
response = requests.post(
f"https://api-inference.huggingface.co/models/{model}",
headers=headers,
json=payload,
timeout=120
)
except requests.exceptions.RequestException as e:
return jsonify({"error": str(e)}), 500
if response.status_code != 200:
return jsonify({"error": response.text}), response.status_code
return send_file(BytesIO(response.content), mimetype="image/png")
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860)