File size: 1,699 Bytes
18a5673
 
 
65fe587
5550780
18a5673
 
22dcbce
18a5673
7044dfd
22dcbce
7044dfd
ecd93f7
22dcbce
ecd93f7
18a5673
ecd93f7
22dcbce
 
 
 
ecd93f7
22dcbce
 
 
ae12cbe
22dcbce
 
65fe587
22dcbce
 
 
 
 
ae12cbe
22dcbce
 
 
 
5550780
22dcbce
 
 
 
18a5673
65fe587
 
22dcbce
ae12cbe
65fe587
ae12cbe
65fe587
22dcbce
71f13e2
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
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()
no_nsfw_image_path = "no_nsfw.png"

def is_nsfw(text):
    return profanity.contains_profanity(text)

def generate_image(prompt, model):
    if is_nsfw(prompt):
        return no_nsfw_image_path

    data = {"prompt": prompt, "model": model}
    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 no_nsfw_image_path

        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:
                        return images[0]
                    return no_nsfw_image_path
                elif status in ["error", "not_found"]:
                    return no_nsfw_image_path
                time.sleep(1)
    return no_nsfw_image_path

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(share=True)