File size: 2,617 Bytes
18a5673 65fe587 7044dfd 18a5673 7044dfd ecd93f7 7044dfd 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 76 77 |
import gradio as gr
import requests
import json
import time
from better_profanity import profanity
url = "https://nexra.aryahcr.cc/api/image/complements"
headers = {
"Content-Type": "application/json"
}
profanity.load_censor_words()
def is_nsfw(text):
return profanity.contains_profanity(text)
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()
|