islasher commited on
Commit
da625d4
·
verified ·
1 Parent(s): eb11d94

Update ImageGenerator.py

Browse files
Files changed (1) hide show
  1. ImageGenerator.py +54 -10
ImageGenerator.py CHANGED
@@ -1,15 +1,59 @@
1
- import requests, os
2
- from PIL import Image
3
- from io import BytesIO
4
 
5
- HF_API_KEY = os.getenv("HF_API_KEY")
6
 
7
- def generate_image(prompt):
8
- """Generate image using HF Inference API."""
9
 
10
- url = "https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5" #"https://api-inference.huggingface.co/models/stabilityai/stable-diffusion-2"
11
- headers = {"Authorization": f"Bearer {HF_API_KEY}"}
 
 
 
 
 
 
 
 
12
 
13
- response = requests.post(url, headers=headers, json={"inputs": prompt})
 
 
 
 
 
 
14
 
15
- return Image.open(BytesIO(response.content))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # import requests, os
2
+ # from PIL import Image
3
+ # from io import BytesIO
4
 
5
+ # HF_API_KEY = os.getenv("HF_API_KEY")
6
 
7
+ # def generate_image(prompt):
8
+ # """Generate image using HF Inference API."""
9
 
10
+ # url = "https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5" #"https://api-inference.huggingface.co/models/stabilityai/stable-diffusion-2"
11
+ # headers = {"Authorization": f"Bearer {HF_API_KEY}"}
12
+
13
+ # response = requests.post(url, headers=headers, json={"inputs": prompt})
14
+
15
+ # return Image.open(BytesIO(response.content))
16
+
17
+ import requests
18
+ from PIL import Image, UnidentifiedImageError, ImageDraw, ImageFont
19
+ from io import BytesIO
20
 
21
+ def generate_image(prompt, api_url="YOUR_API_URL_HERE"):
22
+ """
23
+ Generate an image from a prompt via an API.
24
+ Returns a PIL.Image object. If the API fails, returns a placeholder image.
25
+ """
26
+ try:
27
+ response = requests.post(api_url, json={"prompt": prompt})
28
 
29
+ # Check if the response is OK
30
+ if response.status_code == 200:
31
+ try:
32
+ img = Image.open(BytesIO(response.content))
33
+ return img
34
+ except UnidentifiedImageError:
35
+ print("API response is not a valid image.")
36
+ else:
37
+ print(f"API returned status {response.status_code}")
38
+ print("Response content:", response.text[:200])
39
+
40
+ except requests.RequestException as e:
41
+ print(f"Request failed: {e}")
42
+
43
+ # Fallback placeholder image
44
+ print("Using placeholder image.")
45
+ placeholder = Image.new("RGB", (512, 512), color=(200, 200, 200))
46
+ draw = ImageDraw.Draw(placeholder)
47
+ text = "Image\nNot\nAvailable"
48
+
49
+ # Optional: Use a basic font
50
+ try:
51
+ font = ImageFont.load_default()
52
+ w, h = draw.multiline_textsize(text, font=font)
53
+ draw.multiline_text(
54
+ ((512 - w) / 2, (512 - h) / 2), text, fill=(50, 50, 50), font=font, align="center"
55
+ )
56
+ except Exception:
57
+ draw.text((50, 200), text, fill=(50, 50, 50))
58
+
59
+ return placeholder