ImgGenPro / generate.py
Sourav6861's picture
Create generate.py
d80f16c verified
# generate.py
import os
import requests
from flask import Flask, request, send_file, jsonify
from io import BytesIO
app = Flask(__name__)
# Make sure you set your HF API key in Secrets (HF_API_KEY)
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("/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 the raw bytes as PNG
return send_file(BytesIO(response.content), mimetype="image/png")
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860)