# 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