Im trying to do image generation, and when i click generate on my program with a prompt, it says
“Failed to generate image: 400 Client Error: Bar request for url: https://api.openai.com/v1/images/generations”

dont mind the windows 7 or the very bland prompt, it does it with every prompt i put in
Please check out the docs for some code samples: OpenAI API, you are welcome to share your code here as well.
here’s the code
import tkinter as tk
import requests
import io
from tkinter import filedialog
from PIL import Image, ImageTk
import base64
import tkinter.messagebox
import openai
api_key = 'my key is here'
api_url = "https://api.openai.com/v1/images/generations"
class DogUI:
def __init__(self, master):
self.master = master
master.title("Doggy Generator")
self.master.geometry("400x200")
self.api_url = "https://api.openai.com/v1/images/generations"
self.prompt_label = tk.Label(master, text="Enter a prompt:")
self.prompt_label.pack()
self.prompt_entry = tk.Entry(master)
self.prompt_entry.pack()
self.generate_button = tk.Button(master, text="Generate", command=self.generate)
self.generate_button.pack()
self.image_panel = tk.Label(master)
self.image_panel.pack()
def generate(self):
prompt = self.prompt_entry.get()
headers = {"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}"}
data = {
"prompt": prompt,
"n": 1,
"size": "512x512",
"response_format": "url"
}
resp = requests.post(api_url, headers=headers, json=data)
try:
resp.raise_for_status()
response_data = resp.json()
image_url = response_data["data"][0]["url"]
self.display_image(image_url)
except Exception as e:
tk.messagebox.showerror("Error", f"Failed to generate image: {str(e)}")
def save_image(self):
if self.generated_images and self.selected_image is not None:
filename = filedialog.asksaveasfilename(defaultextension=".png")
if filename:
self.generated_images[self.selected_image].save(filename)
def copy_image(self):
if self.generated_images and self.selected_image is not None:
self.master.clipboard_clear()
output = io.BytesIO()
self.generated_images[self.selected_image].save(output, format='png')
self.master.clipboard_append(output.getvalue())
def popup_menu(self, event):
if self.generated_images:
for i, image in enumerate(self.generated_images):
bbox = self.canvas.bbox("image_%d" % i)
if bbox[0] <= event.x <= bbox[2] and bbox[1] <= event.y <= bbox[3]:
self.selected_image = i
menu.post(event.x_root, event.y_root)
break
def display_image(self, img_url):
try:
response = requests.get(img_url)
response.raise_for_status()
img_bytes = io.BytesIO(response.content)
img = Image.open(img_bytes)
photo = ImageTk.PhotoImage(img)
self.image_panel.configure(image=photo)
self.image_panel.image = photo
except Exception as e:
tk.messagebox.showerror("Error", f"Failed to load image: {str(e)}")
root = tk.Tk()
gui = DogUI(root)
root.mainloop()