File size: 2,594 Bytes
18a5673 65fe587 ecd93f7 18a5673 ecd93f7 18a5673 ecd93f7 18a5673 ae12cbe 18a5673 65fe587 ae12cbe 65fe587 ae12cbe 65fe587 ae12cbe 65fe587 ae12cbe 65fe587 18a5673 65fe587 18a5673 65fe587 18a5673 65fe587 ae12cbe 65fe587 ae12cbe 65fe587 18a5673 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
import gradio as gr
import requests
import json
import time
from profanity_check import predict # For NSFW detection
url = "https://nexra.aryahcr.cc/api/image/complements"
headers = {
"Content-Type": "application/json"
}
def is_nsfw(text):
return predict([text])[0] == 1
def generate_image(prompt, model):
if is_nsfw(prompt):
return "Error: Prompt contains inappropriate content."
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()
|