Spaces:
Sleeping
Sleeping
# genesis/utils/image_utils.py | |
import os | |
import requests | |
GEMINI_API_KEY = os.getenv("GEMINI_API_KEY") | |
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY") | |
def generate_image(prompt, output_file="generated.png"): | |
"""Try Gemini first, then OpenAI if Gemini fails.""" | |
try: | |
url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key={GEMINI_API_KEY}" | |
r = requests.post(url, json={"contents": [{"parts": [{"text": prompt}]}]}) | |
r.raise_for_status() | |
# Save the image binary | |
with open(output_file, "wb") as f: | |
f.write(r.content) | |
return output_file | |
except Exception: | |
url = "https://api.openai.com/v1/images/generations" | |
headers = {"Authorization": f"Bearer {OPENAI_API_KEY}"} | |
r = requests.post(url, json={"model": "gpt-4o-mini", "prompt": prompt, "size": "1024x1024"}, headers=headers) | |
r.raise_for_status() | |
image_url = r.json()["data"][0]["url"] | |
img_data = requests.get(image_url).content | |
with open(output_file, "wb") as f: | |
f.write(img_data) | |
return output_file | |