import gradio as gr import requests import json import time url = "https://nexra.aryahcr.cc/api/image/complements" headers = { "Content-Type": "application/json" } def generate_image(prompt, model): data = { "prompt": prompt, "model": model, } try: response = requests.post(url, headers=headers, data=json.dumps(data)) if response.status_code == 200: response_data = response.json() image_id = response_data.get("id") if not image_id: return "Error: No image ID returned in the response." while True: status_response = requests.get(f"{url}/{image_id}") if status_response.status_code == 200: status_data = status_response.json() status = status_data.get("status") if status == "completed": images = status_data.get("images") if images and isinstance(images, list): image_url = images[0] return image_url else: return "Error: No images found in the response." elif status == "error": return "Error: Image generation failed." elif status == "not_found": return "Error: Image ID not found." elif status == "pending": time.sleep(1) else: return f"Error: Unexpected status '{status}'." else: return f"Error: Status check failed with code {status_response.status_code}." else: return f"Error: Initial request failed with code {response.status_code}." except json.JSONDecodeError: return "Error: Invalid JSON response." except Exception as e: return f"Exception occurred: {str(e)}" iface = gr.Interface( fn=generate_image, inputs=[ gr.Textbox(label="Enter prompt"), gr.Radio(["dalle2"], label="Select Model") ], outputs=gr.Image(type="filepath"), title="DALLE2 Generation", description="DALLE-2 Generation from Nextra API, NOTE: DALL-E 3 is not supported yet." ) iface.launch()