Sourav6861 commited on
Commit
8ebb1ad
·
verified ·
1 Parent(s): dd1c12f

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -23
app.py CHANGED
@@ -1,35 +1,44 @@
1
  import os
2
  import requests
3
- import gradio as gr
4
  from io import BytesIO
5
- from PIL import Image
 
6
 
7
  HF_API_KEY = os.environ.get("HF_API_KEY")
8
  if not HF_API_KEY:
9
  raise ValueError("HF_API_KEY not set in environment variables")
10
 
11
- def generate_image(prompt, model="stabilityai/stable-diffusion-xl-base-1.0"):
 
 
 
 
 
 
 
 
 
12
  if not prompt.strip():
13
- return None
 
14
  headers = {"Authorization": f"Bearer {HF_API_KEY}"}
15
  payload = {"inputs": prompt}
16
- response = requests.post(
17
- f"https://api-inference.huggingface.co/models/{model}",
18
- headers=headers,
19
- json=payload,
20
- timeout=120
21
- )
 
 
 
 
 
22
  if response.status_code != 200:
23
- raise ValueError(response.text)
24
- # Convert bytes to PIL Image
25
- return Image.open(BytesIO(response.content))
26
-
27
- iface = gr.Interface(
28
- fn=generate_image,
29
- inputs=[gr.Textbox(label="Prompt", placeholder="Enter your prompt here")],
30
- outputs=[gr.Image(type="pil")],
31
- title="imgGenPro",
32
- description="Generate AI images using Hugging Face Inference API"
33
- )
34
-
35
- iface.launch()
 
1
  import os
2
  import requests
3
+ from flask import Flask, request, send_file, jsonify, render_template
4
  from io import BytesIO
5
+
6
+ app = Flask(__name__, static_folder=".", template_folder=".")
7
 
8
  HF_API_KEY = os.environ.get("HF_API_KEY")
9
  if not HF_API_KEY:
10
  raise ValueError("HF_API_KEY not set in environment variables")
11
 
12
+ @app.route("/")
13
+ def index():
14
+ return render_template("index.html")
15
+
16
+ @app.route("/generate", methods=["POST"])
17
+ def generate():
18
+ data = request.json
19
+ prompt = data.get("prompt", "")
20
+ model = data.get("model", "stabilityai/stable-diffusion-xl-base-1.0")
21
+
22
  if not prompt.strip():
23
+ return jsonify({"error": "Prompt cannot be empty"}), 400
24
+
25
  headers = {"Authorization": f"Bearer {HF_API_KEY}"}
26
  payload = {"inputs": prompt}
27
+
28
+ try:
29
+ response = requests.post(
30
+ f"https://api-inference.huggingface.co/models/{model}",
31
+ headers=headers,
32
+ json=payload,
33
+ timeout=120
34
+ )
35
+ except requests.exceptions.RequestException as e:
36
+ return jsonify({"error": str(e)}), 500
37
+
38
  if response.status_code != 200:
39
+ return jsonify({"error": response.text}), response.status_code
40
+
41
+ return send_file(BytesIO(response.content), mimetype="image/png")
42
+
43
+ if __name__ == "__main__":
44
+ app.run(host="0.0.0.0", port=7860)